【问题标题】:How To Intercept All WordPress Queries and Restrict to Category?如何拦截所有 WordPress 查询并限制类别?
【发布时间】:2010-02-27 05:26:18
【问题描述】:

在 WordPress 插件编码中,如果我有两个类别(汽车和园艺)并且我想始终从所有查询中排除园艺,那么我需要做什么拦截(钩子或其他技巧)?我需要始终排除园艺,无论是通过搜索、标签云小部件、评论小部件、日历小部件还是网站的任何其他部分。

我问的原因是我的客户需要一个主题对进入的域名做出不同的反应。如果用户键入 gardening.com 并且它被映射到这个博客,那么他想限制只显示 gardening.com内容。如果用户键入cars.com 并将其映射到同一个博客,那么他希望限制为仅显示cars.com 内容。

再说一遍,我的问题在于希望使用插件钩子访问 WordPress 的一个中心位置,以始终确保查询仅限于给定类别。这样,即使添加了一个不是 WordPress 自带的默认插件,它也会受到类别的限制。

我已经想出了如何在主题的 header.php 中添加此代码,以使链接根据某人输入的任何 URL 正确运行:

$sURL = 'http://' . $_SERVER['SERVER_NAME'];
update_option('siteurl',$sURL);
update_option('home',$sURL);
unset($sURL);

【问题讨论】:

    标签: hook wordpress categories restrict


    【解决方案1】:

    我发现我必须创建一个 home.php,它是 index.php 的副本,但是在调用 have_posts() 之前添加了 query_posts('category_name=' . $_SERVER['SERVER_NAME']) 调用。在 index.php 上,我没有添加 query_posts()。然后,我必须创建一个作为 Kubrick 的 archive.php 副本的 archive.php,然后对其进行编辑,以便我根据选择的操作以不同的方式更改 query_posts(),例如添加“&tag=”、“&year” ="等。同样,必须添加一个 search.php(从 Kubrick 借来的),它也按类别进行了限制。这是一个很大的帮助:

    http://codex.wordpress.org/Template_Tags/query_posts

    唯一我还没有弄清楚的是如何将动态侧边栏中的小部件限制为一个类别。我在 StackOverflow 中把它变成了separate request

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-31
      • 1970-01-01
      • 2011-08-04
      • 2011-01-21
      • 2017-02-15
      相关资源
      最近更新 更多