代码之家  ›  专栏  ›  技术社区  ›  Volomike nbk

如何拦截所有WordPress查询并限制到类别?

  •  0
  • Volomike nbk  · 技术社区  · 15 年前

    在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);
    
    1 回复  |  直到 15 年前
        1
  •  0
  •   Community CDub    8 年前

    我发现我必须创建一个home.php,它是index.php的一个副本,但是要附加一个查询日志(“category”name=)。在进行have_posts()调用之前,$_server['server_name'])调用。在index.php上,我把它放在一边,没有添加query_posts()。然后,我必须创建一个archive.php,它是kubrick的archive.php的副本,然后对其进行编辑,以便根据选择的操作(如添加“&tag=”,&year=”等)以不同方式更改query_posts()。此外,还必须添加一个search.php(借用kubrick),它也按类别进行了限制。这是一个很大的帮助:

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

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

    推荐文章