Gibt es eine Möglichkeit, get_template_part () mit Ordnern zu verwenden?

Ich frage mich, ob es eine Möglichkeit gibt, get_template_part () mit Ordnern zu verwenden? Mein Hauptordner enthält jetzt viele Dateien, da ich jedes wiederverwendbare Element in eine separate Datei lege. Ich möchte sie dann in Ordner legen.

Es gibt keine Informationen in Codex: http://codex.wordpress.org/Function_Reference/get_template_part

Solutions Collecting From Web of "Gibt es eine Möglichkeit, get_template_part () mit Ordnern zu verwenden?"

In der Tat können Sie, ich habe einen Ordner in meinem Design-Verzeichnis namens /partials/ in in diesem Ordner Ich habe Dateien wie latest-news.php latest-articles.php , latest-news.php und latest-statements.php und ich lade diese Dateien mit get_template_part() wie:

 get_template_part('partials/latest', 'news'); get_template_part('partials/latest', 'articles'); get_template_part('partials/latest', 'statements'); 

Vergessen Sie nicht, die .php Datei aus dem Dateinamen zu .php .

Ich fürchte nein. Wenn Sie im Codex nicht etwas wissen möchten, versuchen Sie, dem Link zur Quelle zu folgen und schauen Sie sich den Code an und versuchen Sie, ihn zu verwalten.

Ich habe es mir angesehen und die function get_template_part ist wie folgt definiert:

 function get_template_part( $slug, $name = null ) { do_action( "get_template_part_{$slug}", $slug, $name ); $templates = array(); if ( isset($name) ) $templates[] = "{$slug}-{$name}.php"; $templates[] = "{$slug}.php"; locate_template($templates, true, false); } 

Hieraus können Sie auslesen, dass die get_template_part-function nur einen beabsichtigten php-Dateinamen erzeugt und die function locate_template aufruft. Das ist nicht sinnvoll, also habe ich mir auch die locate_template function angesehen:

 function locate_template($template_names, $load = false, $require_once = true ) { $located = ''; foreach ( (array) $template_names as $template_name ) { if ( !$template_name ) continue; if ( file_exists(STYLESHEETPATH . '/' . $template_name)) { $located = STYLESHEETPATH . '/' . $template_name; break; } else if ( file_exists(TEMPLATEPATH . '/' . $template_name) ) { $located = TEMPLATEPATH . '/' . $template_name; break; } } if ( $load && '' != $located ) load_template( $located, $require_once ); return $located; } 

Ermitteln Sie die Vorlagensuche für die aus get_template_part aufgerufene PHP-Datei. Aber Sie können locate_template direkt von Ihrem Code aufrufen . Und das ist nützlich.

Probieren Sie diesen Code anstelle der function get_template_part (‘loop-sigle.php’) aus (Ihre Datei befindet sich in mydir innerhalb Ihres Designs):

 locate_template( 'mydir/loop-single.php', true, true ); 

Die Hinweise der function get_template_part() sagt:

Anmerkungen
– Verwendet: locate_template ()
– Verwendet: do_action () Ruft die Aktion get_template_part _ {$ slug} auf.

Damit können Sie locate_template() , das sagt:

Sucht in STYLESHEETPATH ​​vor TEMPLATEPATH, sodass Themen, die von einem übergeordneten Thema erben, nur eine Datei überladen können.

Wenn Sie TEMPLATEPATH mit dem Unterverzeichnis definieren, das Sie verwenden möchten, get_template_part() nach den Dateien in Ihrem Unterverzeichnis.