<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.johannes-gehrke.de/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.johannes-gehrke.de/feed.php">
        <title>wiki.johannes-gehrke.de - programmieren:wordpress</title>
        <description></description>
        <link>https://wiki.johannes-gehrke.de/</link>
        <image rdf:resource="https://wiki.johannes-gehrke.de/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-04-23T20:11:22+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:admin_content_editor_und_gutenberg_von_posttype_entfernen&amp;rev=1708365942&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:admin_pages_hinzufuegen&amp;rev=1671280091&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:admin_styles_scripts&amp;rev=1671280092&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:boilerplate_plugin&amp;rev=1671280092&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:boilerplate_theme&amp;rev=1729091675&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:boilerplate_themes&amp;rev=1671280091&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:configphp_domains&amp;rev=1671280091&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:configphp_einstellungen&amp;rev=1671280092&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:dashboard_abschalten&amp;rev=1671280092&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:datenbank_tabellen_erzeugen_bei_plugin_aktivierung&amp;rev=1686843915&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:disable_comments&amp;rev=1731155723&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:download_protection_file&amp;rev=1714381059&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:eigenen_shortcode_erstellen&amp;rev=1671280091&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:eigenes_widget_bauen&amp;rev=1671280091&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:gzip_kompression_einstellen&amp;rev=1671280091&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:image_sizes_und_compression&amp;rev=1671280092&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:klassische_metabox_fuer_posts_erstellen&amp;rev=1723286321&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:kundennutzerrollen_anlegen&amp;rev=1671280091&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:meta_daten_im_fileheader_lesen&amp;rev=1671280092&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:metabox_in_gutenberg_erstellen&amp;rev=1723286503&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:nach_cutom_fields_suchen&amp;rev=1671280091&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:notwendige_plugins_definieren&amp;rev=1671280091&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:plugin_auf_aktiv_pruefen&amp;rev=1671280091&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:plugin_updates_unterbinden&amp;rev=1674648412&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:redirect_nach_login&amp;rev=1671280091&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:rest_api_einrichten&amp;rev=1720815053&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:rest_api_mit_statischer_klasse&amp;rev=1734088366&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:stylecss_version_per_theme&amp;rev=1671280091&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:tracking_script&amp;rev=1671280091&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:urls_aktualisieren_per_filter&amp;rev=1671280091&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:wp_cron_schedule_event&amp;rev=1728912255&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:wp_mail_mit_smpt_daten_verschicken&amp;rev=1721150200&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:wp_mail_verschicken&amp;rev=1671280091&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:wp_query_manipulieren&amp;rev=1671280092&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:zeigen_verfuegbare_updates&amp;rev=1671280092&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.johannes-gehrke.de/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>wiki.johannes-gehrke.de</title>
        <link>https://wiki.johannes-gehrke.de/</link>
        <url>https://wiki.johannes-gehrke.de/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:admin_content_editor_und_gutenberg_von_posttype_entfernen&amp;rev=1708365942&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-02-19T18:05:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Wordpress Content Editor oder Gutenberg von Post, Page oder Posttype entfernen</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:admin_content_editor_und_gutenberg_von_posttype_entfernen&amp;rev=1708365942&amp;do=diff</link>
        <description>Wordpress Content Editor oder Gutenberg von Post, Page oder Posttype entfernen

Manchmal ist es sinnvoll den Gutenberg Editor von Content Typen, z.B. Pages zu entfernen. Das kann nötig sein, wenn man z.B. mit ACFPro komplett eigene Eingabe-Felder für einen Posttype baut. In diesem Falle kann es sogar sinnvoll sein, den klassischen Editor auch abzuschalten.</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:admin_pages_hinzufuegen&amp;rev=1671280091&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Wordpress Admin Settings Pages Hinzufügen</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:admin_pages_hinzufuegen&amp;rev=1671280091&amp;do=diff</link>
        <description>Wordpress Admin Settings Pages Hinzufügen

