2017-02-15 2 views
2

Ich führe BeTheme, habe aber einen benutzerdefinierten Beitragstyp hinzugefügt. Auf index.php muss ich sowohl von den regulären Posts als auch vom benutzerdefinierten Post-Typ, den ich erstellt habe, "neuste Nachrichten" abrufen. Ich bin mir nicht sicher, wie ich es so einstellen kann, dass index.php sowohl von meinen Posts als auch von meinem eigenen Post-Typ kommt.

In meinem Thema, index.php aus dieser Vorlagendatei aus einer Funktion ziehen, https://github.com/pingram3541/betheme/blob/master/includes/content-post.php

Im Abschnitt über die Linie 10 diese Datei starten:

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

Ich bin mir ziemlich sicher, dass ich muss geändert werden, egal $args Variable $wp_query zieht aus, so dass array('post_type' => array('post') hat auch 'latest-news' aber ich bin mir nicht sicher, wo das zu finden, oder wenn das überhaupt der richtige Ansatz ist.

EDIT: Ich habe gerade versucht, das Hinzufügen den Code unten zu 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'); 

Und das hat nicht funktioniert.

+1

Es ist der richtige Ansatz. Soll die neue Abfrage auch nach regulären Posts oder nur nach dem benutzerdefinierten Posttyp suchen? –

+0

Beide. Idealerweise würde es sowohl Postsendungen als auch Postsendungen der neuesten Nachrichten nutzen und nach Datum sortieren. – user3183717

Antwort

1

Zeile 21 der Datei:

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

versuchen es

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

Lassen Sie wissen, Bearbeitung, wenn das funktioniert, abhängig von der Zeit es zu unerwarteten Ergebnissen führen könnten.

+0

Das hat nicht funktioniert, es brach die Website. Inspiriert von Ihrer Antwort, habe ich versucht, die Zeile zu ändern: '$ args ['post_type'] = '" post "," neuste Nachrichten "'; \t \t wenn $ query = new WP_Query ($ args) ($ query!); ' Welche auch nicht funktioniert, obwohl es nicht die Seite bricht, macht es einfach so, dass keine Anzeige Beiträge. – user3183717

+1

'Ich habe ein Semikolon nach dem] verpasst, versuche es in $ args = ['post_type' => ['post', 'neuste Nachrichten']];' Lass es mich wissen, wenn dies die Seite unterbricht oder irgendetwas ändert –

+0

Das hat funktioniert! Vielen Dank! Ich hätte diesen Fehler ebenfalls verstehen sollen, aber ich schätze Ihre Hilfe sehr. – user3183717

Verwandte Themen