2017-02-04 78 views
0

我在我的WordPress網站主頁上創建一個'精選內容'部分。 我已經添加了一個功能,允許將標籤添加到頁面。WordPress的WP_Query不返回post_type

然後,在index.php我已經加入:

<?php $featured_pages = new WP_Query(array(
    'post_type' => 'page', 
    'tag' => 'featured', 
    'posts_per_page' => 5 
)); 
if ($featured_pages-> have_posts()) : 
    while ($featured_pages->have_posts()) : $featured_pages-> the_post(); 
     get_template_part('template-parts/content-featured'); 
    endwhile; 
endif; 
wp_reset_postdata(); ?> 

但由於某些原因,WP_Query陣列的post_type部分不能正常工作。 它返回所有post_types。如果我將其更改爲'attachment',它仍會返回帖子和頁面。

我是新來的WordPress,我錯過了什麼嗎?


經過進一步調查,似乎'標記'覆蓋'post_type'。沒有這個,它只顯示頁面。有了它,帖子也包括在內。

回答

0

這個問題是無法回答的,因爲我沒有意識到問題是由我在其他地方添加的函數引起的,我沒有在這裏包括。

然而,其他人可能發現這個有用的爲我所用,主要是受該資源https://www.sitepoint.com/wordpress-pages-use-tags採取的代碼。

我已經添加了這個功能(複製並粘貼從其他地方):

function tags_support_query($wp_query) { 
    if ($wp_query->get('tag')) $wp_query->set('post_type', 'any'); 
} 

add_action('pre_get_posts', 'tags_support_query'); 

我想這意味着,如果你使用WP_Query獲得「標記」,它會始終設置崗位類型爲「任何」。我認爲這不太好,所以我刪除了它,並且問題中的代碼按預期工作。

相關問題