WordPress无法将自定义帖子类型添加到使用pre_get_posts查询

问题描述:

我无法使用pre_get_posts向查询添加自定义帖子类型。我创建了自己的主题并集成了这个插件(https://github.com/Develop-With-WP/wp-job-listing)。WordPress无法将自定义帖子类型添加到使用pre_get_posts查询

我现在如何将这个新的post_type'job'添加到我的查询中?我尝试这样做:

function add_my_post_types_to_query($query) { 
    if (is_home() && $query->is_main_query()) 
     $query->set('post_type', array('post', 'page', 'movie', 'job')); 
    return $query; 
} 
add_action('pre_get_posts', 'add_my_post_types_to_query'); 

我能够检查post_type但是当我在编辑后放[shortcode_debug]和呼叫/普通/第一博客/。

但是,当我打电话给/ job/sales /它仍然不会呈现任何东西。我错过了什么?

试试这个,

function add_my_post_types_to_query($query) { 
    if ($query->is_home() && $query->is_main_query()) 
     $query->query_vars[ 'post_type' ] = [ 'post', 'page', 'movie', 'job' ];  
} 
add_action('pre_get_posts', 'add_my_post_types_to_query'); 
+0

遗憾的是仍然没有工作。 –

+0

仍然没有结果。我把它放在https://github.com/Develop-With-WP/wp-job-listing的wp-job-cpt.php中。这是正确的方法吗? –

+0

我认为它应该工作,如果放在该文件。但是试着把它放在你主题的functions.php中,只是为了测试 – Junaid

add_action('pre_get_posts', 'get_posts_plus_cpt'); 
function get_posts_plus_cpt($query) { 
    if ($query->is_home() && $query->is_main_query()) {   
     $query->set('post_type', 'job'); 
    } 
} 
+0

谢谢,但不幸的是,没有结果。如下所述......奇怪的是,我甚至无法将任何东西(比如$ post_type ='Test'; echo $ post_type;)回复到/ job/sales /。另外,如果我在编辑器中放置了某些东西,它不在那里。对于/一般/第一个博客/它在那里... –