自定义帖子类型:即使计数器有计数,也找不到帖子

时间:2019-11-07 作者:Fredy31

enter image description here

我有一个奇怪的错误,我创建了一个自定义帖子类型,开始在其中创建帖子,当我返回到WP Admin页面列出了该自定义帖子类型的所有帖子时,没有找到帖子。即使列表上方的计数器列出了7个找到的帖子。

我在我的网站上有另一个自定义帖子类型,设置完全相同(除了名称),也可以正常工作。

以前有人遇到过这个bug吗?

编辑:我找到了问题所在,但现在不知道如何解决。是的,在使用pre\\u get\\u posts来更改不相关的查询时,它只作用于post类型的pix\\u事件,因此它会破坏除事件之外的所有自定义post类型。

我想我错过了一次违约申报,但在这种情况下我找不到应该申报的内容。

function pix_change_query( $query ) {
    if ( is_archive(\'pix_events\') ) {
        $query->set( \'orderby\', \'meta_value_num\' );
        $query->set( \'meta_key\', \'date_work\' );
        $query->set( \'meta_type\', \'DATE\' );
        $query->set( \'order\', \'ASC\' );
        $query->set( \'meta_query\', array(
            array(
                \'key\'=>\'date_work\',
                \'compare\'=>\'>=\',
                \'value\'=>date(\'Ymd\'),
                \'type\'=>\'DATETIME\',
            )
        ) );
    }

}
add_filter( \'pre_get_posts\', \'pix_change_query\' );

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

我的pre-get-posts函数发生了横向变化。我的条件是申请所有档案,而不仅仅是事件档案。这是正确的代码。请注意,is\\u post\\u type\\u存档。

function pix_change_query( $query ) {
   if ( is_post_type_archive(\'pix_events\') && $query->is_main_query() ) {
       $query->set( \'orderby\', \'meta_value_num\' );
       $query->set( \'meta_key\', \'date_work\' );
       $query->set( \'meta_type\', \'DATE\' );
       $query->set( \'order\', \'ASC\' );
       $query->set( \'meta_query\', array(
           array(
               \'key\'=>\'date_work\',
               \'compare\'=>\'>=\',
               \'value\'=>date(\'Ymd\'),
               \'type\'=>\'DATETIME\',
           )
       ) );
       return;
   }
}

相关推荐