【问题标题】:Wordpress - Display variable content based on variable in URLWordpress - 根据 URL 中的变量显示变量内容
【发布时间】:2016-02-04 13:35:12
【问题描述】:

我有一个 wordpress 平台,我正在考虑根据 url 中的变量在页面上显示变量内容。

我有一个单页网站 (www.vidlab.io),如果网址是 vidlab.io/?type=GoPro,我希望“GoPro 视频编辑”部分显示有关 GoPro 视频编辑的信息或有关婚礼的信息如果 Url 是 vidlab.io/?type=wedding,则进行编辑,依此类推。我读过您可以使用 get 调用,但不确定如何在不收到 404 的情况下在 URL 中包含该信息。

关于要使用的插件有什么想法吗?或者我可以插入到页面中以获得此结果的 PHP?

【问题讨论】:

  • 如果你尝试:vidlab.io/?somethingelse=GoPro,你还会得到 404 吗?一些查询字符串键在 Wordpress 中是“保留的”

标签: php wordpress variables url get


【解决方案1】:

这很容易。

您必须使用两个 Wordpress 功能。

add_rewrite_rule()

add_rewrite_tag()

首先,您将add_rewrite_tag() 函数包含到您的主题的functions.php 中。

例如:

function custom_rewrite_tag() {
  add_rewrite_tag('%food%', '([^&]+)');
  add_rewrite_tag('%variety%', '([^&]+)');
}
add_action('init', 'custom_rewrite_tag', 10, 0);

之后,您必须选择一页包含您的内容的 wordpress。您必须使用此页面的页面 ID。

比您在functions.php 中包含add_rewrite_rule()

例如:

 function custom_rewrite_rule() {
    add_rewrite_rule('^nutrition/([^/]*)/([^/]*)/?','index.php?page_id=12&food=$matches[1]&variety=$matches[2]','top');
  }
  add_action('init', 'custom_rewrite_rule', 10, 0);

注意!

在此之后,您必须转到您的settings -> permalinks,然后只需按下保存按钮即可清理您的永久链接缓存。

重要提示:不要忘记刷新并重新生成重写规则 修改规则后的数据库。从 WordPress 管理屏幕, 选择 Settings -> Permalinks 然后点击 Save Changes without any 变化。

我的例子来自wordpress的codex页面:

https://codex.wordpress.org/Rewrite_API/add_rewrite_rule

https://codex.wordpress.org/Rewrite_API/add_rewrite_tag

【讨论】:

    猜你喜欢
    • 2013-07-30
    • 2019-10-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多