Mit diesem Code Beispiel werden zwei Options / Settings Pages für Wordpress hinzugefügt. Dieser Code fügt nur die Seiten ins Menü ein. Es müssen noch Render Funktionen geschrieben werden, die eine Ausgabe erzeugen. Der Namespace ist optional, macht die Sache aber sauberer.</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:admin_styles_scripts&amp;rev=1671280092&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Scripts &amp; Styles nur in bestimmen Admin Seiten nutzen</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:admin_styles_scripts&amp;rev=1671280092&amp;do=diff</link>
        <description>Scripts &amp; Styles nur in bestimmen Admin Seiten nutzen

In einer der Plugin Dateien muss folgende Action aufgerufen werden, um z.B. alle später benötigten Styles zu nutzen.


function load_scripts($hook) {
	// Style Registrieren (noch nicht einbetten)
	$handle  = &#039;tduam-admin-style&#039;;
	$src     = PLUGIN_URL . &#039;assets/css/tduam_admin_styles.css&#039;;
	$deps    = [];
	$version = TDUAM_VERSION;
	wp_register_style( $handle, $src, $deps, $version );

	// Script Registrieren (noch nicht einbetten)
	$handle …</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:boilerplate_plugin&amp;rev=1671280092&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Mein Wordpress Boilerplate Plugin</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:boilerplate_plugin&amp;rev=1671280092&amp;do=diff</link>
        <description>Mein Wordpress Boilerplate Plugin

Das Plugin kann hier runter geladen werden:

	*  DOWNLOAD (16.09.21): [Boilerplate Plugin (2021-09-16)]
	*  DOWNLOAD (aktuell): [Boilerplate Plugin (2022-10-12)]
	*  Es basiert auf Devin Vinsons WP Boilerplate Plugin - ist aber stark reduziert

Umbenennungen zur Benutzung

Ein paar Schritte am Anfang bevor man es aktiviert:</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:boilerplate_theme&amp;rev=1729091675&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-16T15:14:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Starter Theme / Boilerplate Theme</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:boilerplate_theme&amp;rev=1729091675&amp;do=diff</link>
        <description>Starter Theme / Boilerplate Theme

Das ist mein aktuelles Starter Theme:

	*  Download [ Theme Boilerplate (18.08.2019, alt)]
	*  Download [Theme Boilerplate (27.10.2020, alt)]
	*  Download [Theme Boilerplate (23.08.2021)]
	*  Download [Theme Boilerplate (16.10.2024, aktuell)]

Enthalten im Theme sind

CSS:

	*  Neu: sanitize.css - Resetter, Normalizer und hinzufügen von vernünftigen Default-Regeln (</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:boilerplate_themes&amp;rev=1671280091&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Boilerplate Themes</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:boilerplate_themes&amp;rev=1671280091&amp;do=diff</link>
        <description>Boilerplate Themes

	*  WP Gutenberg Starter Theme  - Starter Theme für gute Gutenberg integration
		*  WP Underscores Theme  - Klassisches Basic Boilerplate Theme</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:configphp_domains&amp;rev=1671280091&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Wordpress auf mehrere Domains hören lassen per config.php</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:configphp_domains&amp;rev=1671280091&amp;do=diff</link>
        <description>Wordpress auf mehrere Domains hören lassen per config.php

Wenn man möchte, dass ein und das selbe Wordpress auf mehre Domains reagiert (kein Multisite, sondern gleicher Inhalt), dann können Domains in der wp-config.php angegeben werden.

Wichtig:</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:configphp_einstellungen&amp;rev=1671280092&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Wordpress Config.php - Einstellungen und besondere Angaben</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:configphp_einstellungen&amp;rev=1671280092&amp;do=diff</link>
        <description>Wordpress Config.php - Einstellungen und besondere Angaben

Hier eine Sammlung von nützlichen befehlen für die config.php.

Automatische Wordpress Updates ausschalten


define( &#039;AUTOMATIC_UPDATER_DISABLED&#039;, true );

 # Disable all core updates:
 define( &#039;WP_AUTO_UPDATE_CORE&#039;, false );

 # Enable all core updates, including minor and major:
 define( &#039;WP_AUTO_UPDATE_CORE&#039;, true );

 # Enable core updates for minor releases (default):
 define( &#039;WP_AUTO_UPDATE_CORE&#039;, &#039;minor&#039; );</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:dashboard_abschalten&amp;rev=1671280092&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Wordpress Dashboard für User ausstellen</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:dashboard_abschalten&amp;rev=1671280092&amp;do=diff</link>
        <description>Wordpress Dashboard für User ausstellen

Verhindert das Subscriber oder Abonomenten Zugriff auf das Wordpress backend haben.


&lt;?php


function is_user_subscriber(){
	global $current_user;
	$is_subscriber = ( in_array( &#039;subscriber&#039;, $current_user-&gt;roles ) ) ? true : false;
	return $is_subscriber;
}

add_action( &#039;load-index.php&#039;,&#039;dashboard_redirect&#039; );
function dashboard_redirect(){
	if( is_user_subscriber() ){
    	wp_redirect( admin_url( &#039;profile.php&#039; ) );
	}
}

add_filter( &#039;login_redirect&#039;, &#039;d…</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:datenbank_tabellen_erzeugen_bei_plugin_aktivierung&amp;rev=1686843915&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-15T15:45:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Wordpress Datenbank Tabelle erzeugen bei Plugin-Aktivierung</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:datenbank_tabellen_erzeugen_bei_plugin_aktivierung&amp;rev=1686843915&amp;do=diff</link>
        <description>Wordpress Datenbank Tabelle erzeugen bei Plugin-Aktivierung

Man sollte das in zwei Files aufteilen:

	*  in der Hauptfile des plugins mein_plugin.php den Hook einbauen, der getriggert wird bei Plugin Aktivierung
	*  in eine zweite File den Code um in der Datenbank eine Tabelle zu erzeugen</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:disable_comments&amp;rev=1731155723&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-09T12:35:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Wordpress: Kommentar-Funktion deaktivieren/entfernen</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:disable_comments&amp;rev=1731155723&amp;do=diff</link>
        <description>Wordpress: Kommentar-Funktion deaktivieren/entfernen

Mit diesem Code Beispiel kann man über PHP im Theme oder Plugin alle Funktionen run um die Wordpress Comments entfernen oder deaktivieren. Der Code sollte in einer eignen Datei liegen und in der functions.php dann required werden.</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:download_protection_file&amp;rev=1714381059&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-29T08:57:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Standalone PHP File mit Wordpress Funktionen für Downloads zu denen der User angemeldet sein muss</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:download_protection_file&amp;rev=1714381059&amp;do=diff</link>
        <description>Standalone PHP File mit Wordpress Funktionen für Downloads zu denen der User angemeldet sein muss

Manchmal ist es sinnvoll eine eigenständige PHP Datei zu haben, fast ohne Wordpress, die aber auf Wordpress Funktionen zurück greifen kann. Z.b. um zu kontrollieren ob ein User angemeldet ist. Das folgende Beispiel ist ein Code Snippet, welches einen Download-Pfad annonymisiert und kontrolliert ob ein Nutzer angemeldet ist.</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:eigenen_shortcode_erstellen&amp;rev=1671280091&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Eigenen Shortcode in Wordpress programmieren</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:eigenen_shortcode_erstellen&amp;rev=1671280091&amp;do=diff</link>
        <description>Eigenen Shortcode in Wordpress programmieren

Einen eigenen Shortcode erstellen für die Verwendung im Wordpress Theme oder Plugin über den Editor ist eigentlich recht simpel. In dem Plugin oder der functions.php einfach folgenden Code einbinden.

Wichtig ist nur: Nirgendswo im Code darf ein echo oder print stehen. Es darf keine Ausgabe erzeugt werden, sonst speichert er den Post fehlerhaft.</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:eigenes_widget_bauen&amp;rev=1671280091&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Eigenes Wordpress Widget bauen</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:eigenes_widget_bauen&amp;rev=1671280091&amp;do=diff</link>
        <description>Eigenes Wordpress Widget bauen

Das ist ein Dummy-Code der zeigt wie man an eigenes Widget registriert. Mit Backend-Eingaben, Speichern und Frontend-Ausgabe


&lt;?php

function dummy_load_widget() {
    register_widget( &#039;dummy_banner_atlas_widget&#039; );
}
add_action( &#039;widgets_init&#039;, &#039;dummy_load_widget&#039; );


class dummy_banner_atlas_widget extends WP_Widget {

	function __construct() {
		parent::__construct(

		// WIDGET-ID
		&#039;dummy_banner_atlas_widget&#039;,

		// WIDGET NAME
		&#039;dummyBanner&#039;,

		// WIDGET…</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:gzip_kompression_einstellen&amp;rev=1671280091&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>GZIP Kompression  &amp; Caching per htaccess</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:gzip_kompression_einstellen&amp;rev=1671280091&amp;do=diff</link>
        <description>GZIP Kompression  &amp; Caching per htaccess

In der .htaccess kann eingetragen werden, dass CSS, JS, &amp; Bilddateien gecached werden sollen. Auch eine GZIP Kompression kann man einstellen, aber da diese &#039;live&#039; passiert, kann das den Server massiv verlangsamen.</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:image_sizes_und_compression&amp;rev=1671280092&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Wordpress: Eigene Bildgrößen und Bildkomprimierung einstellen</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:image_sizes_und_compression&amp;rev=1671280092&amp;do=diff</link>
        <description>Wordpress: Eigene Bildgrößen und Bildkomprimierung einstellen

Das Arbeiten mit Bildern in Wordpress ist eine der alltäglichsten Interaktionen. Bilder sind wichtig für Besucher und Suchmaschinen. Ebenso sind sie einer der wichtigsten Performance-Faktoren für die Seite. Hinzu kommt, dass jede Plattform (Facebook, Instagram, Twitter, etc) eine eigene Bildgröße als Vorschau gerne hätte.</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:klassische_metabox_fuer_posts_erstellen&amp;rev=1723286321&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-10T10:38:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Wordpress Metabox (klassisch) für Post erstellen</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:klassische_metabox_fuer_posts_erstellen&amp;rev=1723286321&amp;do=diff</link>
        <description>Wordpress Metabox (klassisch) für Post erstellen

Um eine einfache Metabox bei der Beitragsbearbeitenseiten (Post Edit Screen) einzufügen, kann folgender Code genutzt werden. 


&lt;?php
/*  Metabox init */
new MetaboxPost();

/**
 * METABOX KLASSE
 */
class MetaboxPost
{

	function __construct( )
	{
		add_action( &#039;add_meta_boxes&#039;, [ $this, &#039;add_meta_box&#039; ] );
		add_action( &#039;save_post&#039;, [ $this, &#039;save&#039; ] );
	}

	public function add_metabox()
	{
		$mb_id            = &#039;plugin_metbox_name&#039;;
		$mb_titl…</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:kundennutzerrollen_anlegen&amp;rev=1671280091&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Neue Wordpress Nutzerrollen anlegen</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:kundennutzerrollen_anlegen&amp;rev=1671280091&amp;do=diff</link>
        <description>Neue Wordpress Nutzerrollen anlegen

Ich finde es gut, wenn Kunden eigene Nutzerrollen bekommen, oder andere User die nur abonnieren können sollen. Mit dem Script kann man Wordpress Nutzerrollen anlegen und deren Rechte steuern.


&lt;?php

/*
 *  REGISTRIERT NEUE NUTZER ROLLEN 
 *  FÜR KUNDEN / CLIENTS
 * 
 *  Client Master &gt; Kann alles vom Editor + Nutzer, Menüs, Widgets &amp; Customzier bearbeiten
 *  Client User   &gt; Kann alles vom Editor + Menüs &amp; Widgets bearbeiten
 * 
 *  Clients können nichts up…</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:meta_daten_im_fileheader_lesen&amp;rev=1671280092&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Meta-Angaben am Dateianfang in Wordpress schreiben &amp; auslesen</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:meta_daten_im_fileheader_lesen&amp;rev=1671280092&amp;do=diff</link>
        <description>Meta-Angaben am Dateianfang in Wordpress schreiben &amp; auslesen

Wordpress stellt eine Funktion bereit mit der man die Meta angaben in eine Datei-Header auslesen kann. Gemeint sind hier nicht Meta-Angaben der Datei ansich, sondern eigene Einträge in den ersten Zeilen der File.</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:metabox_in_gutenberg_erstellen&amp;rev=1723286503&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-10T10:41:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Metabox für Beiträge in Gutenberg Seitenleiste aufnehmen</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:metabox_in_gutenberg_erstellen&amp;rev=1723286503&amp;do=diff</link>
        <description>ACHTUNG!

Gutenberg Metaboxes unterscheiden sich nicht von den klassischen. Hier findest du den besseren Code: “Metabox für Posts erstellen”

ACHTUNG!

Metabox für Beiträge in Gutenberg Seitenleiste aufnehmen

Der Code hier macht, dass in der Seitenleiste von Gutenberg eine Metabox bei Posts reingestellt werden kann. Dieser Code kann auch genutzt werden für alle anderen Metaboxen.</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:nach_cutom_fields_suchen&amp;rev=1671280091&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Wordpress: Suche mit Custom Fields oder ACF Feldern</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:nach_cutom_fields_suchen&amp;rev=1671280091&amp;do=diff</link>
        <description>Wordpress: Suche mit Custom Fields oder ACF Feldern

Dies ist ein Beispiel wie man in der Wordpress  Suche nach ACF Fields oder eigene Felder suchen lassen kann. Dieser Code ist eine PHP Klasse, die man am besten in eine eigene Datei packt und durch die</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:notwendige_plugins_definieren&amp;rev=1671280091&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Benötigte Wordpress Plugins im Theme definieren</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:notwendige_plugins_definieren&amp;rev=1671280091&amp;do=diff</link>
        <description>Benötigte Wordpress Plugins im Theme definieren

Mit der “TGM Plugin Activation”-Library ist es möglich im Theme anzugeben, welche Plugins der User installieren &amp; aktivieren muss. 

Dazu muss man die Klasse herunterladen von der Website

Offizielle Doku zur Konfiguration ist</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:plugin_auf_aktiv_pruefen&amp;rev=1671280091&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Prüfen ob ein Wordpress Plugin aktiv ist</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:plugin_auf_aktiv_pruefen&amp;rev=1671280091&amp;do=diff</link>
        <description>Prüfen ob ein Wordpress Plugin aktiv ist

Dieser Code muss in die functions.php am besten möglichst früh. Damit bekommt man eine Funktion um zu überprüfen ob ein Plugin aktiv geschaltet ist. Nützlich für Themes die auf wichtige Pluginfunktionen zurück greifen.</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:plugin_updates_unterbinden&amp;rev=1674648412&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-25T12:06:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Wordpress Plugin Updates unterbinden</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:plugin_updates_unterbinden&amp;rev=1674648412&amp;do=diff</link>
        <description>Wordpress Plugin Updates unterbinden

Manchmal ist es wichtig, dass Plugins nicht einfach aktualisiert werden, weil Sie was kaputt machen. Mit dem Script kann man einstellen, welche Plugins vom Updaten ausgeschlossen werden sollen.


/**
 * DISABLE SPECIFIC PLUGIN UPDATES
 */

function filter_plugin_updates( $value ) {
	if( is_object( $value ) ) {
	    unset( $value-&gt;response[&#039;meta-box/meta-box.php&#039;] ); /* Example disable Plugin-Updates for: &#039;Meta Box&#039; */
	    unset( $value-&gt;response[&#039;meta-box-g…</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:redirect_nach_login&amp;rev=1671280091&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Wordpress Redirect nach Login</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:redirect_nach_login&amp;rev=1671280091&amp;do=diff</link>
        <description>Wordpress Redirect nach Login

Einen User umleiten, nach dem dieser sich einloggen wollte.


&lt;?php

/**
 * Redirect user after successful login.
 *
 * @param string $redirect_to   Übergebene Redirect URL
 * @param string $request       Ursprüngliche URL
 * @param object $user          User Object
 *
 * @return string               Redirect URL
 */

function my_login_redirect( $redirect_to, $request, $user ) {
	$user_has_no_subs = !tdc_has_user_subscriptions( $user-&gt;ID );
	$redirect_to      = ( $…</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:rest_api_einrichten&amp;rev=1720815053&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-07-12T20:10:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Wordpress Rest-API Endpunkt einrichten</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:rest_api_einrichten&amp;rev=1720815053&amp;do=diff</link>
        <description>Wordpress Rest-API Endpunkt einrichten

AKTUALISIERTE VERSION MIT STATIC CLASS »»  Eigener Wordpress Rest API Endpoint mit Static Class

Mit diesem Script kann ein neuer Rest-API Endpunkt eingerichtet werden, der dann über die Website URL aufrufbar ist. In diesem Beispiel wird ein News Endpunkt erstellt, alles nur fiktiv, aber es zeigt wie man es macht.</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:rest_api_mit_statischer_klasse&amp;rev=1734088366&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-13T11:12:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Eigener Wordpress Rest API Endpoint mit Static Class</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:rest_api_mit_statischer_klasse&amp;rev=1734088366&amp;do=diff</link>
        <description>Eigener Wordpress Rest API Endpoint mit Static Class

Manchmal ist es nötig für AJAX Requests eine Custom Rest-Route zu erstellen ohne Plugin. Mit diesem Code Snippet kann man eine Route in WP registrieren und eine JSON Antwort senden. In diesem Beispiel wird eine Route als GET und als POST zur Verfügung gestellt.</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:stylecss_version_per_theme&amp;rev=1671280091&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Style.css Version an Theme Version koppeln</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:stylecss_version_per_theme&amp;rev=1671280091&amp;do=diff</link>
        <description>Style.css Version an Theme Version koppeln

mit dem Script wird an die Style.css immer ein ?v=x.x.x Parameter angehangen, damit eine neue CSS File für die User geladen wird, wenn die Theme Version erhöht wird.


&lt;?php 
/*
 * S T Y L E S 
 */

function lh_theme_styles() {
	
	$theme_object = wp_get_theme();
	$version      = $theme_object[&quot;Version&quot;];
	
	wp_enqueue_style( &#039;main_css&#039;, get_template_directory_uri() . &#039;/style.css&#039;,  array(), $version );	
}
add_action( &#039;wp_enqueue_scripts&#039;, &#039;lh_theme_sty…</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:tracking_script&amp;rev=1671280091&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Wordpress Tracking Script in Footer einbauen</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:tracking_script&amp;rev=1671280091&amp;do=diff</link>
        <description>Wordpress Tracking Script in Footer einbauen

In die functions.php oder so ein bauen.


&lt;?php

// Fügt HTML Code in den Footer ein
function add_tracking_to_footer() {
	if( is_user_logged_in() ) return; // eingeloggte User sollen nicht getrackt werden
	?&gt;

	&lt;!-- Global site tag (gtag.js) - Google Analytics --&gt;
	&lt;script async src=&quot;https://www.googletagmanager.com/gtag/js?id=UA-29355571-2&quot;&gt;&lt;/script&gt;
	&lt;script&gt;
		window.dataLayer = window.dataLayer || [];
		function gtag(){dataLayer.push(arguments);}…</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:urls_aktualisieren_per_filter&amp;rev=1671280091&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Wordpress URLs in Beiträgen aktualisieren</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:urls_aktualisieren_per_filter&amp;rev=1671280091&amp;do=diff</link>
        <description>Wordpress URLs in Beiträgen aktualisieren

Wenn man eine Seite Live nehmen möchte und merkt, dass in der Datenbank zu jedem Post alle URLs noch auf das DEV-System zeigen, kann es leichter sein per the_content-Filter alle URLs in Echtzeit zu aktualisieren. Mit diesem Code Schnipsel wird der</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:wp_cron_schedule_event&amp;rev=1728912255&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-14T13:24:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Eine Art Cron Event in Wordpress schedulen mit wp_schedule_event()</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:wp_cron_schedule_event&amp;rev=1728912255&amp;do=diff</link>
        <description>Eine Art Cron Event in Wordpress schedulen mit wp_schedule_event()

Wordpress bietet eine Art Cron-Job Funktion an um regelmäßig in festen Abständen eine Aktion ausführen zu lassen. Die Wordpress Cron Events werden jedoch ausgeführt, wenn Nutzer die Seite besuchen, d.h. je nach Cron-Task dauert es ggf. entsprechend Lange bis ein armer Nutzer erst die Seite laden sieht. Um das zu umgehen, solltest du auf deinem Server einen echten Cron-Taks einrichten, der direkt die</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:wp_mail_mit_smpt_daten_verschicken&amp;rev=1721150200&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-07-16T17:16:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>WP_MAIL mit einer SMTP-Verbindung verschicken (via PHPMailer)</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:wp_mail_mit_smpt_daten_verschicken&amp;rev=1721150200&amp;do=diff</link>
        <description>WP_MAIL mit einer SMTP-Verbindung verschicken (via PHPMailer)

Oft ist sinnvoll wp_mail()&#039;s  nicht direkt vom Webserver verschicken zu lassen. Mails vom Webserver landen schnell im Spam, weil sie nicht verifiziert werden können, oder die eigentliche E-Mails auf einem anderem System liegen. Daher ist es nützlich sich eine gesonderte E-Mail-Adresse einzurichten und das Wordpress dann per SMTP verbinden zu lassen.</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:wp_mail_verschicken&amp;rev=1671280091&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Wordpress HTML Mail mit wp_mail() verschicken</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:wp_mail_verschicken&amp;rev=1671280091&amp;do=diff</link>
        <description>Wordpress HTML Mail mit wp_mail() verschicken

Wordpress hat eine Funktion auf basis des PHPmailer() Objektes, bzw. der Klasse. Damit machen es Plugins auch auf den SMPT zu verbinden.

Ein einfaches Beispiel für eine Mail Funktion sieht so aus:


/*
	Notwenidg, dass eine HTML Mail versendet werden kann
 */
function mail_as_html(){
    return &quot;text/html&quot;;
}


/**
 * Sendet eine Mail Notification an einen Subscriber
 *
 * @param  object $post_object   Post-Object
 * @param  object $subscriber    U…</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:wp_query_manipulieren&amp;rev=1671280092&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Wordpress Loop Query verändern / manipulieren bevor es ausgeführt wird</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:wp_query_manipulieren&amp;rev=1671280092&amp;do=diff</link>
        <description>Wordpress Loop Query verändern / manipulieren bevor es ausgeführt wird

Mit diesem Code-Scnippet / Hook ist es möglich, das WP-Query zu veränderrn. Dieser Hook setzt direkt vor dem Ausführen des Loops ein. 

Wichtig:  Das beeinflusst jeden Loop. Das heißt auch die Loops im Backend.</description>
    </item>
    <item rdf:about="https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:zeigen_verfuegbare_updates&amp;rev=1671280092&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-17T12:28:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Prüfen welche Wordpress Plugins oder Themes updates melden</title>
        <link>https://wiki.johannes-gehrke.de/doku.php?id=programmieren:wordpress:zeigen_verfuegbare_updates&amp;rev=1671280092&amp;do=diff</link>
        <description>Prüfen welche Wordpress Plugins oder Themes updates melden

Manchmal steht im Wordpress das ein update Verfügbar ist, aber nicht für welches Plugin/Theme. Um das zu debuggen, kann man folgenden Code nutzen:


function message_debug_updates() {
    $current_screen = get_current_screen();

	$updates_available = debug_pending_updates();
	$has_updates       = ( strlen( $updates_available ) &gt; 1 ) ? true : false;

	$message = &quot;
		&lt;div class=\&quot;notice\&quot;&gt;
			&lt;p&gt;
				&lt;strong&gt;Verfügbare Udpates:&lt;/strong&gt;&lt;b…</description>
    </item>
</rdf:RDF>
