根据自定义分类/域名隐藏站点中的所有帖子/产品/页面

时间:2015-02-17 作者:Joshua Cassidy

我正在一个运行域主题映射器的网站上工作(http://codecanyon.net/item/domain-and-theme-mapper) WooCommerce将展示两个具有两个不同子主题的网站。。。与产品详细信息共享数据库。客户希望在两个网站上都显示一些产品/帖子,而有些只在其中一个网站上显示。

我们已将此代码添加到函数中。php在每个主题中显示基于所选主题的产品:

add_action( \'pre_get_posts\', \'custom_pre_get_posts_query\' );

function custom_pre_get_posts_query( $q ) {

    if ( ! $q->is_main_query() ) return;
    if ( ! $q->is_post_type_archive() ) return;

    if ( ! is_admin() && is_shop() ) {

        $q->set( \'tax_query\', array(array(
            \'taxonomy\' => \'site\',
            \'field\' => \'slug\',
            \'terms\' => array( \'site1\' ),/*or site2*/
            \'operator\' => \'IN\'
        )));

    }

    remove_action( \'pre_get_posts\', \'custom_pre_get_posts_query\' );

}
这对于WooCommerce商店页面非常有用,但不会影响其他查询。当选择了适当的子主题时,有没有一种方法可以将其推广到WordPress的所有查询(帖子、产品、页面)?

我想我可以以某种方式修改WordPress主查询,但我对如何处理这些查询不太熟悉。修复必须在子主题内才能工作。。。但是,如果自定义分类法不实用,可以通过检查域来完成。

提前感谢您的任何想法!

1 个回复
最合适的回答,由SO网友:Sean Grant 整理而成

Codex 对于pre\\u get\\u帖子:

pre\\u get\\u posts不能用于更改页面请求(页面模板)的查询,因为parse\\u query()方法已经设置了“is\\u Page”、“is\\u singular”、“pagename”和其他属性(取决于是否使用了漂亮的永久链接)。请参见:Query Overview. 修改页面请求的主查询的建议方法是使用new WP_Query 在页面模板本身中。

所以,我建议看看新的WP\\U查询(http://codex.wordpress.org/Class_Reference/WP_Query ) 我可以帮你。

结束

相关推荐

jquery issue in functions.php

我正在处理的主题中有一个问题,我不知道如何解决它。该主题有几个jquery脚本,需要加载到头部才能工作。如果没有所有这些,主题就失败了。这是我打电话给的人jquery-1.8.2。最小jsjquery-1.6.1。min.jsjquery。放松。1.3。jsjquery-ui-1.8.11。风俗min.jsjquery-ui-1.8.21。风俗最小js现在使用WordPress,我想您可以将jquery排队,然后加载所有版本。我的问题是,当我尝试这样做并删除上面的脚本时,一切都失败了。我将所有脚本放入函数