需要捕捉“关键字”添加到帖子的末尾,即使是“相当固定的链接”

时间:2011-07-03 作者:Jonathan

我有一段时间前写的脚本,刚刚决定将其“移植”到WP插件中。

除了一项重要的核心功能外,所有功能都运行良好。

该脚本使用mod\\u rewrite来允许使用虚拟URL,其中包括一个“关键字”,脚本稍后将用于其他功能。

特别是,它允许这样的URL:

www.domain。com/页面名称/我的关键字/

然后,它将使用“页面名称”生成实际的页面内容,“我的关键字”将传递给脚本中的其他函数以用于其他目的。

如果WP是默认的永久链接,那么一切都正常。但一旦使用了“pretty permalinks”,我的重写规则就会与WP规则发生冲突,并且此功能就会停止工作。相反,WP生成了一个404,因为请求的页面URL不存在。

因此,我需要一种启用自定义永久链接的方法,例如/%postname%/但仍然能够在URL中的帖子名称后添加信息。我的原始脚本甚至可以做到这一点:

www.domain。com/page name/bunch/of/stuff/can go/in/here/and/will/be/ignored/my关键字/

它仍然会使用“页面名称”作为内容,使用“我的关键字”作为关键字,忽略两者之间的所有内容。我希望这个功能与可湿性粉剂以及,但尚未能够找出解决方案。

以下是我的脚本的原始重写代码:

RewriteBase /wp
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [S=44]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [S=44]
RewriteRule ^(.*)$ index.php?k=$1&%{QUERY_STRING}
下面是当我将永久链接设置为/%postname%/时,WP默认生成的内容:

RewriteBase /wp/
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
我宁愿不要求用户进行任何htaccess编辑,如果可能的话,通过我的插件本身来处理。已经很接近了,但还不太接近。

有什么想法吗?

谢谢

乔纳森

2 个回复
SO网友:Chip Bennett

如果用户决定不启用漂亮的永久链接,那么我会尊重他们不启用它们的决定。

两种可能的选择:

只需声明插件需要启用pretty permalinks才能作为后备,如果未启用pretty permalinks,只需将关键字作为查询字符串附加即可

EDIT

也许试试吧this tutorial for extending the WP rewrite rules?

基本上,重写规则是一个数组,因此您可以编写一个函数,该函数会拉入数组,对其进行操作,然后返回它;然后将该数组挂接到generate_rewrite_rules

您还可以参考WP Access Control Plugin

SO网友:kaiser

作为对@Chip Bennets建议的补充:

您可以检查Option Reference 要检查是否有漂亮的permlinks/permalink结构。

有一个内置功能add_query_arg() 允许附加到原始查询字符串。

结束

相关推荐

curl problem or permalinks

我刚刚配置了我的VPS,我使用的是Centos,一切都很好,但如果我将永久链接设置为自定义结构,然后接受主页,没有帖子出现,它会显示404页,我想这是因为我没有启用curl,但我不知道我的php在哪里。我的centos中的ini文件?好的,我的卷曲被启用了,我检查过了phpinfo(); 这里是URLhttp://74.117.158.182/info.php但如果我在我的wordpress中设置了永久链接,那么接受主页,所有都会给我404页,你可以在这个URL上查看http://mbas.co.in如果