Einzigartiges Design in der URL einer bestimmten Kategorie

Ich habe ein WordPress-Theme page-specific-url.php , und für einige spezifische Seiten, die ein bestimmtes Design benötigen, habe ich eine PHP-Datei namens page-specific-url.php wobei specific-url die Seite ist, die ich zeigen möchte.

Das Problem, dem ich gegenüberstehe, ist der Ort der spezifischen Seite, die ich entcasting muss, innerhalb einer Kategorie, so dass die URL domain.com/category1/specific-page . Wie kann ich die zusätzliche Kategorie1 hinzufügen, wenn ich die specific-page.php im Stammverzeichnis des Themas platziert habe, kann ich darauf über domain.com/category1/specific-page ?

Solutions Collecting From Web of "Einzigartiges Design in der URL einer bestimmten Kategorie"

Es gibt einen Filter namens theme_page_templates dem Sie unter bestimmten Umständen die Verwendung einer bestimmten Vorlage erzwingen können. So was:

 add_filter ('theme_page_templates', 'wpse263827_filter_theme_page_templates', 20, 3 ); wpse263827_filter_theme_page_templates ($page_templates, $this, $post) { if (condition based on $post) $page_templates = 'path-to-template.php'; return $page_templates; } 

So können Sie die Vorlagendatei wo immer Sie möchten platzieren und sie zuweisen, wenn die Seite in dieser bestimmten Kategorie ist. Keine Notwendigkeit, die URL-Struktur zu berühren.

Dies ist, wo Body Tags dein bester Freund sind. Ich würde die Kategorie als ein benutzerdefiniertes body-Tag mit dieser function hinzufügen:

 /*Add custom body tag for categories*/ add_filter( 'body_class', 'cat_body_class' ); function cat_body_class( $classes ) { if (is_single()) { $category = get_the_category(); $classes[] = 'category-'.$category[0]->slug; } return $classes; } 

Verwenden Sie dann einfach das body-Tag, um die Seite zu formatieren 🙂 Sie müssen nicht einmal eine neue Seitenvorlage hinzufügen (es sei denn, diese Kategorien haben ein anderes Design / Layout oder eine völlig andere Logik).