Nein, content.phpund content-single.phpsind 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.phpwenn es get_post_format()ist false. Allerdings get_template_part( $slug, $name )kann versuchen noch zu laden , content.phpwenn 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.phpVorlagenteildatei.
Selbst wenn dies get_post_format()nicht der Fall ist false, erhalten content.phpSie im Grunde immer noch den Standardvorlagenteil, wenn der entsprechende Vorlagenteil für das Postformat nicht erstellt wurde.
Fazit: Unabhängig von der Hauptsache$slugist es immer eine gute Idee, die Standardvorlagenteil-Datei als endgültigen Fallback-Vorlagenteil beizubehalten (in Ihrem Fallcontent.phpist 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_templateFunktion durchläuft es dann das $templatesArray, 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.phpfindet 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.phpVorlagenteildatei im WP-Kern.
Hinweis: Wenn Sie jedoch ein untergeordnetes Themacontent.phperstellenund das übergeordnete Thema dieDateibereits enthält, benötigen Sie keinecontent.phpDatei im untergeordneten Thema (wenn Sie dort keine Änderungen vornehmen), da dies in diesem Fall WordPress tut Verwenden Sie diecontent.phpDateides übergeordneten Themasals Ersatzdatei für die Fallback-Vorlage.