<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.sehanka.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=78.55.61.118</id>
	<title>wiki.sehanka.de - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sehanka.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=78.55.61.118"/>
	<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=Spezial:Beitr%C3%A4ge/78.55.61.118"/>
	<updated>2026-04-21T21:50:23Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.36.0</generator>
	<entry>
		<id>https://wiki.sehanka.de/index.php?title=WordPress-Theme_entwickeln_(HowTo)&amp;diff=297</id>
		<title>WordPress-Theme entwickeln (HowTo)</title>
		<link rel="alternate" type="text/html" href="https://wiki.sehanka.de/index.php?title=WordPress-Theme_entwickeln_(HowTo)&amp;diff=297"/>
		<updated>2022-03-17T09:00:59Z</updated>

		<summary type="html">&lt;p&gt;78.55.61.118: /* Schritt z: Konfigurieren des Editors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Allgemeines =&lt;br /&gt;
&lt;br /&gt;
* folgend zunächst nur eine lose Sammlung von Ansätze zur systematischen Entwicklung, die noch in Einklang zu bringen sind&lt;br /&gt;
** Atomic Web Design im Allgemeinen und Patternlab-Beispiele im Speziellen&lt;br /&gt;
** Saas-Architektur&lt;br /&gt;
&lt;br /&gt;
= Vorangegangene(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
* [[WordPress-Theme gestalten und prototypen (HowTo)]]&lt;br /&gt;
&lt;br /&gt;
= Arbeitsschritte (Prozess) =&lt;br /&gt;
&lt;br /&gt;
== Schritt 1: Notwendige Grundstruktur anlegen ==&lt;br /&gt;
&lt;br /&gt;
=== Generell: Parent-Theme erstellen ===&lt;br /&gt;
&lt;br /&gt;
* functions.php&lt;br /&gt;
* style.css&lt;br /&gt;
* index.php (ein WordPress Theme benötigt mind. eine Template Datei (index.php)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Optional: Child-Theme erstellen ===&lt;br /&gt;
&lt;br /&gt;
* über Childtheme wird vorhandenes WordPress-Theme (Parent-Theme) an die eigenen Vorstellungen angepasst&lt;br /&gt;
* Trennung, um Theme (Parent) besser updaten zu können und dennoch die eigenen, individuellen Styles/Funktionen (Child) nicht zu verlieren&lt;br /&gt;
* Child beinhaltet nur wenige Dateien (CSS, PHP, ???), welche die des Parent überschreiben&lt;br /&gt;
* das funktioniert aber nicht bei allen Einstellungen &lt;br /&gt;
&lt;br /&gt;
==== Ordner für Child-Theme anlegen ====&lt;br /&gt;
&lt;br /&gt;
z.B.: &amp;quot;generatepress-child&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Style Datei anlegen ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 Theme Name:   GeneratePress Child&lt;br /&gt;
 Description:  Mein Child Theme&lt;br /&gt;
 Author:       Sebastian Kalms&lt;br /&gt;
 Author URI:   httpw://www.elsterkind.de&lt;br /&gt;
 Template:     generatepress&lt;br /&gt;
 Version:      1.0&lt;br /&gt;
 Text Domain:  generatepress-child&lt;br /&gt;
*/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== functions.php erstellen ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
* Child theme stylesheet einbinden in Abhängigkeit vom Original-Stylesheet&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
function child_theme_styles() {&lt;br /&gt;
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );&lt;br /&gt;
wp_enqueue_style( 'child-theme-css', get_stylesheet_directory_uri() .'/style.css' , array('parent-style'));&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
add_action( 'wp_enqueue_scripts', 'child_theme_styles' );?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Screenshot erstellen ====&lt;br /&gt;
&lt;br /&gt;
==== Child theme aktivieren ====&lt;br /&gt;
&lt;br /&gt;
==== Anpassungen aus Parent Theme übernehmen ====&lt;br /&gt;
&lt;br /&gt;
https://www.webtimiser.de/wordpress-child-theme-erstellen/&lt;br /&gt;
&lt;br /&gt;
== Schritt 2: SASS Architektur anlegen ==&lt;br /&gt;
&lt;br /&gt;
* https://sass-guidelin.es/de/#das-7-1-muster&lt;br /&gt;
* https://patternlab-handlebars-preview.netlify.com/?p=all&lt;br /&gt;
&lt;br /&gt;
== Schritt x: Fonts integrieren ==&lt;br /&gt;
&lt;br /&gt;
* https://google-webfonts-helper.herokuapp.com/&lt;br /&gt;
* benötigte Fonts zusammenstellen&lt;br /&gt;
* CSS kopieren und in Datei /base/_fonts.scss kopieren&lt;br /&gt;
* Datein downloaden und in Ordner fonts kopieren&lt;br /&gt;
&lt;br /&gt;
== Schritt x: Navigation(en) anlegen ==&lt;br /&gt;
&lt;br /&gt;
=== Navigationen in functions.php registrieren ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
add_action( 'after_setup_theme', function() {&lt;br /&gt;
    add_theme_support('title-tag');&lt;br /&gt;
    add_theme_support('post-thumbnails');&lt;br /&gt;
&lt;br /&gt;
    register_nav_menu('main-menu', __('Main Navigation'));&lt;br /&gt;
    register_nav_menu('footer-menu', __('Footer Navigation'));&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Navigationen im Template integrieren ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            &amp;lt;nav&amp;gt;&lt;br /&gt;
                &amp;lt;?php&lt;br /&gt;
                wp_nav_menu( array(&lt;br /&gt;
                    'theme_location' =&amp;gt; 'footer-menu',&lt;br /&gt;
                    'menu_class'     =&amp;gt; 'nav navbar-nav',&lt;br /&gt;
                    'container'      =&amp;gt; false&lt;br /&gt;
                ) );&lt;br /&gt;
                ?&amp;gt;&lt;br /&gt;
            &amp;lt;/nav&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Komponenten entwickeln ==&lt;br /&gt;
&lt;br /&gt;
* mögliche Komponenten und Code-Snippets unter https://boltdesignsystem.com/pattern-lab/?p=components-overview&lt;br /&gt;
&lt;br /&gt;
== Schritt z: Benötigte Templates anlegen ==&lt;br /&gt;
&lt;br /&gt;
=== Query Templates ===&lt;br /&gt;
&lt;br /&gt;
Diese Template Dateien werden bei einem bestimmten URL Request / Query von WordPress geladen. Unter anderem für einzelne Beiträge, statische Seiten oder Archive.&lt;br /&gt;
&lt;br /&gt;
==== index.php ====&lt;br /&gt;
&lt;br /&gt;
Das Basis-Template, welches nur zum Einsatz kommt, wenn keine spezifische Template Datei existiert.&lt;br /&gt;
&lt;br /&gt;
==== 404.php ====&lt;br /&gt;
&lt;br /&gt;
Wird genutzt, falls WordPress die angefragte Seite nicht in der Datenbank finden kann, egal ob es sich dabei um eine Kategorie, Seite oder Beitrag handelt.&lt;br /&gt;
&lt;br /&gt;
==== home.php ====&lt;br /&gt;
&lt;br /&gt;
Wird zur Anzeige der letzten Blog Beiträge (Blog Index) verwendet. Der Name ist deshalb etwas irreführend, weil das Template nicht zwangsweise auf der Startseite zum Einsatz kommt. Falls die Website eine statische Startseite in den Einstellungen konfiguriert hat, wird home.php stattdessen auf der Beitragsseite geladen.&lt;br /&gt;
&lt;br /&gt;
==== page.php ====&lt;br /&gt;
&lt;br /&gt;
Um eine einzelne, statische Seite anzuzeigen, wird die page.php des Themes aufgerufen.&lt;br /&gt;
&lt;br /&gt;
==== single.php ====&lt;br /&gt;
&lt;br /&gt;
Wird zur Ausgabe von einzelnen Beiträgen geladen.&lt;br /&gt;
&lt;br /&gt;
==== Weitere ====&lt;br /&gt;
&lt;br /&gt;
* archive.php (wird für Kategorien, Schlagwörter, Monatsarchive oder Autorenseiten geladen)&lt;br /&gt;
* search.php (die Suchergebnisse werden mit diesem Template dargestellt)&lt;br /&gt;
* singular.php (Anzeige von einzelnen Posts für alle Post Types, also Beiträge, Seiten, CPTs, etc.)&lt;br /&gt;
&lt;br /&gt;
=== Template Partials ===&lt;br /&gt;
&lt;br /&gt;
Diese Dateien sind für die Darstellung eines bestimmten Bereichs wie dem Header, Sidebar oder Footer der Website zuständig. Sie werden in anderen Template Dateien eingebunden.&lt;br /&gt;
&lt;br /&gt;
Beispiele&lt;br /&gt;
* header.php&lt;br /&gt;
* sidebar.php&lt;br /&gt;
* comments.php&lt;br /&gt;
* footer.php&lt;br /&gt;
&lt;br /&gt;
== Schritt Z: WooCommerce Templates anlegen (Optional) ==&lt;br /&gt;
&lt;br /&gt;
* nur bei Nutzung eines Shops&lt;br /&gt;
* https://docs.woocommerce.com/document/template-structure/&lt;br /&gt;
* https://docs.woocommerce.com/document/woocommerce-theme-developer-handbook/&lt;br /&gt;
&lt;br /&gt;
== Schritt z: Benötigte Widgets anlegen ==&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;_widgets-php&amp;quot; anlegen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php defined( 'ABSPATH' ) or die();&lt;br /&gt;
&lt;br /&gt;
const WIDGET_AREAS = array(&lt;br /&gt;
    'top_header_left', 'top_header_right',&lt;br /&gt;
    'top_footer', 'sub_footer'&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
function register_widget_areas() {&lt;br /&gt;
    foreach(WIDGET_AREAS as $widget_area) {&lt;br /&gt;
        register_sidebar( array(&lt;br /&gt;
            'name'          =&amp;gt; $widget_area,&lt;br /&gt;
            'id'            =&amp;gt; $widget_area,&lt;br /&gt;
            'before_widget' =&amp;gt; '',&lt;br /&gt;
            'after_widget'  =&amp;gt; '',&lt;br /&gt;
            'before_title'  =&amp;gt; '',&lt;br /&gt;
            'after_title'   =&amp;gt; '',&lt;br /&gt;
        ));&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
add_action( 'widgets_init', 'register_widget_areas' );&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;_widgets-php&amp;quot; in der &amp;quot;functions.php&amp;quot; inkludieren ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
include '_widgets.php';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Widget X im Template laden ===&lt;br /&gt;
&lt;br /&gt;
* folgenden Code an der gewünschten Stelle einfügen, z. B. &amp;quot;sub_footer&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php dynamic_sidebar( 'sub_footer' ); ?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Schritt y: Theme Funktionen hinzufügen ==&lt;br /&gt;
&lt;br /&gt;
Add Theme Support&lt;br /&gt;
* Align Wide Content: https://joshcollinsworth.com/blog/adding-gutenberg-full-and-wide-width-image-support-to-your-wordpress-theme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Schritt z: Konfigurieren des Editors ==&lt;br /&gt;
&lt;br /&gt;
* ermöglicht feinere Kontrolle&lt;br /&gt;
* ersten Schritt bei der Verwaltung von Stilen für zukünftige WordPress-Versionen&lt;br /&gt;
* https://make.wordpress.org/core/2021/06/25/introducing-theme-json-in-wordpress-5-8/&lt;br /&gt;
&lt;br /&gt;
* theme.json-Datei im Top-Level-Verzeichnis des Themes erstellen&lt;br /&gt;
* dadurch können Themes die vorhandenen Editoreinstellungen (die voreingestellten Schriftgrößen, ob benutzerdefinierte Farben aktiviert sind usw.) sowie die neuen bei der Einführung (der Duotone voreingestellt, ob Rand- und Abstandssteuerung aktiviert sind usw.).&lt;br /&gt;
* dieser neue Mechanismus zielt darauf ab, all die verschiedenen add_theme_support-Aufrufe zu übernehmen und zu konsolidieren, die bisher zur Steuerung des Editors erforderlich waren&lt;br /&gt;
&lt;br /&gt;
= FAQ =&lt;br /&gt;
&lt;br /&gt;
== Wie werden dynamische Pfade eingebunden? ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;img src=&amp;quot;&amp;lt;?php echo get_stylesheet_directory_uri(); ?&amp;gt;/images/example.jpg&amp;quot; alt=&amp;quot;Example Image&amp;quot; style=&amp;quot;&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php echo get_site_url(); ?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php require_once get_template_directory().'/php/ek_cpt.class.php';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Frage x ==&lt;br /&gt;
&lt;br /&gt;
= Troubleshooting =&lt;br /&gt;
&lt;br /&gt;
== Lösung 1 ==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
= Nachfolgende(r) Prozess(e) =&lt;br /&gt;
&lt;br /&gt;
TBD via Verlinkung zu anderem(n) HowTo(s)&lt;br /&gt;
&lt;br /&gt;
= Quellen =&lt;br /&gt;
&lt;br /&gt;
Theme Basics&lt;br /&gt;
* https://www.sitepoint.com/build-wordpress-theme-from-scratch-first-steps/&lt;br /&gt;
&lt;br /&gt;
Templates&lt;br /&gt;
* https://themecoder.de/2017/02/07/uebersicht-der-verschiedenen-template-dateien-in-einem-wordpress-theme/&lt;br /&gt;
* https://developer.wordpress.org/themes/basics/template-hierarchy/&lt;br /&gt;
* https://developer.wordpress.org/themes/template-files-section/page-template-files/page-templates/&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:WordPress]]&lt;br /&gt;
[[Kategorie:HowTo]]&lt;/div&gt;</summary>
		<author><name>78.55.61.118</name></author>
	</entry>
</feed>