Nein, content.php
und content-single.php
sind nicht dasselbe.
In Ihrem Beispiel CODE:
if (get_post_format() == false) {
get_template_part('content', 'single');
} else {
get_template_part('content', get_post_format());
}
WordPress wird geladen, content-single.php
wenn es get_post_format()
ist false
. Allerdings get_template_part( $slug, $name )
kann versuchen noch zu laden , content.php
wenn Sie es mit Aufruf get_template_part('content', get_post_format());
im folgende Beispiel:
get_post_format()
gibt zurück (zum Beispiel) video
.
Sie haben jedoch keine content-video.php
Vorlagenteildatei.
Selbst wenn dies get_post_format()
nicht der Fall ist false
, erhalten content.php
Sie im Grunde immer noch den Standardvorlagenteil, wenn der entsprechende Vorlagenteil für das Postformat nicht erstellt wurde.
Fazit: Unabhängig von der Hauptsache$slug
ist es immer eine gute Idee, die Standardvorlagenteil-Datei als endgültigen Fallback-Vorlagenteil beizubehalten (in Ihrem Fallcontent.php
ist dies die Standard-Fallback-Vorlagenteildatei). Also JA, vielleicht brauchen Sie es noch . Also nicht löschen, sondern in Ruhe lassen.
Das Folgende ist der Teil des CODE aus der Kernfunktion get_template_part
. Sie werden sehen, dass der Kern immer $templates[] = "{$slug}.php";
als endgültige Fallback-Vorlagendatei geladen wird:
function get_template_part( $slug, $name = null ) {
// ... more CODE from WP core
$templates = array();
$name = (string) $name;
if ( '' !== $name )
$templates[] = "{$slug}-{$name}.php";
$templates[] = "{$slug}.php";
locate_template($templates, true, false);
}
In der locate_template
Funktion durchläuft es dann das $templates
Array, bis es die entsprechende Datei mit dem folgenden CODE findet:
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;
} elseif ( file_exists(TEMPLATEPATH . '/' . $template_name) ) {
$located = TEMPLATEPATH . '/' . $template_name;
break;
} elseif ( file_exists( ABSPATH . WPINC . '/theme-compat/' . $template_name ) ) {
$located = ABSPATH . WPINC . '/theme-compat/' . $template_name;
break;
}
}
if ( $load && '' != $located )
load_template( $located, $require_once );
return $located;
}
Wie Sie dem obigen CODE entnehmen können, content.php
findet WordPress beim Löschen und wenn der Theme-Benutzer ein Post-Format hat, für das Sie keine Template-Teiledatei haben, keine Template-Datei, auf die zurückgegriffen werden kann, und lädt sie einfach nichts in diesem Fall. Als letzten Versuch versucht WordPress, eine Vorlagenteildatei aus dem Kernverzeichnis zu laden wp-includes/theme-compat/
, aber es gibt keine content.php
Vorlagenteildatei im WP-Kern.
Hinweis: Wenn Sie jedoch ein untergeordnetes Themacontent.php
erstellenund das übergeordnete Thema dieDateibereits enthält, benötigen Sie keinecontent.php
Datei im untergeordneten Thema (wenn Sie dort keine Änderungen vornehmen), da dies in diesem Fall WordPress tut Verwenden Sie diecontent.php
Dateides übergeordneten Themasals Ersatzdatei für die Fallback-Vorlage.