2017-02-15 63 views
2

我正在運行BeTheme,但添加了自定義文章類型。在index.php上,我需要從常規文章和我創建的自定義文章類型「latest-news」中抽取。我不知道如何設置它,以便index.php從我的帖子和我的自定義帖子類型中提取。

在我的主題,index.php文件是從該模板文件中的函數拉動,https://github.com/pingram3541/betheme/blob/master/includes/content-post.php

在部分開始對這個文件的第10行:

if(! function_exists('mfn_content_post')){ 
function mfn_content_post($query = false, $style = false, $images_only = false){ 
    global $wp_query; 

我敢肯定我需要改變什麼$args變量$wp_query正在拉動,所以array('post_type' => array('post')也有'latest-news'但我不知道在哪裏可以找到這個,或者如果這甚至是正確的方法。

編輯: 我只是想添加以下代碼functions.php

function add_custom_post_type_to_query($query) { 
    if ($query->is_home() && $query->is_main_query()) { 
     $query->set('post_type', array('post', 'latest-news')); 
    } 
} 
add_action('pre_get_posts', 'add_custom_post_type_to_query'); 

這沒有奏效。

+1

這是正確的做法。你是否希望你的新查詢搜索普通帖子或只有自定義帖子類型? –

+0

兩者。理想情況下,它會從「發佈」和「最新新聞」發佈類型以及按日期排序。 – user3183717

回答

1

文件的第21行:

if(! $query) $query = $wp_query; 

嘗試編輯以

$args=[ 
'post_type' => ['post', 'latest-news'], 
]; 
if(! $query) $query = new WP_Query($args); 

讓我知道,如果這個工程,這取決於它可能會產生意外結果的時間。

+0

這沒有奏效,它打破了網站。 受你答案的啓發,我試着將這一行改爲: '$ args ['post_type'] =''post','latest-news'';如果(!$ query)$ query = new WP_Query($ args);' 哪一個也沒有用,儘管它不會破壞網站,只是讓它不會顯示帖子。 – user3183717

+1

'我錯過了分號]後,嘗試將其更改爲$ args = ['post_type'=> ['post','latest-news']];'告訴我這是破壞網站還是改變任何東西 –

+0

成功了!謝謝!我也應該發現這個錯誤,但是我非常感謝你的幫助。 – user3183717