216
WordPress #wordpress

WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

WordPress

#wordpress

Page 2: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Inhaltsverzeichnis

Über 1

Kapitel 1: Erste Schritte mit WordPress 2

Bemerkungen 2

Versionen 3

Examples 5

Einführung in WordPress 5

WordPress-Themes 5

Zuordnen von URLs zu bestimmten Vorlagen 5

Grundlegende Themenverzeichnisstruktur 6

Beispiel eines "Single" (Vorlage für einen einzelnen Beitrag) 6

Beispiel eines "Archivs" (Vorlage für eine Liste mehrerer Beiträge) 7

Beiträge, Seiten, benutzerdefinierte Beitragstypen und benutzerdefinierte Felder 7

Kapitel 2: add_action () 9

Syntax 9

Parameter 9

Examples 9

Direkter Funktionsrückruf 9

Funktionsname-Referenzrückruf 9

Rückruf einer statischen Methode der Klasse 10

Callback der Objektmethode 10

Kapitel 3: add_editor_style () 11

Einführung 11

Syntax 11

Parameter 11

Examples 11

Laden einer einzelnen CSS-Datei 11

Kapitel 4: add_menu_page () 12

Einführung 12

Syntax 12

Page 3: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Parameter 12

Bemerkungen 12

Examples 13

Hinzufügen des Elements "Titelseitentitel" zur Navigationsleiste 13

OOP & wie man Skripte / Stile auf der Menüseite lädt 14

Kapitel 5: add_submenu_page () 16

Einführung 16

Syntax 16

Parameter 16

Bemerkungen 16

Examples 17

Hinzufügen der "Untermenüseite" als Unterseite von "Tools" zur Navigationsleiste 17

Kapitel 6: add_theme_support () 19

Einführung 19

Syntax 19

Parameter 19

Bemerkungen 19

Examples 19

Theme-Unterstützung für Postformate hinzufügen 19

Theme-Unterstützung für Post-Thumbnails zu Posts hinzufügen 19

Kapitel 7: Admin-Dashboard-Widgets 21

Einführung 21

Syntax 21

Parameter 21

Examples 21

Einfaches Widget (Text anzeigen) 22

Kapitel 8: AJAX 23

Examples 23

AJAX-Anfrage mit einer JSON-Antwort 23

AJAX mit .ajax () und WordPress Nonce 24

wp_ajax - Kernfunktionalität + _wpnonce check 25

Page 4: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

OOP-Ajax-Einreichung unter Verwendung einer einfachen Klasse mit Nonce 26

Kapitel 9: Aktionen und Filter 30

Syntax 30

Parameter 30

Bemerkungen 30

Examples 33

add_action - init 33

add_action - init - anonyme Funktion 33

add_action - init - innerhalb eines Klassenobjekts 34

add_action - init - innerhalb der statischen Klasse 34

Kapitel 10: Aktualisieren Sie WordPress manuell 35

Examples 35

Über FTP 35

Kapitel 11: Alternierende Hauptschleife (Filter pre_get_posts) 36

Syntax 36

Parameter 36

Bemerkungen 36

Examples 36

Noch spezifischeres Loop-Targeting 36

Zeige Beiträge aus nur einer Kategorie 37

Beiträge vor dem Abrufen von Posts filtern die grundlegende Verwendung 37

Kategorie aus der Beitragsliste entfernen freigeben 37

Ändern Sie posts_per_page für die Hauptschleife 38

Targeting nur für die Haupt-WordPress-Schleife 38

Kapitel 12: Beiträge abfragen 39

Syntax 39

Parameter 39

Bemerkungen 39

Verwenden Sie niemals query_posts () 39

Examples 40

WP_Query () Objekt verwenden 40

Get_posts () verwenden 40

Page 5: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 13: Benutzerdefinierte Auszüge mit excerpt_length und excerpt_more 42

Examples 42

Begrenzen Sie die Länge des Auszugs auf 50 Wörter 42

Hinzufügen eines Links "Lesen Sie mehr" am Ende des Auszuges 42

Ein paar Punkte am Ende des Ausschnitts hinzufügen 43

Kapitel 14: Benutzerdefinierte Beitragstypen 45

Syntax 45

Parameter 45

Examples 45

Registrieren eines benutzerdefinierten Beitragstyps 45

Hinzufügen von benutzerdefinierten Beitragstypen zur Hauptabfrage 46

Hinzufügen von benutzerdefinierten Beitragstypen zum Haupt-RSS-Feed 47

Registrieren Sie den benutzerdefinierten Beitragstyp 47

Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48

Benutzerdefinierter Beitragstyp in der Standardsuche 49

Kapitel 15: Customizer Hallo Welt 50

Parameter 50

Examples 50

Hallo Weltbeispiel 50

Kapitel 16: Customizer-Grundlagen (Panel hinzufügen, Abschnitt, Einstellungen, Steuerung) 52

Examples 52

Fügen Sie ein Customizer-Panel hinzu 52

Fügen Sie einen Customizer-Abschnitt mit den Grundeinstellungen und ihren Steuerelementen 52

Kapitel 17: Das $ wpdb-Objekt 56

Bemerkungen 56

Examples 56

Variable auswählen 56

Mehrere Zeilen auswählen 56

Kapitel 18: Debuggen 58

Einführung 58

Bemerkungen 58

Examples 58

Page 6: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

WP_DEBUG 58

WP_DEBUG_LOG 58

WP_DEBUG_DISPLAY 59

SCRIPT_DEBUG 59

SAVEQUERIES 59

Beispiel wp-config.php und bewährte Methoden zum Debuggen 59

Protokolle in einer separaten Datei anzeigen 60

Kapitel 19: der Titel() 61

Einführung 61

Syntax 61

Parameter 61

Bemerkungen 61

Examples 61

Einfache Verwendung von the_title 61

Den Titel mit Code vor und nach drucken 61

Kapitel 20: Die Admin-Leiste (aka "Die Symbolleiste") 63

Bemerkungen 63

Examples 63

Entfernen der Admin-Symbolleiste von allen außer Administratoren 63

Entfernen der Admin-Symbolleiste mithilfe von Filtern 63

So entfernen Sie das WordPress-Logo aus der Admin-Leiste 63

Fügen Sie auf der Admin-Anmeldeseite Ihr eigenes Logo und Ihren benutzerdefinierten Link h 64

Kapitel 21: Die Schleife (Haupt-WordPress-Schleife) 65

Examples 65

Grundlegende WordPress-Schleifenstruktur 65

Alternative Schleifensyntax 65

Behandelt keine Elemente in der Schleife 65

Kapitel 22: drin 67

Syntax 67

Bemerkungen 67

Examples 67

$ _POST-Anforderungsdaten werden verarbeitet 67

Page 7: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

$ _GET-Anforderungsdaten werden verarbeitet 67

Registrieren eines benutzerdefinierten Beitragstyps 67

Kapitel 23: Einreihen von Skripten 68

Syntax 68

Parameter 68

Examples 68

Einreihen von Skripten in functions.php 68

Enqueue-Skripts nur für IE 69

Skripte für bestimmte Seiten bedingt einreihen 69

Kapitel 24: Einreihen von Styles 71

Syntax 71

Parameter 71

Examples 71

Einschließlich der internen CSS-Datei mit einer anderen CSS-Datei als Abhängigkeit 71

Einschließlich der internen CSS-Datei 71

Einschließlich externer CSS-Datei 71

Enqueue Stylesheets nur für IE 72

Einschließlich der internen CSS-Datei für Ihre Plugin-Klasse 72

Alternative Stylesheets hinzufügen 72

Kapitel 25: Entfernen Sie automatische Zeilenumbrüche aus Inhalt und Auszug 74

Einführung 74

Bemerkungen 74

Examples 74

Entfernen Sie die Filter 74

Funktion zum Entfernen der Filter 74

Kapitel 26: Erstellen einer benutzerdefinierten Vorlage 76

Examples 76

Erstellen einer einfachen leeren Vorlage 76

Einschließlich Kopf- und Fußzeile in unserer Vorlage 77

Benutzerdefinierte Vorlage mit Inhalt 78

Kapitel 27: Erstellen Sie einen Beitrag programmgesteuert 80

Syntax 80

Page 8: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Parameter 80

Bemerkungen 80

Argumente 80

Vermeiden Sie doppelte Beiträge 82

Erläuterung 82

Examples 82

Einführung 82

Erstellen Sie einen Basisbeitrag 82

Erstellen Sie eine Basisseite 83

Kapitel 28: Erstellung des WordPress-Plugins 84

Einführung 84

Examples 84

Minimale Einrichtung eines Plugin-Ordners und von Dateien 84

Kapitel 29: Führen Sie WordPress local mit XAMPP aus 86

Einführung 86

Examples 86

1. Installieren von XAMPP 86

2. Richten Sie nach der Installation von XAMPP eine Datenbank ein 86

3. Installieren von WordPress nach dem Einrichten der Datenbank 87

Kapitel 30: Funktion: add_action () 88

Syntax 88

Parameter 88

Bemerkungen 88

Examples 88

Grundlegender Aktionshaken 88

Aktion Hook-Priorität 89

Klassen- und Objektmethoden mit Aktionen verknüpfen 89

Objektmethode Aktionshaken 90

Klassenmethode Aktionshaken 91

Kapitel 31: Funktion: wp_trim_words () 93

Syntax 93

Page 9: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Parameter 93

Examples 93

Post-Inhalt beschneiden 93

Kapitel 32: get_bloginfo () 94

Einführung 94

Syntax 94

Parameter 94

Bemerkungen 94

Examples 96

Den Seitentitel abrufen 96

Den Site-Slogan erhalten 97

Abrufen der aktiven Design-URL 98

Rufen Sie die Site-URL ab 99

Erhalten Sie die E-Mail-Adresse des Site-Administrators 99

Kapitel 33: get_home_path () 100

Einführung 100

Parameter 100

Bemerkungen 100

Wichtiger Unterschied zwischen get_home_path() und ABSTPATH 100

Verwenden Sie es in Ihrem Code 101

Examples 101

Verwendungszweck 101

Kapitel 34: get_option () 102

Einführung 102

Syntax 102

Parameter 102

Bemerkungen 102

Examples 102

Blogtitel anzeigen 102

Name des Blogs im H1-Stil 103

Zeichensatz anzeigen 103

Page 10: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Behandlung nicht vorhandener Optionen 103

Kapitel 35: get_permalink () 104

Einführung 104

Syntax 104

Parameter 104

Bemerkungen 104

Examples 104

Einfache Verwendung von get_parmalink 104

Angabe des Beitrags zum Abrufen des Links 104

Holen Sie sich den Link ohne den Namen des Beitrags 105

Kapitel 36: get_template_part () 106

Syntax 106

Parameter 106

Examples 106

Laden Sie einen Vorlagenteil aus einem Unterordner 106

Holen Sie sich eine bestimmte Datei 106

Kapitel 37: get_template_part () 107

Einführung 107

Syntax 107

Parameter 107

Examples 107

Einschließlich einer benutzerdefinierten Vorlage 107

Einschließlich einer benutzerdefinierten Vorlage mit einem durch Bindestrich getrennten Da 107

Einschließlich einer benutzerdefinierten Vorlage aus einem Verzeichnis 108

Einschließlich einer benutzerdefinierten Vorlage mit einem durch Bindestrich getrennten Da 108

Übergabe der Variable an den benutzerdefinierten Vorlagenbereich 108

Kapitel 38: get_template_part () 109

Syntax 109

Parameter 109

Examples 109

Vorlage laden 109

Page 11: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 39: get_the_category () 110

Einführung 110

Syntax 110

Parameter 110

Bemerkungen 110

Examples 110

Holen Sie sich alle Namen der Kategorien des Beitrags 111

Holen Sie sich alle IDs der Kategorien des Beitrags 111

Kapitel 40: get_the_title () 112

Einführung 112

Syntax 112

Parameter 112

Bemerkungen 112

Examples 112

Einfache Verwendung von get_the_title 112

Ruft den Titel einer angegebenen Beitrags-ID ab 112

Kapitel 41: Grundlegendes zum Thema Kind 114

Syntax 114

Bemerkungen 114

Examples 114

2) Der Zweck 114

Definition und Anforderungen 115

3) Überschreiben der Vorlage 115

Ersatz von Vermögenswerten 116

Kapitel 42: Hinzufügen / Entfernen von Kontaktinformationen für Benutzer mit dem Filterhak 118

Examples 118

Aktivieren der beliebtesten sozialen Netzwerke 118

Kontaktmethode entfernen 119

Kapitel 43: home_url () 120

Syntax 120

Parameter 120

Page 12: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Examples 120

Abrufen der Heimat-URL 120

Seiten-URL 120

Kapitel 44: Installation und Konfiguration 121

Examples 121

Wordpress auf LAMP 121

Installation WP in MAMP 122

Kapitel 45: Kurzcode 124

Examples 124

Kurzcode registrieren 124

Verwenden von Shortcodes in WordPress Backend 124

Neue Shortcodes hinzufügen 124

Verwenden von Shortcodes in PHP-Code (Designs und Plugins) 125

Verwenden von Shortcodes in Widgets 125

Kapitel 46: Kurzcode mit Attribut 126

Syntax 126

Parameter 126

Bemerkungen 126

Examples 126

Beispiele für Shortcodes 126

Erstellen eines selbstschließenden Shortcodes 127

Erstellen eines selbstschließenden Kurzcodes mit Parametern 127

Erstellen eines umschließenden Kurzcodes 127

Kurzwahlen in Widgets 128

Kapitel 47: Kurzwahlnummern 130

Examples 130

Shortcode-Einführung 130

Tastenkürzel 130

Kapitel 48: Meta Box 132

Einführung 132

Syntax 132

Bemerkungen 132

Page 13: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Examples 132

Ein einfaches Beispiel mit einer regulären Eingabe und einer Auswahleingabe 132

Kapitel 49: Netzwerkanfragen mit HTTP-API durchführen 135

Syntax 135

Parameter 135

Bemerkungen 135

Kehrt zurück 135

Examples 135

Rufen Sie eine Remote-JSON-Ressource ab 135

Kapitel 50: Options-API 136

Einführung 136

Syntax 136

Bemerkungen 136

Examples 136

get_option 137

add_option 137

delete_option 137

update_option 137

Kapitel 51: Plugin-Entwicklung 138

Syntax 138

Parameter 138

Bemerkungen 138

Examples 139

Filter 139

Aktion 139

Entwicklungsbeispiele für Plugins: Favorite Song Widget 139

Kapitel 52: Postformate 142

Bemerkungen 142

Examples 142

Hinzufügen eines Beitragstyps zum Thema 142

Postformate zu post_type 'page' hinzufügen 142

Registrieren Sie den benutzerdefinierten Beitragstyp "my_custom_post_type". 143

Page 14: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Postformate zu post_type 'my_custom_post_type' hinzufügen 143

Registrieren Sie den benutzerdefinierten Beitragstyp "my_custom_post_type" mit dem Paramet 143

Theme-Support für den Beitrag hinzufügen 143

Funktionsaufruf 143

Kapitel 53: REST-API 144

Einführung 144

Bemerkungen 144

Examples 145

Vollständiges Arbeitsbeispiel 145

Kapitel 54: Seitenleisten 147

Syntax 147

Parameter 147

Bemerkungen 147

Examples 147

Sidebars registrieren 148

Holen Sie sich die Sidebar 148

Kapitel 55: Shortcode hinzufügen 149

Syntax 149

Parameter 149

Bemerkungen 149

Examples 149

Einfacher Kurzcode für den letzten Beitrag 149

Erweiterter Shortcode für aktuelle Beiträge 150

Kapitel 56: Sicherheit in WordPress - Desinfektion 151

Syntax 151

Bemerkungen 151

Examples 151

Textfeld desinfizieren 151

Titel desinfizieren 151

E-Mail bereinigen 152

HTML-Klasse desinfizieren 152

Bereinigen Sie den Dateinamen 152

Page 15: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Bereinigen Sie den Benutzernamen 152

Kapitel 57: Sicherheit in WordPress - Flucht 153

Syntax 153

Bemerkungen 153

Examples 153

Escape-Daten im HTML-Code 153

einer URL entkommen 153

Escape-Daten in js-Code 154

Escape-Attribute 154

Escape-Daten im Textbereich 154

Kapitel 58: Sichern Sie Ihre Installation 155

Bemerkungen 155

Examples 155

Deaktivieren Sie den Datei-Editor 155

Verschiebe wp-config.php 155

Legen Sie ein benutzerdefiniertes Präfix für WordPress-Tabellen fest 156

Kapitel 59: Standortmigration 161

Syntax 161

Examples 161

Aktualisieren der Tabellen mit einer neuen URL 161

Kapitel 60: Taxonomien 162

Syntax 162

Parameter 162

Examples 162

Beispiel für die Registrierung einer Taxonomie für Genres 162

Kategorie auf Seite hinzufügen 163

Fügen Sie Kategorien und Tags Seiten hinzu und fügen Sie sie als Klasse ein 163

Fügen Sie Kategorien und Tags Seiten hinzu und fügen Sie sie als Klasse ein 164

Kapitel 61: template_include 166

Parameter 166

Bemerkungen 166

Examples 166

Page 16: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Einfaches Beispiel 166

Mehr Adv Beispiel 167

Kapitel 62: Themes 168

Einführung 168

Examples 168

WordPress-Themes 168

Wie wählt man ein Thema aus? 168

Update verfügbar 168

Installieren Sie Themes 169

Erstellen eines benutzerdefinierten Designs 170

Kapitel 63: Version von Wordpress und Stylesheets entfernen 172

Einführung 172

Syntax 172

Parameter 172

Bemerkungen 172

Examples 172

Entfernen Sie die Versionsnummern von css / js 172

Versionsnummern aus WordPress entfernen 173

Kapitel 64: Vorlage für benutzerdefinierten Beitragstyp erstellen 174

Examples 174

Erstellen einer benutzerdefinierten Vorlage für das Buch "Benutzerdefiniertes Post" 174

Benutzerdefinierte Beitragstypvorlagen 174

Benutzerdefiniertes Beitragstyp-Archiv: 174

Individuelle Post Type Einzelvorlage: 176

Kapitel 65: Vorlagenhierarchie 178

Bemerkungen 178

Examples 178

Einführung 178

Debuggen 180

Kapitel 66: Wie kann ich den Markdown-Editor in das Repeater-Add-on von Advance Custom Fie

181

Page 17: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Examples 181

MarkDown Editor hinzufügen 181

Kapitel 67: Wordpress-Theme und Child-Theme-Entwicklung 182

Einführung 182

Examples 182

Entwickeln Sie Ihr eigenes Thema 182

Kapitel 68: wp_get_current_user () 185

Syntax 185

Examples 185

Den aktuellen Benutzer abrufen 185

Verwenden Sie die foreach-Schleife, um Benutzerinformationen von wp_get_current_user () ab 185

Kapitel 69: wp_get_current_user () 186

Examples 186

Aktuelle Informationen zum angemeldeten Benutzer erhalten 186

Kapitel 70: WP_Query () Schleife 187

Einführung 187

Examples 187

Letzte 10 Beiträge abrufen 187

Kapitel 71: WP-CLI 188

Einführung 188

Examples 188

Themen verwalten 188

Plugins verwalten 188

WP-CLI selbst verwalten 189

Laden Sie eine WordPress-Installation herunter, installieren, aktualisieren und verwalten 190

Benutzer verwalten 190

Führen Sie grundlegende Datenbankoperationen mit den in wp-config.php gespeicherten Berech 190

Kapitel 72: WP-Cron 192

Examples 192

wp_schedule_event () Beispiel 192

benutzerdefiniertes Wiederholungsintervall in wp_schedule_event () 192

Page 18: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Credits 194

Page 19: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Über

You can share this PDF with anyone you feel could benefit from it, downloaded the latest version from: wordpress

It is an unofficial and free WordPress ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which is written by many hardworking individuals at Stack Overflow. It is neither affiliated with Stack Overflow nor official WordPress.

The content is released under Creative Commons BY-SA, and the list of contributors to each chapter are provided in the credits section at the end of this book. Images may be copyright of their respective owners unless otherwise specified. All trademarks and registered trademarks are the property of their respective company owners.

Use the content presented in this book at your own risk; it is not guaranteed to be correct nor accurate, please send your feedback and corrections to [email protected]

https://riptutorial.com/de/home 1

Page 20: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 1: Erste Schritte mit WordPress

Bemerkungen

WordPress ist ein Open Source Content Management System (CMS), mit dem Websites erstellt und verwaltet werden. WordPress ist das beliebteste CMS im Internet nach einer Landmeile, das zum Zeitpunkt der Erstellung etwa die Hälfte aller CMS-Websites und etwa ein Viertel aller Websites im Internet unterstützt.

WordPress wurde ursprünglich als Plattform für das Bloggen ins Leben gerufen, hat sich jedoch im Laufe der Jahre zu den meisten Arten von Websites entwickelt. Die Schnittstelle kann ohne Programmierkenntnisse verwendet werden, was sie für Einsteiger und Entwickler beliebt macht, die ihre Kunden zur Verwaltung ihrer eigenen Website befähigen möchten.

Ein weiterer wichtiger Faktor für die Beliebtheit von WordPress ist seine Flexibilität, hauptsächlich aufgrund des Plugins und der Themingsysteme des Kerns. Das Plugin-System macht es einfach, die Kernfunktionalität zu erweitern, ohne den Kerncode zu ändern. In ähnlicher Weise macht es das Themingsystem leicht, das Layout und die Ästhetik der Website zu ändern. Es gibt jetzt Tausende von kostenlosen und hochwertigen WordPress-Plugins und Designs. Viele von ihnen sind auf der wordpress.org befindet Plugin - Repository und Thema Repository sind.

WordPress wurde von der eigenen Community entwickelt, ist jedoch eng mit der Firma Automattic verbunden , die viele der wichtigsten WordPress-Entwickler beschäftigt.

https://riptutorial.com/de/home 2

Page 21: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Code

WordPress basiert auf der PHP -Serverskriptsprache und der MySQL- Abfragesprache. WordPress verwendet MySQL als Datastore für Benutzerinhalte und -konfigurationen. Das PHP zerlegt die Inhaltsdaten in eine HTML- Webseite mit allen erforderlichen Ressourcen.

wordpress.com vs wordpress.org

Sie können WordPress verwenden, indem Sie sich bei Automattics wordpress.com- Dienst anmelden und Ihre Website auf ihren Servern hosten. Sie können die WordPress-Software von wordpress.org herunterladen und Ihre Website auf einem Server unter Ihrer Kontrolle hosten. Die erste Option ist einfach, aber Sie können keinen Site-Code bearbeiten. Sie können Änderungen nur über die WordPress-Benutzeroberfläche vornehmen. Die zweite Option erfordert mehr Arbeit, gibt Ihnen jedoch die Flexibilität, mit Ihrem Website-Code alles zu tun, was Sie möchten. Wenn Sie ein StackOverflow-Benutzer sind, werden Sie wahrscheinlich die zweite Option wählen.

Open Source

WordPress ist Open-Source-Software, dh es ist kostenlos, und jeder kann den Quellcode einsehen und dazu beitragen. Potentielle Mitwirkende können mit der Beitragsseite des WordPress-Codex beginnen. .

Fehler können gemeldet werden, indem Sie einen Fehler an den WordPress-Ticket-Tracker senden .

Dokumentation

WordPress ist offiziell im WordPress-Codex von WordPress.org dokumentiert. Entwickler, die mit WordPress arbeiten, interessieren sich besonders für den Abschnitt Developer Codex und Developer Reference von wordpress.org .

Versionen

Ausführung Veröffentlichungsdatum

1,0 2004-01-03

1.2 2004-05-22

1,5 2005-02-17

2,0 2005-12-26

2.1 2007-01-22

2.2 2007-05-16

2.3 2007-09-24

https://riptutorial.com/de/home 3

Page 22: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Ausführung Veröffentlichungsdatum

2,5 2008-03-29

2.6 2008-07-15

2,7 2008-12-10

2.8 2009-06-10

2,9 2009-12-18

3,0 2010-06-17

3.1 2011-02-23

3.2 2011-07-04

3.3 2011-12-12

3.4 2012-06-13

3,5 2012-12-11

3.6 2013-08-01

3.7 2013-10-24

3.8 2013-12-12

3.9 2014-04-16

4,0 2014-09-04

4.1 2014-12-17

4.2 2015-04-23

4.3 2015-08-18

4.4 2015-12-08

4,5 2016-04-12

4.6 2016-08-16

4.7 2016-12-06

4,8 2017-06-08

https://riptutorial.com/de/home 4

Page 23: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Examples

Einführung in WordPress

WordPress [WP] ist ein Open Source Content Management System zum Erstellen von Apps, Websites und Blogs. WP ist in PHP geschrieben und verwendet MySQL als Datenspeicher für den Benutzerinhalt und die Konfiguration. Es verfügt über ein reichhaltiges Ökosystem an Plugins und Themes und verfügt über eine lebendige Open-Source-Community, gute Dokumentation und niedrige Eintrittsbarrieren. Usability und Entwicklerdokumentation finden Sie im WP Codex .

Ein Teil von WordPress, der es von den meisten anderen CMS-Produkten unterscheidet, ist die ereignisgesteuerte Programmierung . Dies ist eine andere Art der Programmierung und Logikdarstellung als die MVC-Architektur (Model View Controller), die von den meisten CMS-Systemen verwendet wird. WordPress verwendet die Konzepte von Aktionen und Filtern. Sie bilden eine Warteschlange mit Ereignissen, mit denen Plugins und Designs Teile der endgültigen Webanwendungsseite und / oder Teile einfügen, ändern oder sogar entfernen können. Ein ähnliches Konzept ist JIT oder Just-In-Time Compilieren.

Während WordPress seit jeher als Blogging-Plattform bekannt ist und dieses Stigma niemals verliert, hat sich der Fokus des WordPress-Kernteams eindeutig geändert. Mit dem Zustand des Wortes 2016 von Gründer Matthew Mullenweg sehen wir eine klare Verschiebung bei Zielen, Visionen und Anstrengungen. Im Jahr 2016 haben wir erstaunliche Fortschritte gesehen, als der WordPress-Kern die Mehrheit des sehr populären REST-API-Plugins übernahm . Dies war eindeutig eine Absicht des Kernteams, als es schon früh mit dem Aufbau eines Front-End-JavaScript-CMS-Administrationspanels begann, das sich vom goldenen Standard löst, den wir seit vielen Jahren kennen. Sie nannten es Calpyso .

WordPress-Themes

Zuordnen von URLs zu bestimmten Vorlagen

Um WordPress-Themes vollständig zu verstehen, müssen Sie zwei Hauptkonzepte verstehen:

Permalinks1. Die Vorlagenhierarchie2.

Ein Permalink ist eine permanente, nicht veränderliche URL (oder ein Link zu einer bestimmten Ressource. Beispiel:

example.com/about-us/ (eine Seite in WP)•example.com/services/ (eine Auflistung mehrerer Elemente, im WP-Jargon auch "Archiv" genannt)

example.com/services/we-can-do-that-for-you/ (ein einzelner Artikel)•

Wenn ein Benutzer eine URL anfordert, entwickelt WordPress den Permalink zurück, um herauszufinden, welche Vorlage sein Layout steuern soll. WordPress sucht nach den

https://riptutorial.com/de/home 5

Page 24: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

verschiedenen Vorlagendateien, die diesen bestimmten Inhalt steuern könnten , und bevorzugt schließlich die spezifischsten, die es findet. Dies wird als Vorlagenhierarchie bezeichnet.

Sobald WP die entsprechende Ansichtsvorlage in der Hierarchie gefunden hat, verwendet sie diese Datei zum Verarbeiten und Rendern der Seite.

Beispiel: index.php (die Standardvorlage "catch-all") wird von archive.php (der Standardvorlage für auf Listen basierenden Inhalt) überschrieben, die wiederum von archive-services.php (einer Vorlage) überschrieben wird Datei speziell für das Archiv mit dem Namen "Services").

Hier ist eine großartige visuelle Referenz für die Vorlagenhierarchie

Grundlegende Themenverzeichnisstruktur

Ein einfaches Thema sieht ungefähr so aus:

// Theme CSS style.css // Custom functionality for your theme functions.php // Partials to include in subsequent theme files header.php footer.php sidebar.php comments.php // "Archives", (listing views that contain multiple posts) archive.php author.php date.php taxonomy.php tag.php category.php // Individual content pages // Note that home and frontpage templates are not recommended // and they should be replaced by page templates singular.php single.php page.php front-page.php home.php // Misc. Utility Pages index.php (a catch-all if nothing else matches) search.php attachment.php image.php 404.php

Beispiel eines "Single" (Vorlage für einen

https://riptutorial.com/de/home 6

Page 25: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

einzelnen Beitrag)

<?php get_header(); ?> <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?> <h1><?php the_title(); ?></h1> <?php the_content(); ?> <?php comments_template( '', true ); ?> <?php endwhile; ?> <?php get_sidebar(); ?> <?php get_footer(); ?>

Was passiert hier? Zuerst wird header.php (ähnlich wie bei einem PHP-Include oder header.php ), es wird The Loop eingerichtet, zeigt the_title und the_content und the_content dann comments.php , sidebar.php und footer.php . Die Schleife übernimmt das schwere Anheben und richtet ein Post Objekt ein, das alle Informationen für den aktuell angezeigten Inhalt enthält.

Beispiel eines "Archivs" (Vorlage für eine Liste mehrerer Beiträge)

<?php get_header(); ?> <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?> <a href="<?php the_permalink(); ?>"<?php the_title(); ?></a> <?php the_excerpt(); ?> <?php endwhile; ?> <?php next_posts_link( 'Older Entries', $the_query->max_num_pages ); previous_posts_link( 'Newer Entries' ); ?> <?php get_sidebar(); ?> <?php get_footer(); ?>

Zuerst enthält es header.php , richtet The Loop ein und enthält sidebar.php und footer.php . In diesem Fall befinden sich jedoch mehrere Beiträge in der Schleife, daher wird stattdessen ein Auszug mit einem Link zu den einzelnen Beiträgen angezeigt. next_posts_link und previous_posts_link sind ebenfalls enthalten, sodass das Archiv Ergebnisse paginieren kann.

Beiträge, Seiten, benutzerdefinierte Beitragstypen und benutzerdefinierte Felder

WordPress unterstützt zwei Arten von Inhalten: Posts und Pages . Posts werden normalerweise für nicht hierarchische Inhalte wie Blog-Posts verwendet. Seiten werden für statische, eigenständige

https://riptutorial.com/de/home 7

Page 26: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Inhalte verwendet, beispielsweise eine Seite "Über uns" oder die Seite "Services" eines Unternehmens mit verschachtelten Unterseiten.

Seit Version 3.0 können Entwickler eigene benutzerdefinierte Post-Typen definieren, um die Funktionalität von WordPress über die Grundlagen hinaus zu erweitern. Neben benutzerdefinierten Beitragstypen können Sie auch eigene benutzerdefinierte Felder erstellen, die Sie an Ihre Beiträge / Seiten / benutzerdefinierten Beitragstypen anhängen können, um auf strukturierte Weise das Hinzufügen und den Zugriff auf Metadaten in Ihren Vorlagen zu ermöglichen. Siehe: Erweiterte benutzerdefinierte Felder .

Erste Schritte mit WordPress online lesen: https://riptutorial.com/de/wordpress/topic/304/erste-schritte-mit-wordpress

https://riptutorial.com/de/home 8

Page 27: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 2: add_action ()

Syntax

add_action ($ tag, $ function_to_add)•add_action ($ tag, $ function_to_add, $ priority)•add_action ($ tag, $ function_to_add, $ Priorität, $ akzeptierte_args)•

Parameter

Parameter Einzelheiten

$ tag(Zeichenfolge) Der Name der Aktion, an die die Prozedur $function_to_add angehängt wird.

$ function_to_add

(aufrufbar) Die aufrufbare Funktion / Prozedur, die Sie anrufen möchten.

$ Priorität(int) Die Prioritätsstufe, bis zu der $function_to_add ausgeführt wird. Wahlweise. Standardeinstellung 10.

$ Accepted_args(int) Die Anzahl der Argumente, die die aufrufbare Funktion $function_to_add akzeptiert. Wahlweise. Standardeinstellung 1

Examples

Direkter Funktionsrückruf

add_action( 'init', function() { // do something here } );

Verwenden eines Funktionsblocks zum Einhaken einer Reihe von Anweisungen. Mit dem init Hook wird der Befehlssatz ausgeführt, sobald Wordpress die erforderlichen Komponenten geladen hat.

Funktionsname-Referenzrückruf

function my_init_function() { // do something here } add_action( 'init', 'my_init_function' );

Verwenden des Namens der Funktion zum Einhaken einer Reihe von Anweisungen Mit dem init

https://riptutorial.com/de/home 9

Page 28: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Hook wird der Befehlssatz ausgeführt, sobald Wordpress die erforderlichen Komponenten geladen hat.

Rückruf einer statischen Methode der Klasse

class MyClass { static function my_init_method() { // do something here } } add_action( 'init', array( 'MyClass', 'my_init_method' ) );

Verwenden einer statischen Methode einer Klasse zum Einhängen von Anweisungen. Mit dem init Hook wird der Befehlssatz ausgeführt, sobald Wordpress die erforderlichen Komponenten geladen hat.

Callback der Objektmethode

class MyClass { function my_init_method() { // do something here } } $obj = new MyClass(); add_action( 'init', array( $obj, 'my_init_method' ) );

Verwenden einer Methode eines Objekts zum Anhängen eines Satzes von Anweisungen. Mit dem init Hook wird der Befehlssatz ausgeführt, sobald Wordpress die erforderlichen Komponenten geladen hat.

add_action () online lesen: https://riptutorial.com/de/wordpress/topic/6264/add-action---

https://riptutorial.com/de/home 10

Page 29: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 3: add_editor_style ()

Einführung

Mit dieser Funktion können Benutzer Stylesheets für den TinyMCE-Editor laden

Syntax

add_editor_style ($ Stylesheet)•

Parameter

Parameter Einzelheiten

$ Stylesheet

(Array oder String) (Optional) Stylesheet-Name oder Array davon, relativ zum Designstamm. Standardmäßig "editor-style.css"

Examples

Laden einer einzelnen CSS-Datei

Code

function add_new_style() { add_editor_style( 'file-name-here.css' ); } add_action( 'admin_init', 'add_new_style' );

Erläuterung

Im obigen Code haben wir add_editor_style verwendet, um die CSS-Datei zu laden. Wir haben auch add_action verwendet, um sicherzustellen, dass WordPress unsere Funktion ausführt.

add_editor_style () online lesen: https://riptutorial.com/de/wordpress/topic/9215/add-editor-style---

https://riptutorial.com/de/home 11

Page 30: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 4: add_menu_page ()

Einführung

Mit dieser Funktion fügen Sie ein Element in die Navigationsleiste des Verwaltungsbereichs ein.

Syntax

add_menu_page ($ page_title, $ menu_title, $ fähigkeit, $ menu_slug, $ function, $ icon_url, $ position)

Parameter

Parameter Einzelheiten

$ page_title(Zeichenfolge) Der Text, der in den Titel-Tags der Seite angezeigt werden soll, wenn das Menü ausgewählt wird.

$ menu_title

(Zeichenfolge) Der für das Menü zu verwendende Text.

$ Fähigkeit(Zeichenfolge) Die Fähigkeit, die benötigt wird, damit dieses Menü dem Benutzer angezeigt wird.

$ menu_slug

(Zeichenfolge) Der Slug-Name, durch den auf dieses Menü verwiesen wird (sollte für dieses Menü eindeutig sein)

$ Funktion(aufrufbar) (optional) Die Funktion, die aufgerufen werden soll, um den Inhalt dieser Seite auszugeben.

$ icon_url(Zeichenfolge) (optional) Die URL zu dem Symbol, das für dieses Menü verwendet werden soll.

$ position(int) (optional) Die Position in der Menüreihenfolge, in der diese angezeigt werden soll.

Bemerkungen

Hier ist eine Liste der Standardpositionen (für $ position)

2 - Dashboard•4 - Trennzeichen•5 - Beiträge•10 - Medien•

https://riptutorial.com/de/home 12

Page 31: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

15 - Links•20 - Seiten•25 - Kommentare•59 - Separator•60 - Aussehen•65 - Plugins•70 - Benutzer•75 - Werkzeuge•80 - Einstellungen•99 - Separator•

Examples

Hinzufügen des Elements "Titelseitentitel" zur Navigationsleiste

Code

function add_the_theme_page(){ add_menu_page('Theme page title', 'Theme menu label', 'manage_options', 'theme-options', 'page_content', 'dashicons-book-alt'); } add_action('admin_menu', 'add_the_theme_page'); function page_content(){ echo '<div class="wrap"><h2>Testing</h2></div>'; }

Ausgabe

https://riptutorial.com/de/home 13

Page 32: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Erläuterung

Im Code haben wir eine Funktion namens add_the_theme_page und mit add_menu_page das Element zur Navigationsleiste hinzugefügt. Bitte überprüfen Sie den Parameter-Abschnitt auf dieser Seite, um zu erfahren, welche Argumente wir übergeben haben. Anschließend haben wir add_action , um die Funktion add_the_theme_page . Schließlich haben wir die Funktion page_content , um den Inhalt der Seite anzuzeigen.

OOP & wie man Skripte / Stile auf der Menüseite lädt

<?php /* * Plugin Name: Custom Admin Menu */ class SO_WP_Menu {

https://riptutorial.com/de/home 14

Page 33: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

private $plugin_url; public function __construct() { $this->plugin_url = plugins_url( '/', __FILE__ ); add_action( 'plugins_loaded', array( $this, 'init' ) ); } public function init() { add_action( 'admin_menu', array( $this, 'add_menu' ) ); } public function add_menu() { $hook = add_menu_page( 'My Menu', // Title, html meta tag '<span style="color:#e57300;">My Menu</span>', // Menu title, hardcoded style 'edit_pages', // capability 'dummy-page-slug', // URL array( $this, 'content' ), // output null, // icon, uses default 1 // position, showing on top of all others ); add_action( "admin_print_scripts-$hook", array( $this, 'scripts' ) ); add_action( "admin_print_styles-$hook", array( $this, 'styles' ) ); } public function content() { ?> <div id="icon-post" class="icon32"></div> <h2>Dummy Page</h2> <p> Lorem ipsum</p> <?php } # Printing directly, could be wp_enqueue_script public function scripts() { ?><script>alert('My page');</script><?php } # Enqueing from a CSS file on plugin directory public function styles() { wp_enqueue_style( 'my-menu', $this->plugin_url . 'my-menu.css' ); } } new SO_WP_Menu();

In diesem Beispiel ist zu beachten, dass bei der Verwendung von add_menu_page() ein Hook zurückgegeben wird, mit dem unsere genaue Seite als Ziel ausgewählt werden kann und Styles und Scripts dort geladen werden können. Ein häufiger Fehler ist das Enqueue ohne Targeting. Dadurch werden Skripte und Stile über /wp-admin . Mit OOP können wir gemeinsame Variablen speichern, die zwischen internen Methoden verwendet werden.

add_menu_page () online lesen: https://riptutorial.com/de/wordpress/topic/9189/add-menu-page---

https://riptutorial.com/de/home 15

Page 34: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 5: add_submenu_page ()

Einführung

Diese Funktion dient zum Hinzufügen eines Unterelements zu einem vorhandenen Element in der Navigationsleiste des Admin-Bereichs.

Syntax

add_submenu_page ($ parent_slug, $ page_title, $ menu_title, $ fähigkeit, $ menu_slug, $ function)

Parameter

Parameter Einzelheiten

$ parent_slug

(Zeichenfolge) Der Slug-Name für das übergeordnete Menü (oder der Dateiname einer Standard-WordPress-Admin-Seite).

$ page_title(Zeichenfolge) Der Text, der in den Titel-Tags der Seite angezeigt werden soll, wenn das Menü ausgewählt wird.

$ menu_title (Zeichenfolge) Der für das Menü zu verwendende Text.

$ Fähigkeit(Zeichenfolge) Die Fähigkeit, die benötigt wird, damit dieses Menü dem Benutzer angezeigt wird.

$ menu_slug

(Zeichenfolge) Der Slug-Name, durch den auf dieses Menü verwiesen wird (sollte für dieses Menü eindeutig sein)

$ Funktion(aufrufbar) (Optional) Die Funktion, die aufgerufen werden soll, um den Inhalt dieser Seite auszugeben.

Bemerkungen

Hier finden Sie eine Liste der Slugs für $ parent_slug

Dashboard: 'index.php'•Beiträge: 'edit.php'•Medien: 'upload.php'•Seiten: 'edit.php? Post_type = page'•Kommentare: 'edit-comments.php'•Benutzerdefinierte Beitragstypen: "edit.php? Post_type = Ihr_post_type"•Aussehen: 'themes.php'•

https://riptutorial.com/de/home 16

Page 35: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Plugins: 'plugins.php'•Benutzer: 'users.php'•Werkzeuge: 'tools.php'•Einstellungen: 'options-general.php'•Netzwerkeinstellungen: 'settings.php'•

Examples

Hinzufügen der "Untermenüseite" als Unterseite von "Tools" zur Navigationsleiste

Code

add_action('admin_menu', 'register_my_custom_submenu_page'); function register_my_custom_submenu_page() { add_submenu_page( 'tools.php', 'Submenu Page', 'My Custom Submenu Page', 'manage_options', 'my-custom-submenu-page', 'my_custom_submenu_page_content' ); } function my_custom_submenu_page_content() { echo '<div class="wrap">'; echo '<h2>Page Title</h2>'; echo '</div>'; }

Ausgabe

https://riptutorial.com/de/home 17

Page 36: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Erläuterung

Im Code haben wir eine Funktion namens register_my_custom_submenu_page und wir haben add_submenu_page , um das Element als untergeordnetes Element von tools.php, der Seite Tools, zur add_submenu_page hinzuzufügen.

Bitte überprüfen Sie den Parameter-Abschnitt auf dieser Seite, um zu erfahren, welche Argumente wir übergeben haben. Anschließend haben wir add_action , um register_my_custom_submenu_page Funktion add_action auszuführen. Schließlich haben wir die Funktion my_custom_submenu_page_content , um den Inhalt der Seite anzuzeigen.

add_submenu_page () online lesen: https://riptutorial.com/de/wordpress/topic/9193/add-submenu-page---

https://riptutorial.com/de/home 18

Page 37: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 6: add_theme_support ()

Einführung

Diese Funktion registriert Features, die das Design unterstützt.

Syntax

add_theme_support ($ feature)•

Parameter

Parameter Einzelheiten

$ -Funktion (string) Das hinzugefügte Feature.

Bemerkungen

Liste der Funktionen, die in $ verwendet werden sollen:

Postformate•"Post-Thumbnails"•'html5'•'custom-logo'•'Custom-Header-Uploads'•'benutzerdefinierte Kopfzeile'•'Benutzerdefinierter Hintergrund'•'title-tag'•'Starter-Inhalt'•

Examples

Theme-Unterstützung für Postformate hinzufügen

add_theme_support( 'post-formats', array( 'formatone', 'formattwo' ) );

Theme-Unterstützung für Post-Thumbnails zu Posts hinzufügen

add_theme_support( 'post-thumbnails', array( 'post' ) );

Der obige Code erlaubt nur Post-Dailsails für alle Posts. So aktivieren Sie die Funktion für alle Beitragstypen:

https://riptutorial.com/de/home 19

Page 38: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

add_theme_support( 'post-thumbnails' );

add_theme_support () online lesen: https://riptutorial.com/de/wordpress/topic/9216/add-theme-support---

https://riptutorial.com/de/home 20

Page 39: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 7: Admin-Dashboard-Widgets

Einführung

Mit einem Admin-Dashboard-Widget können Sie beliebige Informationen im Admin-Dashboard anzeigen. Sie können mehrere Widgets erstellen, wenn Sie möchten. Sie können den Code der functions.php Ihres Themes oder Ihres Plugins hinzufügen.

Syntax

add_action ($ tag, $ function_to_add, $ Priorität, $ akzeptierte_args);•wp_add_dashboard_widget ($ widget_id, $ widget_name, $ callback, $ control_callback, $ callback_args)

Parameter

Parameter Einzelheiten

$ tag( Zeichenfolge erforderlich ) Name der Aktion, an der $ function_to_add angehängt ist

$ function_to_add

( aufrufbar erforderlich ) Name der Funktion, die Sie aufrufen möchten.

$ Priorität( int optional ) Ort des Funktionsaufrufs in allen Aktionsfunktionen (Standard = 10)

$ Accepted_args( int optional ) Anzahl der Parameter, die die Funktion akzeptiert (Standard = 1)

$ widget_id ( Zeichenfolge erforderlich ) Einzigartiger Slug für Ihr Widget

$ widget_name ( Zeichenfolge erforderlich ) Name Ihres Widgets (im Kopf angezeigt)

$ Rückruf( aufrufbar erforderlich ) Name der Funktion, die den Inhalt Ihres Widgets anzeigt

$ control_callback

( aufrufbar optional ) Name der Funktion, die die Formulare der Widgetoptionen verarbeitet

$ callback_args ( Array optional ) Parameter der $ control_callback-Funktion

Examples

https://riptutorial.com/de/home 21

Page 40: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Einfaches Widget (Text anzeigen)

Dadurch wird ein einfaches Widget hinzugefügt, das nur eine kleine Nachricht anzeigt.

add_action('wp_dashboard_setup', 'register_my_dashboard_widgets'); function register_my_dashboard_widgets() { wp_add_dashboard_widget('myInfo_widget', 'Important Information', 'display_infoWidget'); } function display_infoWidget() { echo '<p>At the first of february this site gets a new design. Therefore is wont be available this day. To see the current progress you can visit <a href="http://www.justanexample.com" >this site</a></p>'; }

Admin-Dashboard-Widgets online lesen: https://riptutorial.com/de/wordpress/topic/9571/admin-dashboard-widgets

https://riptutorial.com/de/home 22

Page 41: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 8: AJAX

Examples

AJAX-Anfrage mit einer JSON-Antwort

Functions.php:

// We add the action twice, once for logged in users and once for non logged in users. add_action( 'wp_ajax_my_action', 'my_action_callback' ); add_action( 'wp_ajax_nopriv_my_action', 'my_action_callback' ); // Enqueue the script on the front end. add_action( 'wp_enqueue_scripts', 'enqueue_my_action_script' ); // Enqueue the script on the back end (wp-admin) add_action( 'admin_enqueue_scripts', 'enqueue_my_action_script' ); function my_action_callback() { $json = array(); if ( isset( $_REQUEST['field2'] ) ) { $json['message'] = 'Success!'; wp_send_json_success( $json ); } else { $json['message'] = 'Field 2 was not set!'; wp_send_json_error( $json ); } } function enqueue_my_action_script() { wp_enqueue_script( 'my-action-script', 'path/to/my-action-script.js', array( 'jquery' ), null, true ); wp_localize_script( 'my-action-script', 'my_action_data', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ), ) ); }

my-action-script.js:

(function( $ ) { 'use strict'; $( document ).on( 'ready', function() { var data = { action: 'my_action', field2: 'Hello World', field3: 3 }; $.getJSON( my_action_data.ajaxurl, data, function( json ) { if ( json.success ) { alert( 'yes!' ); } else { alert( json.data.message ); }

https://riptutorial.com/de/home 23

Page 42: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

} ); } ); })( jQuery );

AJAX mit .ajax () und WordPress Nonce

Functions.php

//Localize the AJAX URL and Nonce add_action('wp_enqueue_scripts', 'example_localize_ajax'); function example_localize_ajax(){ wp_localize_script('jquery', 'ajax', array( 'url' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('example_ajax_nonce'), )); } //Example AJAX Function add_action('wp_ajax_example_function', 'example_function'); add_action('wp_ajax_nopriv_example_function', 'example_function'); function example_function(){ if ( !wp_verify_nonce($_POST['nonce'], 'example_ajax_nonce') ){ die('Permission Denied.'); } $firstname = sanitize_text_field($_POST['data']['firstname']); $lastname = sanitize_text_field($_POST['data']['lastname']); //Do something with data here echo $firstname . ' ' . $lastname; //Echo for response wp_die(); // this is required to terminate immediately and return a proper response:- https://codex.wordpress.org/AJAX_in_Plugins }

beispiel.js

jQuery(document).on('click touch tap', '.example-selector', function(){ jQuery.ajax({ type: "POST", url: ajax.url, data: { nonce: ajax.nonce, action: 'example_function', data: { firstname: 'John', lastname: 'Doe' }, }, success: function(response){ //Success }, error: function(XMLHttpRequest, textStatus, errorThrown){ //Error }, timeout: 60000 });

https://riptutorial.com/de/home 24

Page 43: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

return false; });

wp_ajax - Kernfunktionalität + _wpnonce check

Functions.php :

function rm_init_js() { wp_enqueue_script( 'custom-ajax-script', get_template_directory_uri() . '/js/ajax.js', array( 'jquery', 'wp-util' ), '1.0', true ); // pass custom variables to JS wp_localize_script( 'custom-ajax-script', 'BEJS', array( 'action' => 'custom_action', 'nonce' => wp_create_nonce( 'test-nonce' ) ) ); } add_action( 'wp_enqueue_scripts', 'rm_init_js' ); function rm_ajax_handler() { check_ajax_referer( 'test-nonce' ); extract( $_POST ); $data = compact( 'first_name', 'last_name', 'email' ); foreach ( $data as $name => $value ) { switch ( $name ) { case 'first_name': case 'last_name': $data[ $name ] = ucfirst( sanitize_user( $value ) ); break; case 'email': $data[ $name ] = sanitize_email( $value ); break; } } $userID = email_exists( $data['email'] ); if ( ! $userID ) { wp_send_json_error( sprintf( __( 'Something went wrong! %s try again!', 'textdomain' ), $data['first_name'] . ' ' . $data['last_name'] ) ); } wp_update_user( array( 'ID' => $userID, 'display_name' => $data['first_name'] . ' ' . $data['last_name'], 'first_name' => $data['first_name'], 'last_name' => $data['last_name'], ) ); wp_send_json_success( sprintf( __( 'Welcome Back %s', 'textdomain' ), $data['first_name'] . ' ' . $data['last_name'] ) ); } add_action( 'wp_ajax_custom_action', 'rm_ajax_handler' ); add_action( 'wp_ajax_nopriv_custom_action', 'rm_ajax_handler' );

https://riptutorial.com/de/home 25

Page 44: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

ajax.js

;(function() { wp.ajax.post(BEJS.action, { first_name: 'john', last_name: '%65doe', email: '[email protected]', _ajax_nonce: BEJS.nonce }).done( function( response ) { alert(`Success: ${response}`); }).fail( function( response ) { alert(`Error: ${response}`); }); })();

OOP-Ajax-Einreichung unter Verwendung einer einfachen Klasse mit Nonce

Sie können das gesamte Plugin kopieren und einfügen, um es auszuprobieren. Die Klasse Skelett wird aus gebrauchtem hier .

class-oop-ajax.cpp

<?php /** * The plugin bootstrap file * * This file is read by WordPress to generate the plugin information in the plugin * Dashboard. This file defines a function that starts the plugin. * * @wordpress-plugin * Plugin Name: Oop Ajax * Plugin URI: http:// * Description: A simple example of using OOP principles to submit a form from the front end. * Version: 1.0.0 * Author: Digvijay Naruka * Author URI: http:// * License: GPL-2.0+ * License URI: http://www.gnu.org/licenses/gpl-2.0.txt * Text Domain: oop-ajax * Domain Path: /languages */ // If this file is called directly, abort. if ( ! defined( 'WPINC' ) ) { die; } class Oop_Ajax { // Put all your add_action, add_shortcode, add_filter functions in __construct() // For the callback name, use this: array($this,'<function name>')

https://riptutorial.com/de/home 26

Page 45: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

// <function name> is the name of the function within this class, so need not be globally unique // Some sample commonly used functions are included below public function __construct() { // Add Javascript and CSS for front-end display add_action('wp_enqueue_scripts', array($this,'enqueue')); // Add the shortcode for front-end form display add_action( 'init', array( $this, 'add_form_shortcode' ) ); // Add ajax function that will receive the call back for logged in users add_action( 'wp_ajax_my_action', array( $this, 'my_action_callback') ); // Add ajax function that will receive the call back for guest or not logged in users add_action( 'wp_ajax_nopriv_my_action', array( $this, 'my_action_callback') ); } // This is an example of enqueuing a JavaScript file and a CSS file for use on the front end display public function enqueue() { // Actual enqueues, note the files are in the js and css folders // For scripts, make sure you are including the relevant dependencies (jquery in this case) wp_enqueue_script('my-ajax-script', plugins_url('js/oop-ajax.js', __FILE__), array('jquery'), '1.0', true); // Sometimes you want to have access to data on the front end in your Javascript file // Getting that requires this call. Always go ahead and include ajaxurl. Any other variables, // add to the array. // Then in the Javascript file, you can refer to it like this: my_php_variables.ajaxurl wp_localize_script( 'my-ajax-script', 'my_php_variables', array( 'ajaxurl' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('_wpnonce') )); } /** * Registers the shortcode for the form. */ public function add_form_shortcode() { add_shortcode( "oop-ajax-add-form", array( $this, "add_form_front_end" ) ); } /** * Processes shortcode oop-ajax-add-form * * @param array $atts The attributes from the shortcode * * @return mixed $output Output of the buffer */ function add_form_front_end($atts, $content) { echo "<form id='my_form'>"; echo "<label for='name'>Name: </label>"; echo "<input id='name' type='text' name='name' ";

https://riptutorial.com/de/home 27

Page 46: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

echo "<br>" ; echo "<label id='email' for='email'>Email: </label>" ; echo "<input type='text' name='email'>"; echo "<br>" ; echo "<input type='hidden' name='action' value='my_action' >" ; echo "<input id='submit_btn' type='submit' name='submit' value='submit'> "; echo "</form><br><br>"; echo "<div id='response'>ajax responce will be here</div> "; } /** * Callback function for the my_action used in the form. * * Processses the data recieved from the form, and you can do whatever you want with it. * * @return echo response string about the completion of the ajax call. */ function my_action_callback() { // echo wp_die('<pre>' . print_r($_REQUEST) . "<pre>"); check_ajax_referer( '_wpnonce', 'security'); if( ! empty( $_POST )){ if ( isset( $_POST['name'] ) ) { $name = sanitize_text_field( $_POST['name'] ) ; } if( isset( $_POST['email'] ) ) { $email = sanitize_text_field( $_POST['email'] ) ; } /////////////////////////////////////////// // do stuff with values // example : validate and save in database // process and output /////////////////////////////////////////// $response = "Wow <strong style= 'color:red'>". $name . "!</style></strong> you rock, you just made ajax work with oop."; //this will send data back to the js function: echo $response; } else { echo "Uh oh! It seems I didn't eat today"; } wp_die(); // required to terminate the call so, otherwise wordpress initiates the termination and outputs weird '0' at the end. } }

https://riptutorial.com/de/home 28

Page 47: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

//initialize our plugin global $plugin; // Create an instance of our class to kick off the whole thing $plugin = new Oop_Ajax();

oop-ajax.js

Legen Sie die js-Datei im js-Verzeichnis ab, z. B. oop-ajax / js / oop-ajax.js

(function($) { 'use strict'; $("#submit_btn").on('click', function() { // set the data var data = { action: 'my_action', security: my_php_variables.nonce, name: $("#name").val(), email: $("#email").val() } $.ajax({ type: 'post', url: my_php_variables.ajaxurl, data: data, success: function(response) { //output the response on success $("#response").html(response); }, error: function(err) { console.log(err); } }); return false; }); })(jQuery);

AJAX online lesen: https://riptutorial.com/de/wordpress/topic/2335/ajax

https://riptutorial.com/de/home 29

Page 48: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 9: Aktionen und Filter

Syntax

add_action (tag, function_to_call, priorität, num_of_args);•add_filter (Tag, function_to_call, priorität, num_of_args);•

Parameter

Parameter Erläuterung

$ tag(Zeichenfolge) (Erforderlich) Der Name der Aktion, an die die $ -Funktion angehängt ist.

$ Funktion(aufrufbar) (Erforderlich) Erfordert eine Zeichenfolge, die den Funktionsnamen oder die anonyme Funktion enthält. Siehe Beispiele zum Hinzufügen von Funktionen innerhalb von Klassen.

$ Priorität

(int) default = 10. Funktionen, die an Hooks / Filter angehängt sind, werden in der zugewiesenen Priorität ausgeführt. Es kann vorkommen, dass Sie vor allen anderen Aktionen mit Code arbeiten möchten, Priority = 1 oder nach allen anderen angefügten Funktionen Priority = 100 usw. festlegen. Wie bei allen PHP-Funktionen können Sie die Funktion verwenden, ohne einen Wert für eine Variable zu übergeben wo ein Standardwert festgelegt wurde, aber wenn Sie die Anzahl der zurückgegebenen Parameter ändern möchten, müssen Sie angeben!

$ parameter

(int) default = 1. Die Anzahl der an Ihre angehängte Funktion zurückgegebenen Parameter. Die zurückgegebenen Parameter hängen von der Nummer ab, an der der Hook erstellt wurde. Weitere apply_filters() Sie unter apply_filters() und do_action() .

Bemerkungen

Wordpress-Haken

Etwas, das Entwickler oftmals verwirrt, wenn sie mit WordPress arbeiten, ist die Verwendung von apply_filters() und add_action() . Sie werden oft Plugins / Themes sehen, die diese im Code verwenden. Wenn Sie das Konzept nicht verstehen, werden Sie Schwierigkeiten haben, mit ihnen zu arbeiten.

In Kürze (sehr kurz, lesen Sie das WordPress-Lade-Flussdiagramm für den Prozess im Detail), lädt WordPress auf folgende Weise:

https://riptutorial.com/de/home 30

Page 49: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

wp-load.php - Funktionen etc1. mu-plugins - alle Dateien, die sich im Ordner mu-plugins befinden - werden häufig für zwischengespeicherte Objekte verwendet

2.

Plugins - keine besondere Reihenfolge, alle installierten und aktivierten Plugins werden geladen

3.

Aktives untergeordnetes Thema / übergeordnetes Thema4. init - Rest der Daten5. Vorlage6.

Wenn Sie ein Entwickler sind und mit einer Funktionsdatei arbeiten, können Sie sehen, dass beide zuvor geladen wurden als die Dateien, mit denen Sie arbeiten. Das heißt, Sie können keine Prozesse ändern (beachten Sie können keine Funktionen überschreiben) oder Variablen, die später ausgeführt werden oder noch nicht definiert wurden. Außerdem können Themenentwickler Hooks in ihren Code einfügen, damit Plugins eine Verbindung herstellen können, oder Plugins können zulassen, dass andere Plugins ihre Variablen überschreiben. Nun mag das bis jetzt verwirrend sein, aber dort bleiben.

Um add_filter() und add_action() zu verstehen, add_filter() wir uns zuerst ansehen, wie die Hooks erstellt werden.

$arga= 'hello'; do_action('im_a_hook', $arga );

Wenn Sie in WordPress auf das Obige stoßen, werden alle an den Hook im_a_hook angehängten Funktionen im_a_hook (suchen Sie nach $wp_filter um Informationen zum Prozess zu erhalten). In Ihrer angefügten Funktion steht $arga für die angefügte Funktion zur Verfügung.

add_action('im_a_hook', 'attached_function'); function attached_function($arga){ echo $arga; }

Dies eröffnet neue Möglichkeiten, um Variablen an bestimmten Punkten des Ladeprozesses zu ändern. Denken Sie daran, dass wir vorhin gesagt haben, dass Vorlagen nach Plugins / Themes geladen werden? Ein häufiges Plugin ist WooCommerce, das später im Prozess Bildschirme erstellt. Ich werde nicht dokumentieren, wie ein Beispiel für do_action im Plugin zu finden ist.

do_action( 'woocommerce_after_add_to_cart_button' );

Hier haben wir einen Hook erstellt, der keine Variablen zurückgibt, aber wir können trotzdem Spaß daran haben:

add_action( 'woocommerce_after_add_to_cart_button', 'special_offer'); function special_offer(){ echo '<h1>Special Offer!</h1>; }

https://riptutorial.com/de/home 31

Page 50: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Die obige add_action wird echo eine Überschrift Spezpredloschenija wo do_action('woocommerce_after_add_to_cart_button') befindet , welche, wenn ein WooCommerce Bildschirm zu schaffen. Daher können wir diesen Hook zum Einfügen von HTML verwenden. Andere Anwendungen umfassen das Umleiten auf einen anderen Bildschirm insgesamt usw.

Es können auch mehrere Variablen an die Funktion übergeben werden. Versuchen Sie dies in Ihren Themenfunktionen. Beachten Sie den letzten Parameter, den wir auf 3 setzen, da wir mit den 3 verfügbaren Parametern arbeiten möchten. Wenn wir dies auf 2 ändern, wird nur 2 zurückgegeben und wir erhalten einen undefinierten Fehler.

add_action('custom_hook', 'attached_function', 10, 3); function attached_function($a,$b,$c){ var_dump($a); var_dump($b); var_dump($c); } $arga = 1; $argb = 2; $argc = 3; do_action('custom_hook', $arga, $argb, $argc); exit;

Es gibt einen weiteren WP-Hook-Typ, der als Filter bezeichnet wird. Ein Filter unterscheidet sich von einer Aktion in ihrer Verwendung. Eine Aktion kann nur Variablen empfangen. Offensichtlich befinden sich diese Variablen im Funktionsumfang (Sie sollten wissen, was PHP ist, wenn nicht Google). Die Filter geben die zurückgegebenen Daten zurück, sodass Sie Variablen ändern können.

$filter_me= apply_filters('im_a_filter', $variable_to_filter);

Wo Sie das oben sehen, können Sie den Wert von $filter_me da alle von Ihnen zurückgegebenen Daten der in der Variablen gespeicherte Wert sind. So zum Beispiel (Beachten Sie, dass wir $variable_to_filter im Beispiel in $filter_me ):

add_filter('im_a_filter', 'attached_function', 100); function attached_function($filter_me){ $filter_me= 'ray'; return $filter_me; } $filter_me = 'bob'; $filter_me= apply_filters('im_a_filter', $filter_me);

https://riptutorial.com/de/home 32

Page 51: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Die $filter_me Variable enthält jetzt 'ray' anstelle von 'bob' . Wir haben eine Priorität von 100 festgelegt. Wir sind also zuversichtlich, dass niemand den Wert nach der Verwendung ändert (es können mehrere Filter auf demselben Hook laufen) Kann jetzt später im Prozess verwendete Variablen ändern, wenn apply_filters() vorhanden ist.

Sie können auch mehrere Parameter übergeben, Sie können jedoch nur den Wert von eins ändern. Sie müssen auch einen Wert zurückgeben, sonst enthält Ihre Variable nichts. Wenn Sie wissen, wie Sie mit php Variablen / Werte / Arrays / Objekte zuweisen, ist dies für Sie offensichtlich, zB:

add_filter('im_a_filter', 'attached_function', 100, 3); function attached_function($filter_me, $arga, $argb){ $filter_me= 'ray'.$arga.$argb; $arga= 'you fool'; return $filter_me; } $filter_me = 'bob'; $arga = ' middlename'; $argb = ' surname'; $filter_me= apply_filters('im_a_filter', $filter_me, $arga, $argb);

Die Variable $filter_me enthält jetzt den Nachnamen 'ray middlename' . Aber was ist mit $arga ? Dieser enthält immer noch 'middlename' . Die Änderung eines $arga in 'you Fool' innerhalb unserer Funktion hat keinen Einfluss auf den definierten Wert außerhalb seines Gültigkeitsbereichs (es gibt Möglichkeiten, Google-Globals usw.).

add_action ($ hook_name, $ function, $ priority, $ parameters)

add_filter ($ hook_name, $ function, $ priority, $ parameters);

Examples

add_action - init

add_action('init', 'process_post'); function process_post(){ if($_POST) var_dump($_POST); }

add_action - init - anonyme Funktion

https://riptutorial.com/de/home 33

Page 52: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

add_action('init' , function(){ echo 'i did something'; });

add_action - init - innerhalb eines Klassenobjekts

class sample{ public function __construct(){ add_action('init', array($this, 'samp') ); } public function samp(){ // must be public!! echo 'i did something'; } } new sample();

add_action - init - innerhalb der statischen Klasse

class sample{ public static function add_action_func(){ //note __CLASS__ will also include any namespacing add_action('init', array(__CLASS__, 'samp') ); } public static function samp(){ echo 'i did something'; } } sample::add_action_func();

Aktionen und Filter online lesen: https://riptutorial.com/de/wordpress/topic/2692/aktionen-und-filter

https://riptutorial.com/de/home 34

Page 53: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 10: Aktualisieren Sie WordPress manuell

Examples

Über FTP

Laden Sie die gewünschte Version von WordPress von www.wordpress.org auf Ihren lokalen Computer herunter und entpacken Sie die Datei.

Behalten Sie auch ein Backup Ihrer aktuellen Version ... nur für den Fall.•

1.

Stellen Sie mit Ihrem bevorzugten FTP-Client eine Verbindung zu Ihrer Website her (FileZilla ist beliebt und einfach, aber jeder FTP-Client ist in Ordnung).

Anweisungen hierfür liegen außerhalb des Umfangs von WordPress, können jedoch zu einem späteren Zeitpunkt im vorgeschlagenen FTP-Thema gefunden werden .

2.

Laden Sie die Ordner (und deren Inhalt) mit dem Titel "wp-admin" und "wp-include" in die entsprechenden Verzeichnisse auf Ihrem Server hoch. Achten Sie darauf, die aktuellen Ordner zu überschreiben.

Sie können das Hochladen des Ordners "wp-content" auslassen, es sei denn, Sie möchten eines der enthaltenen Themen verwenden. Wenn Sie die Standarddesigns Ihrer gewählten Version aktualisieren / hochladen möchten, sollten Sie auch diesen Ordner hochladen.

3.

Laden Sie die einzelnen Dateien in den Home-Ordner hoch (index.php, wp - *. Php usw.).

Sie können die Dateien mit dem Titel "liscense.txt" und "readme.html" weglassen, da sie nicht funktionieren müssen und sie als Methoden zur Ermittlung Ihrer WP-Version für Sicherheits-Exploits verwendet werden können.

4.

Besuchen Sie Ihre Website und melden Sie sich an, um erforderliche Datenbankaktualisierungen durchzuführen.

Nicht alle WP-Aktualisierungen haben Datenbankänderungen, aber einige tun es.•

5.

Hinweis : Bei dieser Methode werden verwaiste Dateien erstellt, die sich im Laufe der Zeit aufbauen können und Sicherheitsrisiken darstellen können. Stellen Sie sicher, dass Sie nach dem Abschluss einen Dateivergleich durchführen und alte Dateien von früheren WP-Versionen löschen, die nicht mehr verwendet werden.

Aktualisieren Sie WordPress manuell online lesen: https://riptutorial.com/de/wordpress/topic/8663/aktualisieren-sie-wordpress-manuell

https://riptutorial.com/de/home 35

Page 54: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 11: Alternierende Hauptschleife (Filter pre_get_posts)

Syntax

add_action ('pre_get_posts', 'callback_function_name');•Funktion callback_function_name ($ query) {}•// für PHP 5.3.0 oder höher•add_action ('pre_get_posts', Funktion ($ query) {});•

Parameter

Parameter Einzelheiten

$ Abfrage (WP_Query) Schleifenobjekt

Bemerkungen

Wenn Sie PHP 5.3.0 oder höher verwenden, können Sie Closures ( anonyme Funktionen ) verwenden.

add_action( 'pre_get_posts', function( $query ) { if( !$query->is_main_query() || is_admin() ) return; // this code will run only if // - this query is main query // - and this is not admin screen });

Examples

Noch spezifischeres Loop-Targeting

Angenommen, wir möchten die Hauptschleife nur für eine bestimmte Taxonomie oder einen Post-Typ ändern.

Targeting nur Hauptschleife auf book Post Art Archivseite.

add_action( 'pre_get_posts', 'my_callback_function' ); function my_callback_function( $query ) { if( !$query->is_main_query() || is_admin() ) return; if( !is_post_type_archive( 'book' ) ) return; // this code will run only if

https://riptutorial.com/de/home 36

Page 55: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

// - this query is main query // - and this is not admin screen // - and we are on 'book' post type archive page }

Sie können mit is_category() , is_tag() und is_tax() auch nach Kategorien, Tags oder benutzerdefinierten Taxonomie-Archivseiten is_tax() .

Sie können jedes in WordPress verfügbare bedingte Tag verwenden .

Zeige Beiträge aus nur einer Kategorie

add_action( 'pre_get_posts', 'single_category' ); function single_category( $query ) { if( !$query->is_main_query() || is_admin() ) return; $query->set( 'cat', '1' ); return; }

Beiträge vor dem Abrufen von Posts filtern die grundlegende Verwendung

Manchmal möchten Sie die Haupt-WordPress-Abfrage ändern.

Filter pre_get_posts ist der Weg zu gehen.

Zum Beispiel pre_get_posts Sie mit pre_get_posts Hauptschleife mitteilen, dass sie nur 5 Beiträge pre_get_posts . Oder um Beiträge nur aus einer Kategorie anzuzeigen oder jegliche Kategorie auszuschließen usw.

add_action( 'pre_get_posts', 'my_callback_function' ); function my_callback_function( $query ) { // here goes logic of your filter }

Wie Sie sehen, übergeben wir das Hauptschleifen- Abfrageobjekt in unser Callback-Funktionsargument.

Wichtiger Hinweis hier: Wir übergeben Argumente als Referenz . Das bedeutet, dass wir keine Abfrage zurückgeben oder Globals setzen müssen, damit es funktioniert. Da $query eine Referenz auf das Hauptabfrageobjekt ist, werden alle Änderungen, die wir an unserem Objekt vornehmen, sofort im Hauptschleifenobjekt angezeigt.

Kategorie aus der Beitragsliste entfernen freigeben

add_action( 'pre_get_posts', 'single_category_exclude' ); function single_category_exclude( $query ) { if( !$query->is_main_query() || is_admin() ) return;

https://riptutorial.com/de/home 37

Page 56: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

$query->set( 'cat', '-1' ); return; }

Ändern Sie posts_per_page für die Hauptschleife

Alles was wir tun müssen, ist die set() Methode des $query Objekts zu verwenden.

Es braucht zwei Argumente, erstens was wir setzen wollen und zweitens welchen Wert Sie setzen wollen.

add_action( 'pre_get_posts', 'change_posts_per_page' ); function change_posts_per_page( $query ) { if( !$query->is_main_query() || is_admin() ) return; $query->set( 'posts_per_page', 5 ); return; }

Targeting nur für die Haupt-WordPress-Schleife

WordPress wendet den pre_get_posts Filter buchstäblich auf jede erzeugte Schleife an. Das bedeutet, dass alle Änderungen, die wir an unserer Callback-Funktion vornehmen, auf alle vorhandenen Loops angewendet werden.

Natürlich wollen wir es in den meisten Szenarien nicht.

In den meisten Fällen möchten wir nur die Hauptschleife anvisieren und nur für Nicht-Administrationsbildschirme.

Wir können die is_main_query() -Methode und die globale Funktion is_admin() verwenden, um zu überprüfen, ob wir am richtigen Ort sind.

add_action( 'pre_get_posts', 'my_callback_function' ); function my_callback_function( $query ) { if( !$query->is_main_query() || is_admin() ) return; // this code will run only if // - this query is main query // - and this is not admin screen }

Alternierende Hauptschleife (Filter pre_get_posts) online lesen: https://riptutorial.com/de/wordpress/topic/4418/alternierende-hauptschleife--filter-pre-get-posts-

https://riptutorial.com/de/home 38

Page 57: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 12: Beiträge abfragen

Syntax

$ the_query = new WP_Query ($ args);•$ posts_array = get_posts ($ args);•

Parameter

Parameter Beschreibung

$ args

(Array) Ein Array benötigter Argumente für eine Abfrage - kann an Ihre Bedürfnisse angepasst werden, z. B. das Abfragen von Beiträgen aus nur einer Kategorie, vom benutzerdefinierten Beitragstyp oder sogar das Abfragen bestimmter Taxonomien

Bemerkungen

Abfrageargumente sind zahlreich. Die WP_Query () -Codex- Seite enthält eine Liste von Parametern. Einige von ihnen sind

Autorenparameter•Kategorie-Parameter•Tag-Parameter•Taxonomie-Parameter•Suchparameter•Post- und Seitenparameter•Passwort-Parameter•Geben Sie die Parameter ein•Statusparameter•Paginierungsparameter•Order & Orderby-Parameter•Datumsparameter•Benutzerdefinierte Feldparameter•Berechtigungsparameter•Parameter für den Mime-Typ•Caching-Parameter•Parameter zurückgeben•

Eines der wichtigsten Dinge, die zu bedenken sind, ist:

Verwenden Sie niemals query_posts ()

query_posts()

https://riptutorial.com/de/home 39

Page 58: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

überschreibt die Hauptabfrage und kann Probleme für den Rest Ihres query_posts() verursachen. Jedes Mal, wenn Sie die Hauptabfrage (oder eine beliebige Abfrage für diese Angelegenheit) ändern müssen, müssen Sie den Filter pre_get_posts verwenden . Dadurch können Sie die Abfrage vor der Ausführung ändern.

Auch wenn Sie Beiträge abfragen, sollten Sie sie immer mit wp_reset_postdata () zurücksetzen. Dadurch wird die globale Variable $post der Hauptabfrageschleife wiederhergestellt, und später treten keine Probleme mehr auf (z. B. ausgeschlossene Kategorien, da Sie diese in Ihrer Sekundärschleife ausgeschlossen haben und vergessen haben, die Abfrage zurückzusetzen).

Examples

WP_Query () Objekt verwenden

Das Erstellen einer separaten Instanz des WP_Query Objekts ist einfach:

$query_args = array( 'post_type' => 'post', 'post_per_page' => 10 ); $my_query = new WP_Query($query_args); if( $my_query->have_posts() ): while( $my_query->have_posts() ): $my_query->the_post(); //My custom query loop endwhile; endif; wp_reset_postdata();

Beachten Sie, dass Sie das Abfrageargument-Array gemäß Ihrer Spezifikation erstellen müssen. Weitere Informationen finden Sie auf der WP_Query-Codex-Seite .

Get_posts () verwenden

get_posts() ist ein Wrapper für eine separate Instanz eines WP_Query Objekts. Der zurückgegebene Wert ist ein Array von Post-Objekten.

global $post; $args = array( 'numberposts' => 5, 'offset'=> 1, 'category' => 1 ); $myposts = get_posts( $args ); foreach( $myposts as $post ) : setup_postdata($post); ?> <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> <?php endforeach;

https://riptutorial.com/de/home 40

Page 59: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

wp_reset_postdata(); ?>

Weitere Informationen finden Sie auf der Codex-Seite "get_posts ()" .

Beiträge abfragen online lesen: https://riptutorial.com/de/wordpress/topic/4002/beitrage-abfragen

https://riptutorial.com/de/home 41

Page 60: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 13: Benutzerdefinierte Auszüge mit excerpt_length und excerpt_more

Examples

Begrenzen Sie die Länge des Auszugs auf 50 Wörter

Fügen Sie den folgenden Code in functions.php ein :

function themify_custom_excerpt_length( $length ) { return 50; } add_filter( 'excerpt_length', 'themify_custom_excerpt_length', 999 );

Verwenden Sie 999 als Priorität, um sicherzustellen, dass die Funktion nach dem Standard-WordPress-Filter ausgeführt wird. Andernfalls würde das, was hier eingestellt ist, überschrieben.

Hinzufügen eines Links "Lesen Sie mehr" am Ende des Auszuges

Fügen Sie dazu den folgenden Code in functions.php ein :

function custom_excerpt_more($more) { return '<a href="'. get_permalink($post->ID) . '">Read More</a>'; } add_filter('excerpt_more', 'custom_excerpt_more');

Die Ergebnisse sollten so aussehen:

https://riptutorial.com/de/home 42

Page 61: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Ein paar Punkte am Ende des Ausschnitts hinzufügen

In unseren Funktionen.php

function new_excerpt_more( $more ) { return '.....'; } add_filter('excerpt_more', 'new_excerpt_more');

Wir sollten das bekommen:

https://riptutorial.com/de/home 43

Page 62: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Benutzerdefinierte Auszüge mit excerpt_length und excerpt_more online lesen: https://riptutorial.com/de/wordpress/topic/6104/benutzerdefinierte-auszuge-mit-excerpt-length-und-excerpt-more

https://riptutorial.com/de/home 44

Page 63: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 14: Benutzerdefinierte Beitragstypen

Syntax

register_post_type ($ post_type, $ args);•

Parameter

Parameter Einzelheiten

$ post_type (string) (Erforderlich)

$ args (Array / Zeichenfolge) (optional)

Examples

Registrieren eines benutzerdefinierten Beitragstyps

Angenommen, Sie haben eine Bibliotheks-Website und möchten einen benutzerdefinierten Beitragstyp namens " Bücher" haben . Es kann als registriert werden

function create_bookposttype() { $args = array( 'public' => true, 'labels' => array( 'name' => __( 'Books' ), 'singular_name' => __( 'Book' ) ), ); register_post_type( 'custompost_books', $args ); } add_action( 'init', 'create_bookposttype' );

So einfach ist das, Sie haben jetzt einen benutzerdefinierten Beitragstyp registriert.

https://riptutorial.com/de/home 45

Page 64: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Dieses Snippet kann in Ihrer Theme- functions.php Datei oder in einer Plugin-Struktur platziert werden.

Hinzufügen von benutzerdefinierten Beitragstypen zur Hauptabfrage

Das Registrieren eines benutzerdefinierten Beitragstyps bedeutet nicht, dass er automatisch zur Hauptabfrage hinzugefügt wird. Sie müssen den Filter pre_get_posts verwenden, um der pre_get_posts benutzerdefinierte pre_get_posts hinzuzufügen.

// Show posts of 'post' and 'book' custom post types on home page add_action( 'pre_get_posts', 'add_my_post_types_to_query' ); function add_my_post_types_to_query( $query ) { if ( is_home() && $query->is_main_query() ) $query->set( 'post_type', array( 'post', 'book' ) );

https://riptutorial.com/de/home 46

Page 65: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

return $query; }

Hinzufügen von benutzerdefinierten Beitragstypen zum Haupt-RSS-Feed

Wenn Sie einen benutzerdefinierten Beitragstyp registrieren, bedeutet dies nicht, dass er automatisch zum Haupt-RSS-Feed hinzugefügt wird. Sie müssen den request , um benutzerdefinierte Beitragstypen zum Haupt-RSS-Feed hinzuzufügen.

// Add 'books' custom post types on main RSS feed function add_book_post_types_to_rss($qv) { if (isset($qv['feed']) && !isset($qv['post_type'])) $qv['post_type'] = array('post', 'books', ); return $qv; } add_filter('request', 'add_book_post_types_to_rss');

Registrieren Sie den benutzerdefinierten Beitragstyp

if ( ! function_exists('products_post_type') ) { function products_post_type() { $labels = array( 'name' => _x( 'Products', 'Post Type General Name', 'text_domain' ), 'singular_name' => _x( 'Product', 'Post Type Singular Name', 'text_domain' ), 'menu_name' => __( 'Products', 'text_domain' ), 'name_admin_bar' => __( 'Product', 'text_domain' ), 'archives' => __( 'Item Archives', 'text_domain' ), 'attributes' => __( 'Item Attributes', 'text_domain' ), 'parent_item_colon' => __( 'Parent Product:', 'text_domain' ), 'all_items' => __( 'All Products', 'text_domain' ), 'add_new_item' => __( 'Add New Product', 'text_domain' ), 'add_new' => __( 'New Product', 'text_domain' ), 'new_item' => __( 'New Item', 'text_domain' ), 'edit_item' => __( 'Edit Product', 'text_domain' ), 'update_item' => __( 'Update Product', 'text_domain' ), 'view_item' => __( 'View Product', 'text_domain' ), 'view_items' => __( 'View Items', 'text_domain' ), 'search_items' => __( 'Search products', 'text_domain' ), 'not_found' => __( 'No products found', 'text_domain' ), 'not_found_in_trash' => __( 'No products found in Trash', 'text_domain' ), 'featured_image' => __( 'Featured Image', 'text_domain' ), 'set_featured_image' => __( 'Set featured image', 'text_domain' ), 'remove_featured_image' => __( 'Remove featured image', 'text_domain' ), 'use_featured_image' => __( 'Use as featured image', 'text_domain' ), 'insert_into_item' => __( 'Insert into item', 'text_domain' ), 'uploaded_to_this_item' => __( 'Uploaded to this item', 'text_domain' ), 'items_list' => __( 'Items list', 'text_domain' ), 'items_list_navigation' => __( 'Items list navigation', 'text_domain' ), 'filter_items_list' => __( 'Filter items list', 'text_domain' ), ); $args = array( 'label' => __( 'Product', 'text_domain' ), 'description' => __( 'Product information pages.', 'text_domain' ), 'labels' => $labels,

https://riptutorial.com/de/home 47

Page 66: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'custom-fields', ), 'taxonomies' => array( 'category', 'post_tag' ), 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 5, 'menu_icon' => 'dashicons-products', 'show_in_admin_bar' => true, 'show_in_nav_menus' => true, 'can_export' => true, 'has_archive' => true, 'exclude_from_search' => false, 'publicly_queryable' => true, 'capability_type' => 'page', 'show_in_rest' => true, ); register_post_type( 'product', $args ); } add_action( 'init', 'products_post_type', 0 ); }

Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design

Sie können einen beliebigen Namen für die Funktion verwenden.

function custom_postype(){ register_post_type('cus_post',array( 'labels'=>array( 'name'=>'khaiyam'// Use any name you want to show in menu for your users ), 'public'=>true,// **Must required 'supports'=>array('title','editor','thumbnail')// Features you want to provide on your posts )); } add_action('after_setup_theme','custom_postytpe');

oder

add_action('init','custom_postytpe');

Sie können alle gewünschten Hooks verwenden, aber sie haben natürlich eine andere Bedeutung und Verwendung.

https://riptutorial.com/de/home 48

Page 67: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Benutzerdefinierter Beitragstyp in der Standardsuche

Sie können in der WordPress-Standardsuche benutzerdefinierte Posttyp-Posts hinzufügen

function my_search_filter($query) { if ( !is_admin() && $query->is_main_query() ) { if ($query->is_search) { $query->set('post_type', array( 'news','post','article' ) ); } } } add_action('pre_get_posts','my_search_filter');

Benutzerdefinierte Beitragstypen online lesen: https://riptutorial.com/de/wordpress/topic/1374/benutzerdefinierte-beitragstypen

https://riptutorial.com/de/home 49

Page 68: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 15: Customizer Hallo Welt

Parameter

Parameter Einzelheiten

mein Thema

Eine eindeutige Kennung für Ihr Thema (oder untergeordnetes Thema). Dies kann dein Thema sein

Examples

Hallo Weltbeispiel

Das grundlegende Konzept des Customizers besteht darin, dass Administratoren Live-Änderungen an ihrer Website in der Vorschau anzeigen und diese dann dauerhaft hinzufügen können.

Folgendes kann kopiert und in die functions.php Datei eines Themas eingefügt werden

Fügen Sie einen Anpassungsabschnitt mit dem Namen " My First Section•Fügen Sie eine Anpassungseinstellung hinzu, die als Hello World Color damit der Administrator eine Farbe auswählen kann

Fügen Sie eine .hello-world Regel für .hello-world , die der ausgewählten Farbe entspricht und standardmäßig #000000 wenn nichts ausgewählt ist. Die Einstellung wird am Ende des <head> in ein <style> -Tag <head> .

function mytheme_customize_register( $wp_customize ) { $wp_customize->add_section( 'my_first_section_id' , array( 'title' => __( 'My First Section', 'mytheme' ), 'priority' => 30, ) ); $wp_customize->add_setting( 'hello_world_color' , array( 'default' => '#000000', 'transport' => 'refresh', ) ); $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'link_color', array( 'label' => __( 'Hello World Color', 'mytheme' ), 'section' => 'my_first_section_id', 'settings' => 'hello_world_color', ) ) ); } add_action( 'customize_register', 'mytheme_customize_register' );

https://riptutorial.com/de/home 50

Page 69: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

function mytheme_customize_css() { ?> <style type="text/css"> .hello-world { color: #<?php echo get_theme_mod('hello_world_color', '000000'); ?>; } </style> <?php } add_action( 'wp_head', 'mytheme_customize_css');

Customizer Hallo Welt online lesen: https://riptutorial.com/de/wordpress/topic/2875/customizer-hallo-welt

https://riptutorial.com/de/home 51

Page 70: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 16: Customizer-Grundlagen (Panel hinzufügen, Abschnitt, Einstellungen, Steuerung)

Examples

Fügen Sie ein Customizer-Panel hinzu

<?php /** * Panel: WPCustomize * * Basic Customizer panel with basic controls. * * @since 1.0.0 * @package WPC */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } // Customize function. if ( ! function_exists( 'wpc_panel_wpcustomize' ) ) { // Customize Register action. add_action( 'customize_register', 'wpc_panel_wpcustomize' ); /** * Customize Panel. * * Adds a Panel, Section with basic controls. * * @param object WP_Customize $wp_customize Instance of the WP_Customize_Manager class. * @since 1.0.0 */ function wpc_panel_wpcustomize( $wp_customize ) { // Panel: Basic. $wp_customize->add_panel( 'wpc_panel_wpcustomize', array( 'priority' => 10, 'title' => __( 'WPCustomize Panel Title', 'WPC' ), 'description' => __( 'Panel Description', 'WPC' ), 'capability' => 'edit_theme_options' ) ); } }

Fügen Sie einen Customizer-Abschnitt mit den Grundeinstellungen und ihren Steuerelementen hinzu

Panels können Abschnitte haben, Abschnitte können Einstellungen haben und Einstellungen können Steuerelemente haben. Einstellungen werden in der Datenbank gespeichert, während die

https://riptutorial.com/de/home 52

Page 71: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Steuerelemente für bestimmte Einstellungen nur dazu verwendet werden, dem Benutzer die entsprechenden Einstellungen anzuzeigen.

Dieser Code erstellt einen grundlegenden section im panel von oben. Im Inneren befinden sich einige grundlegende settings mit controls .

<?php /** * Section: Basic * * Basic Customizer section with basic controls. * * @since 1.0.0 * @package WPC */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } // Customize function. if ( ! function_exists( 'wpc_customize_panel_basic' ) ) { // Customize Register action. add_action( 'customize_register', 'wpc_customize_panel_basic' ); /** * Customize Panel. * * Adds a Panel, Section with basic controls. * * @param object WP_Customize $wp_customize Instance of the WP_Customize_Manager class. * @since 1.0.0 */ function wpc_customize_panel_basic( $wp_customize ) { // Section: Basic. $wp_customize->add_section( 'wpc_section_basic', array( 'priority' => 10, 'panel' => 'wpc_panel_wpcustomize', 'title' => __( 'Basic Section Title', 'WPC' ), 'description' => __( 'Section Description.', 'WPC' ), 'capability' => 'edit_theme_options' ) ); // Setting: Text. $wp_customize->add_setting( 'wpc_text', array( 'type' => 'theme_mod', 'default' => 'Placeholder.', 'transport' => 'refresh', // Options: refresh or postMessage. 'capability' => 'edit_theme_options', 'sanitize_callback' => 'esc_attr' ) ); // Control: Text. $wp_customize->add_control( 'wpc_text', array( 'label' => __( 'Text', 'WPC' ), 'description' => __( 'Description', 'WPC' ), 'section' => 'wpc_section_basic', 'type' => 'text' ) );

https://riptutorial.com/de/home 53

Page 72: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

// Setting: Textarea. $wp_customize->add_setting( 'wpc_textarea', array( 'type' => 'theme_mod', 'default' => 'Placeholder textarea.', 'transport' => 'refresh', // Options: refresh or postMessage. 'capability' => 'edit_theme_options', 'sanitize_callback' => 'exc_textarea' ) ); // Control: Textarea. $wp_customize->add_control( 'wpc_textarea', array( 'label' => __( 'Textarea', 'WPC' ), 'description' => __( 'Description', 'WPC' ), 'section' => 'wpc_section_basic', 'type' => 'textarea' ) ); // Setting: Checkbox. $wp_customize->add_setting( 'wpc_checkbox', array( 'type' => 'theme_mod', 'default' => 'enable', 'transport' => 'refresh', // Options: refresh or postMessage. 'capability' => 'edit_theme_options', 'sanitize_callback' => 'wpc_sanitize_checkbox' // Custom function in customizer-sanitization.php file. ) ); // Control: Checkbox. $wp_customize->add_control( 'wpc_checkbox', array( 'label' => __( 'Checkbox', 'WPC' ), 'description' => __( 'Description', 'WPC' ), 'section' => 'wpc_section_basic', 'type' => 'checkbox' ) ); // Setting: Radio. $wp_customize->add_setting( 'wpc_radio', array( 'type' => 'theme_mod', 'default' => 'on', 'transport' => 'refresh', // Options: refresh or postMessage. 'capability' => 'edit_theme_options', 'sanitize_callback' => 'wpc_sanitize_select', // Custom function in customizer-sanitization.php file. ) ); // Control: Radio. $wp_customize->add_control( 'wpc_radio', array( 'label' => __( 'Radio', 'WPC' ), 'description' => __( 'Description', 'WPC' ), 'section' => 'wpc_section_basic', 'type' => 'radio', 'choices' => array( 'enable' => 'Enable', 'disable' => 'Disable' ) ) ); // Setting: Select. $wp_customize->add_setting( 'wpc_select', array( 'type' => 'theme_mod',

https://riptutorial.com/de/home 54

Page 73: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

'default' => 'enable', 'transport' => 'refresh', // Options: refresh or postMessage. 'capability' => 'edit_theme_options', 'sanitize_callback' => 'wpc_sanitize_select' // Custom function in customizer-sanitization.php file. ) ); // Control: Select. $wp_customize->add_control( 'wpc_select', array( 'label' => __( 'Select', 'WPC' ), 'description' => __( 'Description', 'WPC' ), 'section' => 'wpc_section_basic', 'type' => 'select', 'choices' => array( 'enable' => 'Enable', 'disable' => 'Disable' ) ) ); } }

Customizer-Grundlagen (Panel hinzufügen, Abschnitt, Einstellungen, Steuerung) online lesen: https://riptutorial.com/de/wordpress/topic/2930/customizer-grundlagen--panel-hinzufugen--abschnitt--einstellungen--steuerung-

https://riptutorial.com/de/home 55

Page 74: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 17: Das $ wpdb-Objekt

Bemerkungen

Es gibt zwei Möglichkeiten, auf das Objekt $wpdb . Die erste besteht darin, das PHP-Schlüsselwort global zu verwenden, um auf die globale Instanz des Objekts zu reagieren.

global $wpdb; echo $wpdb->prefix; // Outputs the prefix for the database

Die zweite Möglichkeit, das $wpdb Objekt zu verwenden, besteht darin, die globale $GLOBALS PHP zu $GLOBALS .

echo $GLOBALS['wpdb']->prefix; // This will also output the prefix for the database

Der zweite Weg wird entmutigt, da er möglicherweise nicht als bewährte Methode angesehen wird.

Examples

Variable auswählen

In der einfachsten Form ist es möglich, eine einzelne Variable aus einer Tabelle auszuwählen, indem die Methode get_var des Objekts get_var wird, die in einer SQL-Abfrage übergeben wird.

global $wpdb; $user = $wpdb->get_var( "SELECT ID FROM $wpdb->users WHERE user_email='[email protected]'" );

Es ist sehr wichtig zu beachten, dass nicht vertrauenswürdige Werte, die in Abfragen verwendet werden, zum Schutz vor Angriffen geschützt werden müssen . Dies kann mit der prepare des Objekts erfolgen.

global $wpdb; $email = $_POST['email']; $user = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->users WHERE user_email=%s", $email ) ); if( !is_null( $user ){ echo $user; } else { echo 'User not found'; }

Mehrere Zeilen auswählen

https://riptutorial.com/de/home 56

Page 75: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Sie können get_results verwenden, um mehrere Zeilen aus der Datenbank abzurufen.

global $wpdb; $userTable =$wpdb->prefix."users"; $selectUser = $wpdb->get_results("SELECT * FROM $userTable");

Dadurch wird die Liste aller Benutzer in einem Array angezeigt.

Das $ wpdb-Objekt online lesen: https://riptutorial.com/de/wordpress/topic/2691/das---wpdb-objekt

https://riptutorial.com/de/home 57

Page 76: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 18: Debuggen

Einführung

https://codex.wordpress.org/Debugging_in_WordPress

Das Debuggen von PHP-Code ist Teil eines Projekts. WordPress verfügt jedoch über spezielle Debug-Systeme, die den Prozess vereinfachen sowie den Code für Kern, Plugins und Designs standardisieren.

Bemerkungen

Plugins zum Debuggen in WordPress:

https://wordpress.org/plugins/query-monitor/•https://wordpress.org/plugins/debug-bar/•https://wordpress.org/plugins/debug-bar-console/•https://wordpress.org/plugins/kint-debugger/•https://wordpress.org/plugins/rest-api-console/•

Examples

WP_DEBUG

WP_DEBUG ist eine PHP-Konstante (eine permanente globale Variable), mit der der Debug-Modus in WordPress ausgelöst werden kann. Es wird davon ausgegangen, dass es standardmäßig "false" ist und normalerweise in der Datei " wp-config.php " auf Entwicklungskopien von WordPress auf "true" gesetzt wird.

define( 'WP_DEBUG', true ); define( 'WP_DEBUG', false );

WP_DEBUG_LOG

WP_DEBUG_LOG ist ein Begleiter von WP_DEBUG, der bewirkt, dass alle Fehler auch in einer Protokolldatei debug.log im Verzeichnis / wp-content / gespeichert werden. Dies ist nützlich, wenn Sie alle Notizen später überprüfen möchten oder Notizen anzeigen möchten, die außerhalb des Bildschirms generiert wurden (z. B. während einer AJAX-Anforderung oder eines Wp-Cron-Laufs).

//enable define( 'WP_DEBUG_LOG', true ); //disable define( 'WP_DEBUG_LOG', false );

https://riptutorial.com/de/home 58

Page 77: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

WP_DEBUG_DISPLAY

WP_DEBUG_DISPLAY ist ein weiterer Begleiter von WP_DEBUG, der steuert, ob Debugmeldungen im HTML-Code von Seiten angezeigt werden oder nicht. Der Standardwert ist "true", wodurch Fehler und Warnungen angezeigt werden, während sie generiert werden. Wenn Sie diese Option auf "false" setzen, werden alle Fehler ausgeblendet. Dies sollte in Verbindung mit WP_DEBUG_LOG verwendet werden, damit Fehler später überprüft werden können. Hinweis: Damit WP_DEBUG_DISPLAY irgendetwas tun kann, muss WP_DEBUG aktiviert sein (true).

//enable define( 'WP_DEBUG_DISPLAY', true ); //disable define( 'WP_DEBUG_DISPLAY', false );

SCRIPT_DEBUG

SCRIPT_DEBUG ist eine verwandte Konstante, die WordPress zwingt, die "dev" -Versionen der zentralen CSS- und JavaScript-Dateien zu verwenden, anstatt die minimierten Versionen, die normalerweise geladen werden. Dies ist hilfreich, wenn Sie Änderungen an eingebauten JS- oder CSS-Dateien testen. Standardeinstellung ist "false".

//enable define( 'SCRIPT_DEBUG', true ); //disable define( 'SCRIPT_DEBUG', false );

SAVEQUERIES

Die SAVEQUERIES-Definition speichert die Datenbankabfragen in einem Array. Dieses Array kann angezeigt werden, um diese Abfragen zu analysieren. Die als wahr definierte Konstante bewirkt, dass jede Abfrage gespeichert wird, wie lange diese Abfrage ausgeführt hat und welche Funktion sie aufgerufen hat. ANMERKUNG: Dies hat Auswirkungen auf die Leistung Ihrer Website. Deaktivieren Sie diese Option daher, wenn Sie nicht debuggen.

define( 'SAVEQUERIES', true );

Das Array wird im gespeichert

global $wpdb->queries;

Beispiel wp-config.php und bewährte Methoden zum Debuggen

Mit dem folgenden Code, der in Ihre Datei wp-config.php eingefügt wird, werden alle Fehler, Hinweise und Warnungen in einer Datei namens debug.log im Verzeichnis wp-content protokolliert. Außerdem werden die Fehler ausgeblendet, sodass die Seitengenerierung nicht unterbrochen wird.

https://riptutorial.com/de/home 59

Page 78: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

// Enable WP_DEBUG mode define( 'WP_DEBUG', true ); // Enable Debug logging to the /wp-content/debug.log file define( 'WP_DEBUG_LOG', true ); // Disable display of errors and warnings define( 'WP_DEBUG_DISPLAY', false ); @ini_set( 'display_errors', 0 ); // Use dev versions of core JS and CSS files (only needed if you are modifying these core files) define( 'SCRIPT_DEBUG', true );

Bewährte Methode Wenn Sie benutzerdefinierte Meldungen zum Debug-Protokoll hinzufügen möchten, fügen Sie den folgenden Code in Ihr Plugin oder Design ein.

//Checking is function_exists if ( !function_exists( 'print_to_log' ) ) { //function writes a message to debug.log if debugging is turned on. function print_to_log( $message ) { if ( true === WP_DEBUG ) { if ( is_array( $message ) || is_object( $message ) ) { error_log( print_r( $message, true ) ); } else { error_log( $message ); } } } }

Protokolle in einer separaten Datei anzeigen

Wenn Sie einen Ajax-Anruf haben, ist es äußerst schwierig, ein Protokoll aus der Callback-Funktion heraus zu erhalten. Aber wenn Sie das Debugging aktivieren

define('WP_DEBUG', true);

und dann danach hinzufügen

ini_set('log_errors',TRUE); ini_set('error_reporting', E_ALL); ini_set('error_log', dirname(__FILE__) . '/error_log.txt');

Sie haben eine error.log.txt Datei in Ihrem Stammordner, in der sich alle Ihre Protokolle befinden. Sie können sie sogar mit loggen

error_log( print_r( 'what I want to check goes here', true) );

in Ihrem Code. Dies wird Ihnen das Leben erleichtern.

Debuggen online lesen: https://riptutorial.com/de/wordpress/topic/9170/debuggen

https://riptutorial.com/de/home 60

Page 79: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 19: der Titel()

Einführung

Diese Funktion gibt den Titel des aktuellen Beitrags zurück.

Syntax

the_title ($ before, $ after, $ echo);•

Parameter

Parameter Einzelheiten

$ vorher (Zeichenfolge) (optional) Text, der vor dem Titel platziert werden soll.

$ nach (Zeichenfolge) (optional) Nach dem Titel zu platzierender Text.

$ echo(Boolean) (optional) Zeigt den Titel an oder gibt ihn zur Verwendung in PHP zurück

Bemerkungen

Verwenden Sie für den Parameter $ echo true, um den Titel anzuzeigen, und false, um ihn zur Verwendung in PHP zurückzugeben

Bitte beachten Sie, dass the_title nur in Loops verwendet werden kann. Wenn Sie es außerhalb von Loops verwenden möchten, verwenden Sie get_the_title

Examples

Einfache Verwendung von the_title

Code

the_title( );

Ausgabe

Der Titel des aktuellen Beitrags oder der aktuellen Seite

Den Titel mit Code vor und nach drucken

Code

https://riptutorial.com/de/home 61

Page 80: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

the_title( '<h1>', '</h1>' );

Ausgabe

Der Titel des aktuellen Beitrags oder der aktuellen Seite in h1-Tags

der Titel() online lesen: https://riptutorial.com/de/wordpress/topic/9213/der-titel--

https://riptutorial.com/de/home 62

Page 81: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 20: Die Admin-Leiste (aka "Die Symbolleiste")

Bemerkungen

Die WordPress Admin Toolbar wurde in Version 3.1 hinzugefügt und enthält Links zu allgemeinen administrativen Aufgaben sowie Links zum Benutzerprofil und zu anderen WordPress-Informationen. Viele Websitebesitzer möchten die Symbolleiste jedoch standardmäßig nicht allen angemeldeten Benutzern anzeigen und / oder möchten eigene Optionen hinzufügen.

Examples

Entfernen der Admin-Symbolleiste von allen außer Administratoren

Fügen Sie den folgenden Code zu functions.php , um ihn von allen Benutzern außer der Administratorbenutzerebene zu entfernen:

add_action('after_setup_theme', 'no_admin_bar'); function no_admin_bar() { if (!current_user_can('administrator') && !is_admin()) { show_admin_bar(false); } }

Entfernen der Admin-Symbolleiste mithilfe von Filtern

Eine weitere Möglichkeit, die Admin-Leiste auszublenden, ist das Hinzufügen

if ( !current_user_can( 'manage_options' ) ) { add_filter( 'show_admin_bar', '__return_false' , 1000 ); }

Die Benutzer, die keine Zugriffsrechte für den Zugriff auf die Einstellungsseite haben, können die Admin-Leiste nicht sehen.

So entfernen Sie das WordPress-Logo aus der Admin-Leiste

Entwickler können die Aktion admin_bar_menu verwenden , um Elemente aus der WordPress-Adminleiste oder der Symbolleiste zu entfernen.

add_action('admin_bar_menu', 'remove_wp_logo_from_admin_bar', 999); function remove_wp_logo_from_admin_bar( $wp_admin_bar ) { $wp_admin_bar->remove_node('wp-logo'); }

https://riptutorial.com/de/home 63

Page 82: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Mit dem obigen Code wird das WordPress-Logo aus der Verwaltungsleiste entfernt. Alles, was Sie tun müssen, ist den Code in Ihre functions.php-Datei einzufügen.

Der an die remove_node-Methode übergebene Parameter ist die ID des Knotens, den Sie entfernen möchten. IDs finden Sie im HTML-Quellcode der WordPress-Seite mit einer Symbolleiste. Die ID des li-Elements für das WordPress-Logo auf der linken Seite der Symbolleiste lautet beispielsweise "wp-admin-bar-wp-logo":

<li id="wp-admin-bar-wp-logo" class="menupop"> … </li>

Entfernen Sie "wp-admin-bar-" von der li-ID, um die ID des Knotens zu erhalten. In diesem Beispiel lautet die Knoten-ID "wp-logo".

Sie können die Browser-Inspector-Tools verwenden, um die Knoten-IDs verschiedener Elemente oder Knoten in Ihrer Admin-Leiste herauszufinden.

Fügen Sie auf der Admin-Anmeldeseite Ihr eigenes Logo und Ihren benutzerdefinierten Link hinzu

Sie können unten stehende Haken hinzufügen, um Ihr eigenes Logo und einen Link hinzuzufügen, um das standardmäßige Wordpress-Logo zu ersetzen.

Hinzufügen eines benutzerdefinierten Logos

function custom_login_logo() { echo '<style type="text/css"> h1 a { background-image: url('.get_bloginfo('template_directory').'/images/custom-logo.png) !important; background-size : 100% !important; width: 300px !important; height : 100px !important;} </style>'; } add_action('login_head', 'custom_login_logo');

Hinzufügen eines benutzerdefinierten Logo-Links

add_filter( 'login_headerurl', 'custom_loginlogo_url' ); function custom_loginlogo_url($url) { return home_url(); }

Die Admin-Leiste (aka "Die Symbolleiste") online lesen: https://riptutorial.com/de/wordpress/topic/2932/die-admin-leiste--aka--die-symbolleiste--

https://riptutorial.com/de/home 64

Page 83: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 21: Die Schleife (Haupt-WordPress-Schleife)

Examples

Grundlegende WordPress-Schleifenstruktur

Jedes Mal, wenn WordPress die Seite lädt, wird die Hauptschleife ausgeführt .

Die Schleife ist der Weg, um alle Elemente, die sich auf die aktuelle Seite beziehen, zu durchlaufen.

Die Hauptschleife funktioniert mit einem globalen WP_Query Objekt. Die Abfrage hat eine globalisierte Methode have_posts() , mit der alle Ergebnisse durchlaufen werden können. Schließlich können Sie innerhalb der Schleife die the_post() (auch als globale Funktion) aufrufen, die das globale Post-Objekt auf den aktuellen Post innerhalb der Schleife und die Postdaten auf den aktuellen Post setzt. Dank dessen können Sie Funktionen wie the_title , the_content , the_author ( Template-Tags ) direkt in der Schleife the_author .

Wenn Sie sich beispielsweise in Beitragslisten befinden, enthält die Hauptschleife ein Abfrageobjekt mit allen Beiträgen.

Wenn Sie sich auf einem einzelnen Beitrag (oder einer Seite) befinden, enthält dieser eine Abfrage mit einem einzelnen Beitrag (Seite), an dem Sie sich gerade befinden.

if ( have_posts() ) : while ( have_posts() ) : the_post(); var_dump( $post ); endwhile; endif;

Alternative Schleifensyntax

Sie können Schleife auch mit geschweiften Klammern wie folgt verwenden:

if ( have_posts() ) { while ( have_posts() ) { the_post(); var_dump( $post ); } }

Behandelt keine Elemente in der Schleife

https://riptutorial.com/de/home 65

Page 84: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Wenn Sie mit einem solchen Szenario umgehen möchten, fügen Sie einfach eine if/else Anweisung hinzu.

if ( have_posts() ) : while ( have_posts() ) : the_post(); var_dump( $post ); endwhile; else : __('This Query does not have any results'); endif;

Die Schleife (Haupt-WordPress-Schleife) online lesen: https://riptutorial.com/de/wordpress/topic/1803/die-schleife--haupt-wordpress-schleife-

https://riptutorial.com/de/home 66

Page 85: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 22: drin

Syntax

add_action ('init', aufrufbare $ -Funktion)1.

Bemerkungen

init ist ein Action-Hook, der ausgelöst wird, nachdem WordPress das Laden beendet hat, aber bevor HTTP-Header gesendet werden.

Examples

$ _POST-Anforderungsdaten werden verarbeitet

add_action ('init', 'process_post_data');

function process_post_data() { if( isset( $_POST ) ) { // process $_POST data here } }

$ _GET-Anforderungsdaten werden verarbeitet

add_action('init', 'process_get_data'); function process_get_data() { if( isset( $_GET ) ) { // process $_GET data here } }

Registrieren eines benutzerdefinierten Beitragstyps

add_action( 'init', function() { register_post_type( 'event', array( 'public' => true, 'label' => 'Events' ); ); });

Registriert einen neuen benutzerdefinierten Beitragstyp mit einem Label Events und einem Slug- event

drin online lesen: https://riptutorial.com/de/wordpress/topic/6375/drin

https://riptutorial.com/de/home 67

Page 86: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 23: Einreihen von Skripten

Syntax

wp_enqueue_script ($ handle, $ src, $ deps, $ ver, $ in_footer)•

Parameter

Parameter Einzelheiten

$ handle (string) (Erforderlich) Name des Skripts. Sollte einzigartig sein.

$ src(Zeichenfolge) (Optional) Vollständige URL des Skripts oder Pfad des Skripts relativ zum WordPress-Stammverzeichnis. Standardwert: false

$ deps(array) (Optional) Ein Array von registrierten Skripten behandelt dieses Skript. Standardwert: array ()

$ ver

(string | bool | null) (Optional) String, der die Versionsnummer des Skripts angibt, falls vorhanden, die der URL als Abfragezeichenfolge für Cache-Busting-Zwecke hinzugefügt wird. Wenn Version auf "False" gesetzt ist, wird automatisch eine Versionsnummer hinzugefügt, die der aktuell installierten WordPress-Version entspricht. Bei Einstellung auf null wird keine Version hinzugefügt. Standardwert: false

$ in_footer(bool) (Optional) Gibt an, ob das Skript vor </body> anstelle von <head> eingereiht werden soll. Standardwert: false

Examples

Einreihen von Skripten in functions.php

Wenn Sie das Script custom.js hinzufügen custom.js , das sich im Ordner js/ Ihres js/ , müssen Sie es in die Warteschlange setzen. In functions.php hinzufügen

<?php add_action( 'after_setup_theme', 'yourtheme_theme_setup' ); if ( ! function_exists( 'yourtheme_theme_setup' ) ) { function yourtheme_theme_setup() { add_action( 'wp_enqueue_scripts', 'yourtheme_scripts' ); add_action( 'admin_enqueue_scripts', 'yourtheme_admin_scripts' ); } }

https://riptutorial.com/de/home 68

Page 87: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

if ( ! function_exists( 'yourtheme_scripts' ) ) { function yourtheme_scripts() { wp_enqueue_script( 'yourtheme_custom', get_template_directory_uri().'/js/custom.js', array( 'jquery' ), '1.0.0', true ); } } if ( ! function_exists( 'yourtheme_admin_scripts' ) ) { function yourtheme_admin_scripts() { wp_enqueue_script( 'yourtheme_custom', get_template_directory_uri().'/js/custom.js', array( 'jquery-ui-autocomplete', 'jquery' ), '1.0.0', true ); } }

Enqueue-Skripts nur für IE

add_action( 'wp_enqueue_scripts', 'enqueue_my_styles_and_scripts' ); /** * Enqueue scripts (or styles) conditionally. * * Load scripts (or stylesheets) specifically for IE. IE10 and above does * not support conditional comments in standards mode. * * @link https://gist.github.com/wpscholar/4947518 * @link https://msdn.microsoft.com/en-us/library/ms537512(v=vs.85).aspx */ function enqueue_my_styles_and_scripts() { // Internet Explorer HTML5 support wp_enqueue_script( 'html5shiv',get_template_directory_uri().'/js/html5shiv.js', array(), '3.7.3', false); wp_script_add_data( 'html5shiv', 'conditional', 'lt IE 9' ); // Internet Explorer 8 media query support wp_enqueue_script( 'respond', get_template_directory_uri().'/js/respond.js', array(), '1.4.2', false); wp_script_add_data( 'respond', 'conditional', 'lt IE 9' ); }

Skripte für bestimmte Seiten bedingt einreihen

Sie können bedingte Operatoren in WordPress verwenden, um Skripts auf bestimmten Seiten Ihrer Website einzufangen.

function load_script_for_single_post(){ if(is_single()){ wp_enqueue_script( 'some', get_template_directory_uri().'/js/some.js', array('jquery),

https://riptutorial.com/de/home 69

Page 88: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

'1.0.0', false ); } } add_action('wp_enqueue_scripts','load_script_for_single_post');

Wenn im obigen Beispiel die aktuelle Webseite ein einzelner Beitrag ist, wird das Skript in die Warteschlange gestellt. Andernfalls wird die Funktion wp_enqueue_script nicht ausgeführt.

Einreihen von Skripten online lesen: https://riptutorial.com/de/wordpress/topic/1103/einreihen-von-skripten

https://riptutorial.com/de/home 70

Page 89: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 24: Einreihen von Styles

Syntax

wp_enqueue_style ($ handle, $ src, $ Abhängigkeit, $ version, $ media);1.

Parameter

Parameter Einzelheiten

$handle (String) (Erforderlich) Eindeutiger Name für das Stylesheet.

$src(String) (Optional) URL des Stylesheets, das im src-Attribut des Link- Tags verwendet wird.

$deps (String) (Optional) Ein Array von Stylesheets behandelt dieses Stylesheet.

$ver (String) (Optional) String, der die Stylesheet-Version des Stylesheets angibt.

$media(String) (Optional) Das Medium, für das dieses Stylesheet erstellt wird. zB "Alle", "Drucken", "Bildschirm" usw

Examples

Einschließlich der internen CSS-Datei mit einer anderen CSS-Datei als Abhängigkeit

function themeSlug_enqueue_scripts() { wp_enqueue_style( 'themeSlug-reset', get_template_directory_uri() .'/css/reset.css', '1.0.0' ); wp_enqueue_style( 'themeSlug-style', get_template_directory_uri() .'/style.css', 'themeSlug-reset', '1.0.0'); } add_action('wp_enqueue_scripts', 'themeSlug_enqueue_scripts');

Einschließlich der internen CSS-Datei

In diesem Fall befindet sich style.css im Stammverzeichnis des style.css

function themeSlug_enqueue_scripts() { wp_enqueue_style( 'themeSlug-style', get_template_directory_uri() .'/style.css', '1.0.0'); } add_action('wp_enqueue_scripts', 'themeSlug_enqueue_scripts');

Einschließlich externer CSS-Datei

https://riptutorial.com/de/home 71

Page 90: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

In diesem Beispiel möchten wir die Schriftart-Symbol-Schriftart einschließen

function themeSlug_enqueue_scripts() { wp_enqueue_style( 'font-awesome', '//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.css'); } add_action('wp_enqueue_scripts', 'themeSlug_enqueue_scripts');

Enqueue Stylesheets nur für IE

add_action( 'wp_enqueue_scripts', 'enqueue_my_styles_and_scripts' ); /** * Enqueue styles (or scripts) conditionally. * * Load stylesheets (or scripts) specifically for IE. IE10 and above does * not support conditional comments in standards mode. * * @link https://gist.github.com/wpscholar/4947518 * @link https://msdn.microsoft.com/en-us/library/ms537512(v=vs.85).aspx */ function enqueue_my_styles_and_scripts() { // Internet Explorer specific stylesheet. wp_enqueue_style( 'themename-ie', get_stylesheet_directory_uri() . '/css/ie.css', array( 'twentyfifteen-style' ), '20141010' ); wp_style_add_data( 'themename-ie', 'conditional', 'lte IE 9' ); // Internet Explorer 7 specific stylesheet. wp_enqueue_style( 'themename-ie7', get_stylesheet_directory_uri() . '/css/ie7.css', array( 'twentyfifteen-style' ), '20141010' ); wp_style_add_data( 'themename-ie7', 'conditional', 'lt IE 8' ); }

Einschließlich der internen CSS-Datei für Ihre Plugin-Klasse

class My_Plugin() { function __construct() { add_action( 'wp_enqueue_scripts', array( $this, 'init_fe_assets' ) ); } public function init_fe_assests() { wp_enqueue_style( 'my-plugin', plugin_dir_url( __FILE__ ) . 'assets/css/frontend/plugin.css', array(), '0.0.1', true ); } } new My_Plugin();

Alternative Stylesheets hinzufügen

<?php wp_enqueue_style('theme-five', get_template_directory_uri() .

https://riptutorial.com/de/home 72

Page 91: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

'/path/to/additional/css'); wp_style_add_data('theme-five', 'alt', true); wp_style_add_data('theme-five', 'title', __('theme-five.css', 'your-theme-name')); ?>

wp_style_add_data

Einreihen von Styles online lesen: https://riptutorial.com/de/wordpress/topic/1247/einreihen-von-styles

https://riptutorial.com/de/home 73

Page 92: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 25: Entfernen Sie automatische Zeilenumbrüche aus Inhalt und Auszug

Einführung

Für Websites, die im Editor oder in Ausschnitten auf HTML-Code angewiesen sind und die Sie selbst codieren möchten, können die automatischen Zeilenumbrüche einen Ärger verursachen. Sie können sie deaktivieren, indem Sie diese Filter entfernen.

Bemerkungen

Diese müssen direkt in einer Include-Datei ausgeführt werden. Unabhängig davon, ob es sich in functions.php oder in einer anderen Include-Datei befindet, kann diese nicht in einen Hook eingeschlossen werden. Sie arbeiten nicht mit init oder anderen, die ich bisher gefunden habe.

Sie können auch direkt in eine Vorlage wie page.php eingefügt werden, um sie nur für diese Vorlage auszuführen.

HINWEIS: ENTHALTEN SIE DIESES NICHT IN EINEM VERTEILTEN THEMA ODER PLUGIN (es sei denn, es ist standardmäßig deaktiviert, z. B. wenn die Include-Datei nicht eingeschlossen ist, sofern der Benutzer dies nicht angibt).

Dies ist eine schlechte Praxis, um sie in eine Site einzubinden, die Sie nicht kontrollieren können, da dies die Ausgabe von anderen Themes oder Plugins beeinträchtigen kann und wird.

Examples

Entfernen Sie die Filter

// Remove the auto-paragraph and auto-line-break from the content remove_filter( 'the_content', 'wpautop' ); // Remove the auto-paragraph and auto-line-break from the excerpt remove_filter( 'the_excerpt', 'wpautop' );

Funktion zum Entfernen der Filter

/** * Remove the automatic line breaks from content and excerpts. * * @since 1.0.0 */ function remove_content_auto_line_breaks() { // Remove the auto-paragraph and auto-line-break from the content remove_filter( 'the_content', 'wpautop' );

https://riptutorial.com/de/home 74

Page 93: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

// Remove the auto-paragraph and auto-line-break from the excerpt remove_filter( 'the_excerpt', 'wpautop' ); } // Execute the function remove_content_auto_line_breaks();

Entfernen Sie automatische Zeilenumbrüche aus Inhalt und Auszug online lesen: https://riptutorial.com/de/wordpress/topic/9614/entfernen-sie-automatische-zeilenumbruche-aus-inhalt-und-auszug

https://riptutorial.com/de/home 75

Page 94: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 26: Erstellen einer benutzerdefinierten Vorlage

Examples

Erstellen einer einfachen leeren Vorlage

Um eine benutzerdefinierte Vorlage zu erstellen, müssen Sie zunächst eine php-Datei in einem Designverzeichnis erstellen. Sie können es fast beliebig benennen. Für dieses Beispiel erstellen wir example.php

Eine einzige Sache, die wir in unserer example.php definieren müssen, um von WordPress als Vorlage erkannt zu werden, ist der Name der Vorlage. Wir kaufen das, indem wir einen speziellen Kommentar an die Spitze einer Datei setzen, wie folgt:

<?php /* Template Name: Example */ ?>

Und jetzt, wenn unsere Vorlage in der Dropdown- Liste der Vorlagen im Feld Seitenattribute angezeigt werden soll

https://riptutorial.com/de/home 76

Page 95: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Einschließlich Kopf- und Fußzeile in unserer Vorlage

Lassen Sie uns unsere Vorlage von oben erweitern und Inhalte aus header.php und footer.php einschließen

Einschließlich Kopfzeile:

Wir werden den Header direkt nach dem Kommentar zum Vorlagennamen einfügen

Dafür gibt es zwei gängige Möglichkeiten. Beide sind richtig und funktionieren gleich, es geht nur um Ihren Stil und wie der Code aussieht

Erster Weg:

<?php /* Template Name: Example */ get_header(); ?>

https://riptutorial.com/de/home 77

Page 96: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Zweiter Weg:

<?php /* Template Name: Example */ ?> <?php get_header(); ?>

Fußzeile inklusive:

Das Einfügen von Fußzeilen funktioniert auf dieselbe Weise, es gibt nur eine Sache, die wir beachten müssen, und zwar, dass wir Fußzeile einschließen, nachdem wir die Kopfzeile eingefügt haben. Die endgültige Vorlage sollte also ungefähr so aussehen.

<?php /* Template Name: Example */ get_header(); ?> <?php get_footer(); ?>

Benutzerdefinierte Vorlage mit Inhalt

Wir werden unsere Vorlage weiter ausbauen und den Titel der Seite sowie einen Inhalt hinzufügen

<?php /* Template Name: Example */ get_header(); the_title(); the_content(); get_footer();

Und wenn Sie möchten, können Sie sie mit solchen HTML-Elementen umschließen

<?php /* Template Name: Example */ get_header(); echo '<h1>' . the_title() . '</h1>'; echo '<section> . 'the_content() . '</section>'; get_footer();

Oder wenn Sie es vorziehen, wie normale HTML-Dateien zu arbeiten, ohne Echo zu verwenden

https://riptutorial.com/de/home 78

Page 97: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

<?php /* Template Name: Example */ get_header(); ?> <h1><?php the_title(); ?></h1> <section><?php the_content(); ?></section> <?php get_footer(); ?>

Erstellen einer benutzerdefinierten Vorlage online lesen: https://riptutorial.com/de/wordpress/topic/2791/erstellen-einer-benutzerdefinierten-vorlage

https://riptutorial.com/de/home 79

Page 98: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 27: Erstellen Sie einen Beitrag programmgesteuert

Syntax

wp_insert_post (array $ args, bool $ wp_error);•

Parameter

Parameter Beschreibung

$ args (Array erforderlich) Ein Key Value Array der folgenden Elemente.

$ wp_error (optional Boolean) Geben Sie im Fehlerfall einen WP_Error zurück.

Bemerkungen

Argumente

Die nächste Tabelle zeigt eine Liste von Elementen, die Sie innerhalb des ersten Parameters (Array) verwenden können.

Parameter Beschreibung

ICH WÜRDE(Int) Die Post-ID. Bei einem anderen Wert als 0 wird der Beitrag mit dieser ID aktualisiert. Standardeinstellung 0.

post_author(Int) Die ID des Benutzers, der den Beitrag hinzugefügt hat. Standard ist die aktuelle Benutzer-ID.

nach Datum(String) Das Datum des Beitrags. Standard ist die aktuelle Uhrzeit.

post_date_gmt(String) Das Datum des Beitrags in der GMT-Zeitzone. Der Standardwert ist $ post_date.

post_content (Gemischt) Der Post-Inhalt. Standardwert leer

post_content_filtered (String) Der gefilterte Beitragsinhalt. Standardwert leer

post_title (String) Der Beitragstitel. Standardwert leer

https://riptutorial.com/de/home 80

Page 99: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Parameter Beschreibung

post_category (Array) Array von Post-Kategorie-Werten.

post_excerpt (String) Der Postauszug. Standardwert leer

Poststatus (String) Der Post-Status. Standardentwurf

Post-Typ (String) Der Beitragstyp. Standardbeitrag

comment_status(String) Gibt an, ob der Beitrag Kommentare akzeptieren kann. Akzeptiert offen oder geschlossen. Default ist der Wert der Option default_comment_status.

ping_status(String) Gibt an, ob der Beitrag Pings annehmen kann. Akzeptiert offen oder geschlossen. Default ist der Wert der Option default_ping_status.

post_password(String) Das Passwort für den Zugriff auf den Beitrag. Standardwert leer

Anschriftname(String) Der Postname oder Slug. Der Standardwert ist der bereinigte Beitragstitel, wenn Sie einen neuen Beitrag erstellen.

to_ping(String) Leerzeichen oder Wagenrücklauf-Liste der zu pingenden URLs. Standardwert leer

pinged(String) Durch Leerzeichen oder Wagenrücklauf getrennte Liste von URLs, die gepingt wurden. Standardwert leer

post_modified(String) Das Datum, an dem der Beitrag zuletzt geändert wurde. Standard ist die aktuelle Uhrzeit.

post_modified_gmt(String) Das Datum, an dem der Beitrag zuletzt in der GMT-Zeitzone geändert wurde. Standard ist die aktuelle Uhrzeit.

post_parent(Int) Legen Sie dies für den Post fest, zu dem es gehört, falls vorhanden. Standardeinstellung 0.

menu_order(Int) Die Reihenfolge, in der der Beitrag angezeigt werden soll. Standardeinstellung 0.

post_mime_type (String) Der Mime-Typ des Beitrags. Standardwert leer

guid(String) Globale eindeutige ID zum Verweisen auf den Beitrag. Standardwert leer

https://riptutorial.com/de/home 81

Page 100: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Parameter Beschreibung

tax_input(Array) Array von Taxonomie-Begriffen, die anhand ihres Taxonomienamens eingegeben werden. Standardwert leer

meta_input(Array) Array von Post-Meta-Werten, die nach ihrem Post-Meta-Schlüssel eingegeben werden. Standardwert leer

Vermeiden Sie doppelte Beiträge

Wenn Sie diese Funktion ausführen, erhalten Sie wahrscheinlich einen doppelten Beitrag, zumindest ist mir das passiert. (Sie können es in den Post WordPress-Bereich einchecken)

Ich habe eine Lösung gefunden :

if( !get_page_by_title( $title, 'OBJECT', 'post' ) ){ $my_post = array('post_title' => $title, 'post_content' => 'Content', 'tags_input' => $tags, 'post_category' => array(2), 'post_status' => 'publish' ); $result = wp_insert_post( $my_post ); }

Erläuterung

Bevor Sie einen neuen Beitrag speichern, überprüfen Sie, ob der neue Beitrag bereits vorhanden ist, indem Sie den Beitragstitel als Parameter verwenden. Wenn kein Beitragstitel vorhanden ist, können Sie Ihren neuen Beitrag speichern.

Überprüfen Sie die Dokumentation von get_page_by_title hier .

Examples

Einführung

Manchmal haben wir einen anderen Editor anstelle von TinyMCE (Wordpress Default Editor). Das passiert, wenn wir ein eigenes Theme, Plugin oder etwas bestimmtes erstellen. und wir müssen eine Art Post schreiben und bearbeiten und in unserer WP-Datenbank speichern.

Wenn Sie sich in dieser Situation befinden, können Sie eine Wordpress-Funktion mit dem Namen:

wp_insert_post( array $args, bool $wp_error );

Erstellen Sie einen Basisbeitrag

https://riptutorial.com/de/home 82

Page 101: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

$basic_post_args = array( 'post_title' => 'My Basic Post', 'post_content' => 'This is a basic content', 'post_status' => 'publish', 'post_author' => 1, 'post_category' => array(8, 59) ); wp_insert_post( $basic_post_args );

Erstellen Sie eine Basisseite

$basic_page_args = array( 'post_title' => 'My Basic Page', 'post_content' => 'This is a basic content', 'post_type' => 'page', 'post_status' => 'publish', 'post_author' => 1 ); wp_insert_post( $basic_page_args );

Erstellen Sie einen Beitrag programmgesteuert online lesen: https://riptutorial.com/de/wordpress/topic/5860/erstellen-sie-einen-beitrag-programmgesteuert

https://riptutorial.com/de/home 83

Page 102: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 28: Erstellung des WordPress-Plugins

Einführung

WordPress-Plugins sollten sich auf die Serverlogik und / oder die Verwaltung Ihrer Website-Anwendung konzentrieren. Gute Plugins sind wie gute Apps, sie machen eine Sache wirklich gut. Sie dienen dazu, Teile des CMS modular zu erweitern und zu automatisieren, da Sie diese aktivieren und deaktivieren können. Gute Plugins verwenden WordPress-Kernaktionen, Filter und vorhandene Javascript- und CSS-Frameworks.

Examples

Minimale Einrichtung eines Plugin-Ordners und von Dateien

Der erste Schritt beim Erstellen eines Plugins ist das Erstellen des Ordners und der Datei, aus dem das Plugin geladen wird.

Plugins befinden sich in /wp-content/plugins/ .

Der WordPress-Standard besteht darin, einen Ordner und einen Dateinamen zu erstellen, die sich wie folgt spiegeln:

/wp-content/plugins/myplugin/ /wp-content/plugins/myplugin/myplugin.php

Nachdem Sie Ihre Plugin-Datei erstellt haben, müssen Sie Ihr Plugin mit einem Plugin Header starten. Auf diese Weise kann WordPress Ihre Plugin-Datei scannen und die Metadaten zum Plugin speichern. Außerdem können Benutzer dies verwenden und bestimmen, ob das Plugin aktiv oder inaktiv sein soll. Kopieren Sie diese Vorlage oben in Ihre von Ihnen erstellte Haupt-Plugin-Datei und ändern Sie sie nach Bedarf:

<?php /** * Plugin Name: PLUGIN-NAME * Plugin URI: HTTP-LINK-TO-WEBSITE-PLUGIN-PAGE-OR-REPO * Description: BREIF DESCRIPTION - KEEP IT SHORT * Author: WORDPRESS-DOT-ORG-USERNAME * Version: 0.0.1 * Author URI: HTTP-LINK-TO-MAINTAINER * License: GNU General Public License v2 or later * License URI: http://www.gnu.org/licenses/gpl-2.0.html * Text Domain: short_prefix */ // Begin custom PHP WordPress plugin work

Beachten Sie, dass WordPress-Plugins normalerweise als GPL lizenziert werden sollten. Die Lizenzierung sollte jedoch nicht als Teil dieses Themas diskutiert werden.

https://riptutorial.com/de/home 84

Page 103: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Zu diesem Zeitpunkt sollten Sie Ihr neues Plugin bereits im WordPress-Admin-Bereich sehen können. In einem Standard-Setup würden Sie diesen Bereich unter /wp-admin/plugins.php . Aktivieren Sie Ihr Plugin, und Sie können mit den nächsten Schritten zum Erstellen Ihres Plugins fortfahren!

Um unser Beispiel für etwas Durchführbares zu beenden, können Sie nun Folgendes am Ende Ihrer Plugin-Datei hinzufügen:

die('My custom plugin is loaded : '. __FILE__);

Wenn Sie Ihre Site nach dieser Änderung aktualisieren, sollten alle Seiten diesen Text drucken. Machen Sie dies niemals in Produktions- (Live-) Sites und denken Sie immer daran, dies wieder herauszunehmen, bevor Sie fortfahren.

Erstellung des WordPress-Plugins online lesen: https://riptutorial.com/de/wordpress/topic/9420/erstellung-des-wordpress-plugins

https://riptutorial.com/de/home 85

Page 104: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 29: Führen Sie WordPress local mit XAMPP aus

Einführung

Mit XAMPP können Sie einen Webserver auf Ihrem lokalen PC installieren. Es verfügt über einen Apache-Webserver, die Datenbank MariaDB (MySQL) und arbeitet mit Perl und PHP. Nach der Installation können Sie beispielsweise Content-Management-Systeme wie WordPress auf Ihrem lokalen PC ausführen und debuggen. Sie können es mit Windows, Linux, Mac OS X und Solaris verwenden.

Examples

1. Installieren von XAMPP

Laden Sie das Installationsprogramm für die aktuelle Version von XAMPP herunter1. Gehen Sie den Installationsassistenten durch und ändern Sie nichts, wenn Sie sich nicht sicher sind, was Sie ändern.

2.

Nach der Installation sehen Sie die XAMPP-Systemsteuerung. Klicken Sie einfach auf die Start-Schaltfläche von Apache und MySQL, um beide mit der grundlegenden Konfiguration auszuführen.

3.

Wenn Ihr Computer mit einem lokalen Netzwerk verbunden ist und Sie auch von anderen Computern auf den Webserver zugreifen möchten, stellen Sie sicher, dass Ihre Firewall dies zulässt.

4.

2. Richten Sie nach der Installation von XAMPP eine Datenbank ein

Um WordPress auf Ihrem Computer auszuführen, müssen Sie zuerst eine Datenbank konfigurieren. Stellen Sie sicher, dass Apache und MySQL ausgeführt werden (siehe XAMPP installieren, Schritt 3).

Starten Sie einen Webbrowser Ihrer Wahl und geben Sie "localhost" in die Adresse ein.1. Wählen Sie Ihre bevorzugte Sprache und wählen Sie in der Kategorie "Tools" -> phpMyAdmin .2. Wählen Sie die Registerkarte Databases .3. Geben Sie unter "Create database" den Namen Ihrer Datenbank ein (diesen Namen benötigen Sie später), und wählen utf8_general_ci in der Dropdown-Liste "Collation" die Option utf8_general_ci aus.

4.

Klicken Sie links auf Ihre erstellte Datenbank und wählen Sie die Registerkarte Users .5. Fügen Sie einen neuen Benutzer hinzu, indem Sie auf Add user hinzufügen klicken.6. Geben Sie Ihren Benutzernamen ein, wählen Sie " local in der Dropdown-Liste "Host" (wenn Sie von anderen Computern im Netzwerk auf die Datenbank zugreifen möchten, wählen Sie " Any host ) und geben Sie Ihr Kennwort ein (dies wird später auch benötigt).

7.

Prüfen Sie, ob unter "Datenbank für Benutzer" Grant all privileges on wildcard name sind.8.

https://riptutorial.com/de/home 86

Page 105: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Drücken Sie Go .9.

3. Installieren von WordPress nach dem Einrichten der Datenbank

Nachdem Sie XAMPP installiert und die MySQL-Datenbank eingerichtet haben, können Sie WordPress installieren.

Laden Sie die neueste Version von WordPress herunter .1. Entpacken Sie die Datei und fügen Sie den Ordner in das Stammverzeichnis Ihres Webservers ein (wenn Sie den vorgeschlagenen Pfad während des Setups von XAMPP verwendet haben, ist dies "c: \ xampp \ htdocs").

2.

Alle Dateien, die doppelt vorhanden sind, können ersetzt werden.3. Geben Sie in das Adressfeld Ihres Webbrowsers "localhost / wordpress / wp-admin / install.php" ein.

4.

Nachdem Sie Ihre Sprache ausgewählt haben, klicken Sie auf Continue und dann Let's go .5. Ersetzen Sie alle Standardtextfelder durch Ihre gewählte Konfiguration (siehe " Einrichten einer Datenbank "). Ändern Sie "Database Host" und "Table Prefix" nicht, es sei denn, Sie möchten Ihre lokale WordPress-Installation online migrieren. Bedenken Sie dann, dass Sicherheit wichtig ist. Weitere Informationen finden Sie unter Präfix festlegen in Neue WordPress-Installation .

6.

Submit und dann auf Run the install .7. Nun müssen Sie den Namen Ihrer Site, einen Benutzernamen, ein Passwort und eine gültige E-Mail-Adresse eingeben.

8.

Klicken Install WordPress , um das Setup abzuschließen und sich bei Ihrer neuen lokalen WordPress-Site anzumelden.

9.

Führen Sie WordPress local mit XAMPP aus online lesen: https://riptutorial.com/de/wordpress/topic/9551/fuhren-sie-wordpress-local-mit-xampp-aus

https://riptutorial.com/de/home 87

Page 106: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 30: Funktion: add_action ()

Syntax

add_action ($ tag, $ function_to_add)•add_action ($ tag, $ function_to_add, $ priority)•add_action ($ tag, $ function_to_add, $ Priorität, $ akzeptierte_args)•

Parameter

Parameter Einzelheiten

$ tag(Zeichenfolge) (Erforderlich) Der Name der Aktion, an die $function_to_add angehängt ist

$ function_to_add

( aufrufbar ) (Erforderlich) Die Funktion, die aufgerufen werden soll, wenn die durch $tag angegebene Aktion ausgeführt wird

$ Priorität

(int) (Optional) Standardwert: 10 Wird verwendet, um die Reihenfolge anzugeben, in der die einer bestimmten Aktion zugeordneten Funktionen ausgeführt werden. Niedrigere Zahlen entsprechen der früheren Ausführung, und Funktionen mit derselben Priorität werden in der Reihenfolge ausgeführt, in der sie der Aktion hinzugefügt wurden.

$ Accepted_args

(int) (Optional) Standardwert: 1 Die Anzahl der Argumente, die die Funktion akzeptiert.

Bemerkungen

Die add_action() Funktion erstellt einen Aktions Hook, eine PHP - Funktion mit einer bestimmten Aktion „Tag“ oder den Namen zuordnet. Wenn die Aktion durch einen Aufruf von do_action() (oder do_action_ref_array() ) mit einem bestimmten Tag "ausgelöst" wird, werden alle Funktionen ausgeführt, die mit diesem Tag do_action_ref_array() .

In den meisten Fällen sollte diese Funktion in der functions.php Datei eines Themas oder einer Plugin-Datei verwendet werden - oder in einer anderen Quelldatei, die von einer der beiden geladen wird.

Diese Funktion ist Teil der Plugin-API

Examples

Grundlegender Aktionshaken

https://riptutorial.com/de/home 88

Page 107: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Die einfachste Anwendung von add_action() ist das Hinzufügen von benutzerdefiniertem Code, der an einer bestimmten Stelle im Quellcode einer WordPress-Installation ausgeführt werden soll. Entweder mithilfe von Aktionen, die vom Core of WordPress bereitgestellt werden, oder durch Code von Drittanbietern (z. B. Plugins und) erstellten themen.

Um dem Abschnitt <head></head> der Site Inhalt hinzuzufügen - sagen Sie ein Meta-Element add <link> , um anzugeben, wo die Copyright-Informationen für die Site zu finden sind - add_action() kann zum Anhängen einer Funktion zum Drucken verwendet werden das entsprechende Markup für die 'wp_head' Aktion (die "auslöst", wenn WordPress den <head> -Abschnitt erstellt):

function add_copyright_meta_link() { echo( '<link rel="copyright" href="' . get_home_url() . '/copyright">' ); } add_action( 'wp_head', 'add_copyright_meta_link' );

Aktion Hook-Priorität

Es kann eine beliebige Anzahl von Funktionen mit einer bestimmten Aktion verknüpft werden. In einigen Fällen ist es wichtig, dass eine Hook-Funktion vor oder nach anderen ausgeführt wird. Hier kommt der dritte Parameter von add_action() , $priority zum Tragen.

Wenn das Argument $priority wird, wird die Funktion mit der Standardpriorität 10 angehängt. Wenn die Aktion "ausgelöst" wird, werden die "eingehängten" Funktionen aufgerufen, beginnend mit den mit der niedrigsten $priority hinzugefügten Funktionen und zu den Funktionen mit der höchsten $priority . Alle Hook-Funktionen mit derselben Priorität werden in der Reihenfolge aufgerufen, in der sie hinzugefügt wurden (der Reihenfolge, in der ihre jeweiligen add_action() Aufrufe ausgeführt wurden).

Angenommen, ein Plug-In eines Drittanbieters verwendet eine Funktion, die mit der Aktion 'template_redirect' verknüpft ist, um Besucher von der Seite mit dem daily-deal an einen Partner-Link für eine externe E-Commerce-Site weiterzuleiten. Sie möchten jedoch die Weiterleitung nur für angemeldete Benutzer auftreten. Sie müssten Ihren eigenen 'template_redirect' -Hook verwenden, um abgemeldete Besucher an die Anmeldeseite zu senden. Nachdem Sie festgestellt haben, dass das $piority eines $piority seine Funktion mit der voreingestellten $piority von 10 , können Sie Ihre Funktion mit der Priorität 9 $piority , um sicherzustellen, dass Ihre angemeldete Prüfung zuerst erfolgt:

function redirect_deal_visitors_to_login() { if( is_page( 'daily-deal' ) && !user_is_logged_in() ) { wp_redirect( wp_login_url() ); exit(); } } add_action( 'template_redirect', 'redirect_deal_visitors_to_login', 9 );

Klassen- und Objektmethoden mit Aktionen verknüpfen

https://riptutorial.com/de/home 89

Page 108: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

PHP-Klassen sind ein leistungsfähiges Werkzeug zur Verbesserung der Code-Organisation und zur Minimierung von Namenskollisionen. Irgendwann stellt sich unweigerlich die Frage, wie man einen Action-Hook für eine Klassenmethode erstellt.

Das Argument $function_to_add wird häufig als Zeichenfolge angezeigt, die den Namen der Funktion enthält. Der Datentyp des Arguments ist jedoch tatsächlich " aufrufbar ", was für unsere Zwecke als "Referenz auf eine Funktion oder Methode" zusammengefasst werden kann.

Es gibt eine Reihe von aufrufbaren Formaten, mit denen Methoden auf Klassen und Objekte referenziert werden können. In allen Fällen muss jedoch die referenzierte Verfahren öffentlich sein sichtbar . Eine Methode ist public, wenn dem public Schlüsselwort entweder ein Präfix vorangestellt wird oder überhaupt kein Sichtbarkeitsschlüsselwort (in diesem Fall ist die Methode standardmäßig öffentlich).

Objektmethode Aktionshaken

Objektmethoden werden für eine bestimmte Instanz einer Klasse ausgeführt.

class My_Class { // Constructor function My_Class() { // (Instantiation logic) } // Initialization function public function initialize() { // (Initialization logic) } }

Nach der Instantiierung der obigen Klasse wie folgt:

$my_class_instance = new My_Class();

Die Methode initialize() wird normalerweise für das Objekt aufgerufen, indem $my_class_instance->initialize(); aufgerufen wird $my_class_instance->initialize(); . Das Ankoppeln der Methode an die 'init' WordPress-Aktion erfolgt durch Übergeben eines Arrays, das eine Referenz auf die Instanz enthält, und einer Zeichenfolge, die den Namen der Objektmethode enthält:

add_action( 'init', [ $my_class_instance, 'initialize' ] );

Wenn add_action() innerhalb einer Objektmethode aufgerufen wird, kann auch die add_action() $this verwendet werden:

class My_Class { // Constructor function My_Class() { // (Instantiation logic)

https://riptutorial.com/de/home 90

Page 109: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

add_action( 'init', [ $this, 'initialize' ] ); } // Initialization function public function initialize() { // (Initialization logic) } }

Klassenmethode Aktionshaken

Klassenmethoden werden statisch für eine Klasse und nicht für eine bestimmte Instanz ausgeführt. Angesichts der folgenden Klasse

class My_Class { // Initialization function public static function initialize() { // (Initialization logic) } }

Die Methode initialize() wird normalerweise mit dem Operator :: scope-resolution aufgerufen, dh My_Class::initialize(); . Das Ankoppeln einer statischen Klassenmethode an eine WordPress-Datei kann auf verschiedene Arten erfolgen:

Verwenden eines Arrays aus einer Zeichenfolge, die den Klassennamen enthält, und einer Zeichenfolge, die den Methodennamen enthält:

add_action( 'init', [ 'My_Class', 'initialize' ] );

Übergeben einer Zeichenfolge, die eine vollständige Referenz auf die Methode enthält, einschließlich des Operators ::

add_action( 'init', 'My_Class::initialize' );

Wenn add_action() innerhalb einer statischen Klassenmethode __CLASS__ wird, kann anstelle des Klassennamens das Schlüsselwort self oder die magische Konstante __CLASS__ verwendet werden. Beachten Sie, dass dies im Allgemeinen nicht zu empfehlen ist, da die Werte dieser Elemente im Fall der Klassenvererbung etwas kontrapunktisch werden.

class My_Class { // Setup function public static function setup_actions() { add_action( 'init', 'self::initialize' ); } // Initialization function public static function initialize() { // (Initialization logic)

https://riptutorial.com/de/home 91

Page 110: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

} }

Funktion: add_action () online lesen: https://riptutorial.com/de/wordpress/topic/6561/funktion--add-action---

https://riptutorial.com/de/home 92

Page 111: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 31: Funktion: wp_trim_words ()

Syntax

<?php $trimmed_text = wp_trim_words( $text, $num_words = 55, $more = null ); ?>•

Parameter

Parameter Einzelheiten

$text (String) (Erforderlich) Text, der gekürzt oder gekürzt wird.

$num_words (Ganzzahl) (Erforderlich) Anzahl der Wörter, auf die der Text beschränkt ist.

$more (String) (Optional) Was wird angefügt, wenn $ text gekürzt werden muss.

Examples

Post-Inhalt beschneiden

Diese Funktion verkürzt den Text auf eine bestimmte Anzahl von Wörtern und gibt den gekürzten Text zurück.

<?php echo wp_trim_words( get_the_content(), 40, '...' ); ?>

Im obigen Beispiel übergeben wir den Post-Inhalt an die Funktion. Dadurch wird die Länge des Inhalts auf 40 Wörter begrenzt und der Rest der Wörter wird beschnitten.

Funktion: wp_trim_words () online lesen: https://riptutorial.com/de/wordpress/topic/7866/funktion--wp-trim-words---

https://riptutorial.com/de/home 93

Page 112: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 32: get_bloginfo ()

Einführung

Ruft Informationen zur aktuellen Site ab.

Syntax

get_bloginfo ($ show, $ filter)•

Parameter

Parameter Einzelheiten

$ show (Zeichenfolge) Die abzurufenden Site-Setting-Informationen.

$ filter(string) Die Angabe, ob ein gefilterter Wert zurückgegeben werden soll oder nicht.

Bemerkungen

$ show

Werte Beschreibung Beispiel

'name' (Standardeinstellung)

Seitentitel 'Matt Mullenweg'

'Beschreibung' Website-Tagline 'Just another WordPress site'

'wpurl'URL der WordPress-Installation. site_url() Funktion site_url()

'http://example.com' , 'http://localhost/wordpress'

"URL"URL der Site home_url() Funktion home_url()

'http://example.com' , 'http://localhost/wordpress'

'admin_email'E-Mail-Adresse des Hauptadministrators

'[email protected]'

'Zeichensatz'Zeichenkodierung der Seiten und Feeds

'UTF-8'

'Ausführung'Aktuelle Version der WordPress-Installation

'4.5'

https://riptutorial.com/de/home 94

Page 113: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Werte Beschreibung Beispiel

'html_type'Inhaltstyp Wert des HTML

'text/html'

'Textrichtung'Textrichtung, die von der Sprache der Site bestimmt wird

'ltr'

'Sprache'Sprachcode nach ISO 639-1

'en-US'

'stylesheet_url'

URL des Stylesheets des aktivierten Designs. Wertpriorität: Untergeordnetes Thema »Übergeordnetes Thema.

'http://example.com/wp-content/themes/twentysixteen/style.css'

'stylesheet_directory'

Ressourcenstandort des aktivierten Themas. Wertpriorität: Untergeordnetes Thema »Übergeordnetes Thema.

'http://example.com/wp-content/themes/twentysixteen'

'template_url'

URL-Verzeichnis des aktivierten Designs. Wertpriorität: Übergeordnetes Thema »Untergeordnetes Thema.

'http://example.com/wp-content/themes/twentysixteen'

'template_directory' Gleich wie 'template_url'

'pingback_url'Pingback-XML-RPC-Datei

'http://example/xmlrpc.php'

'atom_url' Atom-Feed-URL 'http://example/feed/atom/'

'rdf_url'RDF / RSS 1.0-Feed-URL

'http://example/feed/rdf/'

'rss_url' RSS 0.92-Feed-URL 'http://example/feed/rss/'

'rss2_url' RSS 2.0-Feed-URL 'http://example/feed/'

'comments_atom_url'Kommentare Atom-Feed-URL

'http://example/comments/feed/atom/'

https://riptutorial.com/de/home 95

Page 114: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Werte Beschreibung Beispiel

'Seiten-URL'(veraltet) Verwenden Sie stattdessen 'url'

'Zuhause'(veraltet) Verwenden Sie stattdessen 'url'

$ filter

Werte Beschreibung Beispiel

'roh' (Standardeinstellung)

Es werden keine Filter angewendet Rohdaten

'Anzeige'Filter werden auf den Rückgabewert angewendet, wenn $show weder 'url' noch 'directory' oder 'home'

gefilterte Daten

Examples

Den Seitentitel abrufen

<?php echo get_bloginfo( 'name' ); ?>

oder

<?php echo get_bloginfo(); ?>

Ausgabe

Matt Mullenweg

Basierend auf diesen Beispieleinstellungen

https://riptutorial.com/de/home 96

Page 115: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Den Site-Slogan erhalten

<?php echo get_bloginfo( 'description' ); ?>

Ausgabe

Just another WordPress site

Basierend auf diesen Beispieleinstellungen

https://riptutorial.com/de/home 97

Page 116: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Abrufen der aktiven Design-URL

<?php echo esc_url( get_bloginfo( 'stylesheet_directory' ) ); ?>

Ausgabe

http://example.com/wp-content/themes/twentysixteen

Alternativen

get_bloginfo( 'stylesheet_directory' ) ruft get_stylesheet_directory_uri() möchten Sie das stattdessen verwenden:

<?php echo esc_url( get_stylesheet_directory_uri() ); ?>

https://riptutorial.com/de/home 98

Page 117: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Viele Entwickler ziehen es vor, diese dedizierten Funktionen aufgrund inkonsistenter Namenskonventionen zwischen ihnen und get_bloginfo() . Beispielsweise gibt get_stylesheet_directory() den Pfad des get_stylesheet_directory() zurück. Wie unser vorheriges Beispiel zeigt, gibt get_bloginfo( 'stylesheet_directory' ) die get_bloginfo( 'stylesheet_directory' ) URL zurück. Wenn Sie stattdessen get_stylesheet_directory_uri() verwenden, besteht weniger Verwechslungsgefahr, wenn Sie einen Pfad oder eine URL get_stylesheet_directory_uri() .

Rufen Sie die Site-URL ab

<?php echo esc_url(get_bloginfo('url')); ?>

oder wenn Sie auf eine Unterseite verlinken mussten

<?php echo esc_url(get_bloginfo('url') . '/some-sub-page'); ?>

Erhalten Sie die E-Mail-Adresse des Site-Administrators

Wir können die Funktion get_bloginfo verwenden, um die E-Mail-Adresse des get_bloginfo abzurufen.

<?php echo get_bloginfo('admin_email'); ?>

get_bloginfo () online lesen: https://riptutorial.com/de/wordpress/topic/524/get-bloginfo---

https://riptutorial.com/de/home 99

Page 118: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 33: get_home_path ()

Einführung

Holen Sie sich den absoluten Dateisystempfad zum Stammverzeichnis der WordPress-Installation.

Parameter

Parameter Einzelheiten

Keiner Diese Funktion akzeptiert keine Parameter.

Bemerkungen

Wichtiger Unterschied zwischen get_home_path() und ABSTPATH

Bitte beachten Sie den Unterschied zwischen ABSPATH und get_home_path() wenn Sie WordPress in einem Unterordner installiert haben.

Die Funktion get_home_path() gibt immer einen Pfad ohne den Unterordner zurück:

http://www.example.com - / var / www / htdocs / beispiel•http://www.example.com/wp - / var / www / htdocs / beispiel•

So unterscheidet es sich von ABSPATH , wodurch unterschiedliche Werte zurückgegeben werden:

http://www.example.com - / var / www / htdocs / beispiel•http://www.example.com/wp - / var / www / htdocs / example / wp•

ABSPATH wird zuerst in wp-load.php die sich unter /var/www/htdocs/example/wp/wp-load.php befindet. ABSPATH wird ABSPATH seine Definition übernehmen.

get_home_path() überprüft, ob sich site_url und home_url unterscheiden, und entfernt den Teilstring aus dem Pfad. Andernfalls wird der ABSPATH Wert zurückgegeben:

function get_home_path() { $home = set_url_scheme( get_option( 'home' ), 'http' ); $siteurl = set_url_scheme( get_option( 'siteurl' ), 'http' ); if ( ! empty( $home ) && 0 !== strcasecmp( $home, $siteurl ) ) { $wp_path_rel_to_home = str_ireplace( $home, '', $siteurl ); /* $siteurl - $home */ $pos = strripos( str_replace( '\\', '/', $_SERVER['SCRIPT_FILENAME'] ), trailingslashit( $wp_path_rel_to_home ) ); $home_path = substr( $_SERVER['SCRIPT_FILENAME'], 0, $pos ); $home_path = trailingslashit( $home_path ); } else { $home_path = ABSPATH;

https://riptutorial.com/de/home 100

Page 119: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

} return str_replace( '\\', '/', $home_path ); }

Verwenden Sie es in Ihrem Code

Der Aufruf von get_home_path() muss in einem Kontext erfolgen, in dem wp-admin/includes/file.php bereits enthalten ist.

Die Verwendung von get_home_path() innerhalb des admin_init ist beispielsweise in Ordnung, aber die Verwendung innerhalb von init ist nicht und führt zu einem schwerwiegenden PHP-Fehler:

Call to undefined function get_home_path()

Diese Datei wird nur aus dem Admin-Kontext (Dashboard) eingefügt. Wenn Sie sie außerhalb dieses Kontextes unbedingt benötigen, müssen Sie die Datei selbst einschließen, bevor Sie die Funktion aufrufen:

require_once(ABSPATH . 'wp-admin/includes/file.php');

Examples

Verwendungszweck

$path = get_home_path();

Rückgabewert:

string

Vollständiger Dateisystempfad zum Stammverzeichnis der WordPress-Installation, auch wenn es in einem Unterordner installiert ist.

Beispiel:

/var/www/htdocs/example

get_home_path () online lesen: https://riptutorial.com/de/wordpress/topic/9699/get-home-path---

https://riptutorial.com/de/home 101

Page 120: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 34: get_option ()

Einführung

Ruft einen Optionswert basierend auf einem Optionsnamen ab.

Syntax

get_option ($ option, $ default)•

Parameter

Parameter Einzelheiten

Option $ (string) Name der abzurufenden Option. Erwartet, nicht mit SQL zu umgehen.

$ default(mixed) (Optional) Standardwert, der zurückgegeben werden soll, wenn die Option nicht vorhanden ist.

Bemerkungen

Liste der Argumente für die Option $

'admin_email'•'blogname'•'blogdescription'•'blog_charset'•'Datumsformat'•'default_category'•'Zuhause'•'Seiten-URL'•'Vorlage'•'start_of_week'•'upload_path'•'users_can_register'•'posts_per_page'•'posts_per_rss'•

Examples

Blogtitel anzeigen

Code

https://riptutorial.com/de/home 102

Page 121: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

<h1><?php echo get_option( 'blogname' ); ?></h1>

Ausgabe

Name des Blogs im H1-Stil

Zeichensatz anzeigen

Code

<p><?php echo esc_html( sprintf( __( 'Character set: %s', 'textdomain' ), get_option( 'blog_charset' ) ) ); ?></p>

Ausgabe

Zeichensatz: UTF-8

Behandlung nicht vorhandener Optionen

Code

<?php echo get_option( 'something_bla_bla_bla' ); ?>

Ausgabe

falsch

Code

<?php echo get_option( 'something_bla_bla_bla', 'Oh no!' ); ?>

Ausgabe

Ach nein!

get_option () online lesen: https://riptutorial.com/de/wordpress/topic/9194/get-option---

https://riptutorial.com/de/home 103

Page 122: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 35: get_permalink ()

Einführung

Diese Funktion gibt den vollständigen Paralink des aktuellen Beitrags oder des angegebenen Beitrags zurück.

Syntax

get_permalink ($ post, $ leavename)•

Parameter

Parameter Einzelheiten

$ post(int) (optional) Beitragskennung oder Beitragsobjekt. Standard ist die ID des aktuellen Beitrags.

$ leavename

(bool) (optional) Gibt an, ob der Post- oder Seitenname beibehalten werden soll.

Bemerkungen

Für den Parameter $ leavename ist dieser standardmäßig falsch.

Examples

Einfache Verwendung von get_parmalink

Code

echo get_permalink();

Ausgabe

Der Link der aktuellen Seite, zum Beispiel: http://website.com/category/name-of-post/

Angabe des Beitrags zum Abrufen des Links

Code

echo get_permalink( 44 );

https://riptutorial.com/de/home 104

Page 123: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Ausgabe

Der Link der Beitrags-ID: 44, zum Beispiel: http://website.com/category/name-of-post/

Holen Sie sich den Link ohne den Namen des Beitrags

Code

echo get_permalink( 44 , false );

Ausgabe

Der Link der Beitrags-ID: 44 ohne den Namen des Beitrags, zum Beispiel: http://website.com/category/%postname%/

get_permalink () online lesen: https://riptutorial.com/de/wordpress/topic/9209/get-permalink---

https://riptutorial.com/de/home 105

Page 124: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 36: get_template_part ()

Syntax

get_template_part ($ slug, $ name);•get_template_part ($ slug);•

Parameter

Parameter Einzelheiten

$ slug (String) Generischer Vorlagennullname

$ name (Zeichenfolge) Name der spezialisierten Vorlage

Examples

Laden Sie einen Vorlagenteil aus einem Unterordner

get_template_part( 'foo/bar', 'page');

erfordert 'bar-page.php' aus dem Verzeichnis 'foo'.

Holen Sie sich eine bestimmte Datei

Mit dieser Funktion können Sie bestimmte Dateien abrufen.

get_template_part('template-parts/layout');

Fügen Sie die Datei layout.php aus dem Unterverzeichnis template-parts ein, das sich im Stammordner Ihres Designordners befindet.

get_template_part () online lesen: https://riptutorial.com/de/wordpress/topic/5897/get-template-part---

https://riptutorial.com/de/home 106

Page 125: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 37: get_template_part ()

Einführung

Der Zweck dieser Funktion ist die Standardisierung des Importierens von Partials oder Komponenten eines Designs in die Hauptdesignvorlage. Sie können eine Standard-PHP-SSI (Server Side Includes) verwenden, es gibt jedoch einige Vorteile bei der Verwendung von get_template_part (). Die Verwendung dieser Funktion reduziert Fehler, die für weniger erfahrene Entwickler anfällig sind, die versuchen, einen vollständig qualifizierten Pfad auf dem Server zu identifizieren. Außerdem schlägt der Fehler fehl, wenn keine Dateien vorhanden sind, und behandelt ein benutzerdefiniertes Hierarchieschutzsystem ("Fuzzy Template Search").

Syntax

get_template_part ($ slug)•get_template_part ($ slug, $ name)•

Parameter

Parameter Einzelheiten

$ slug (Zeichenfolge) Der Slug-Name der benutzerdefinierten Vorlage.

$ name (Zeichenfolge) Der Name der spezialisierten Vorlage. Wahlweise

Examples

Einschließlich einer benutzerdefinierten Vorlage

<?php get_template_part( 'foo' ); ?>

Enthält

../wp-content/themes/your-theme-slug/foo.php

Einschließlich einer benutzerdefinierten Vorlage mit einem durch Bindestrich getrennten Dateinamen

<?php get_template_part( 'foo','bar' ); ?>

Enthält

https://riptutorial.com/de/home 107

Page 126: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

../wp-content/themes/your-theme-slug/foo-bar.php

Einschließlich einer benutzerdefinierten Vorlage aus einem Verzeichnis

<?php get_template_part( 'dir/foo' ); ?>

Enthält

../wp-content/themes/your-theme-slug/dir/foo.php

Einschließlich einer benutzerdefinierten Vorlage mit einem durch Bindestrich getrennten Dateinamen in einem Verzeichnis

<?php get_template_part( 'dir/foo', 'bar' ); ?>

Enthält

../wp-content/themes/your-theme-slug/dir/foo-bar.php

Übergabe der Variable an den benutzerdefinierten Vorlagenbereich

<?php set_query_var( 'passed_var', $my_var ); get_template_part( 'foo', 'bar' ); ?>

foo-bar.php Sie darauf in foo-bar.php

<?php echo $passed_var; ?>

get_template_part () online lesen: https://riptutorial.com/de/wordpress/topic/5993/get-template-part---

https://riptutorial.com/de/home 108

Page 127: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 38: get_template_part ()

Syntax

get_template_part ('Dateiname-Erweiterung');•

Parameter

Parameter Beschreibung

Dateiname-Nr-Erweiterung

Der Name des Vorlagenteils ohne Erweiterung. ZB 'foo' statt 'foo.php'

Examples

Vorlage laden

Zieht den Code aus einer bestimmten angegebenen Datei in eine andere Datei, in der der Aufruf erfolgte.

ZB in example.php

<h1>Hello World!</h1>

In page.php

// header code get_template_part('example'); // rest of page code

Ausgabe:

// header code <h1>Hello World</h1> // rest of page code

get_template_part () online lesen: https://riptutorial.com/de/wordpress/topic/6267/get-template-part---

https://riptutorial.com/de/home 109

Page 128: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 39: get_the_category ()

Einführung

Diese Funktion gibt alle Kategorien als Array des aktuellen Beitrags oder der aktuellen Seite oder des angegebenen Beitrags oder der angegebenen Seite zurück.

Syntax

get_the_category ($ id)•

Parameter

Parameter Einzelheiten

$ id (int) (optional) Standardeinstellung der aktuellen Beitrags-ID. Die Post-ID

Bemerkungen

Bitte beachten Sie, dass get_the_category () ein Array zurückgibt, was bedeutet, dass Sie den zurückgegebenen Wert nicht direkt wiederholen können.

Hier ist eine Liste von Objekten jeder Kategorie, die Sie drucken können:

term_id•Name•Schnecke•term_group•term_taxonomy_id•Taxonomie•Beschreibung•Elternteil•Anzahl•Objekt Identifikation•Filter•cat_ID•category_count•Kategorie beschreibung•Katzenname•kategoriename•category_parent•

Examples

https://riptutorial.com/de/home 110

Page 129: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Holen Sie sich alle Namen der Kategorien des Beitrags

Code

$categories = get_the_category(); foreach( $categories as $category ) { echo $category->name . '<br />'; }

Ausgabe

Alle Kategorienamen der aktuellen Seite, einer in jeder Zeile.

Holen Sie sich alle IDs der Kategorien des Beitrags

Code

$categories = get_the_category(); foreach( $categories as $category ) { echo $category->term_id . '<br />'; }

Ausgabe

Alle IDs der Kategorien der aktuellen Seite, eine in jeder Zeile.

get_the_category () online lesen: https://riptutorial.com/de/wordpress/topic/9211/get-the-category---

https://riptutorial.com/de/home 111

Page 130: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 40: get_the_title ()

Einführung

Diese Funktion gibt den Titel des aktuellen Beitrags oder des angegebenen Beitrags zurück.

Syntax

get_the_title ($ post)•

Parameter

Parameter Einzelheiten

$ post(int) (optional) Beitragskennung oder Beitragsobjekt. Standard ist die ID des aktuellen Beitrags.

Bemerkungen

Wenn Sie vorhaben, den Titel eines Beitrags oder einer Seite mithilfe einer Nachschleife abzurufen, wird empfohlen, stattdessen the_title () zu verwenden.

Examples

Einfache Verwendung von get_the_title

Code

get_the_title();

Ausgabe

Der Titel des aktuellen Beitrags oder der aktuellen Seite

Ruft den Titel einer angegebenen Beitrags-ID ab

Code

get_the_title( 44 );

Ausgabe

Der Titel der Beitrags-ID: 44.

https://riptutorial.com/de/home 112

Page 131: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

get_the_title () online lesen: https://riptutorial.com/de/wordpress/topic/9214/get-the-title---

https://riptutorial.com/de/home 113

Page 132: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 41: Grundlegendes zum Thema Kind

Syntax

Vorlage –– ist der Name des Haupt-WordPress-Designs, des übergeordneten Elements.•child-theme –– ist das Paket, das die Vorlage überschreibt.•

Bemerkungen

Ich habe angekündigt, dass die Verwendung eines Kindermotivs immer eine gute Sache ist, aber es gibt immer ein ...

In unserem Beispiel zum Überschreiben von Vorlagen stellen wir uns vor, dass der Autor eines Designs seine eigenen Verbesserungen zur Seitenleistenvorlage hinzufügt und es eine neue gibt

/themes/template/sidebar.php

<?php /** * The template for the sidebar containing the main widget area * * @link https://developer.wordpress.org/themes/basics/template-files/#template-partials */ if ( is_active_sidebar( 'sidebar-1' ) ) : ?> <aside id="secondary" class="sidebar widget-area" role="complementary"> <?php dynamic_sidebar( 'sidebar-1' ); ?> </aside><!-- .sidebar .widget-area --> <?php endif; ?>

Nun wird unsere Website nicht von der neuen role="complementary" /themes/child-theme/sidebar.php profitieren, da unser /themes/child-theme/sidebar.php die Vorlage immer noch mit einer eigenen Datei unter /themes/child-theme/sidebar.php

Es ist unsere Pflicht als Website-Betreuer, den Überblick darüber zu behalten, welche Vorlagen wir überschreiben, und im bevorstehenden Fall eines Updates sorgfältig auf das Änderungsprotokoll achten, damit Sie bei Bedarf die untergeordneten Designdateien aktualisieren.

Examples

2) Der Zweck

Die untergeordneten Themen sind eine sichere Methode, um Anpassungen der Hauptvorlage beizubehalten, ohne befürchten zu müssen, dass sie bei einem Themenupdate verloren gehen.

Grundsätzlich müssen Sie sich immer dann fragen, wenn Sie eine Datei innerhalb der aktiven Vorlage von Ihrer Website aus bearbeiten möchten. " Was passiert, wenn ich das Design aktualisiere?"

https://riptutorial.com/de/home 114

Page 133: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Und die Antwort ist einfach: Sie verlieren sie, weil das Update einen völlig neuen Themenordner mit sich bringt .

Betrachten wir also ein untergeordnetes Design als Ordner mit Dateien, die die Dateien mit demselben Pfad im übergeordneten Design überschreiben. Lassen Sie uns nun einige Beispiele anführen:

Definition und Anforderungen

Ein untergeordnetes Design wird von WordPress identifiziert, wenn sich in /wp-content/themes/ ein Verzeichnis (z. B. child-theme ) mit folgenden Dateien befindet:

style.css

Diese Datei muss mit einer Kommentarvorlage wie folgt beginnen:

/* Theme Name: Example Child Author: Me Author URI: https://example.com/ Template: example Text Domain: example-child-theme Domain Path: /languages/ */

Die wichtigsten Dinge, die hier zu beachten sind, sind:

Der Template muss genau der Ordnername sein, der das übergeordnete Design enthält (auch bekannt als übergeordnetes Design-Slug).

Nennen Sie Ihr Kind Thema in einer solchen Art und Weise Sie leicht in Dashboard identifizieren kann ( in der Regel nur anhängen Child an die Eltern Namen, wie Example Child )

index.php•

functions.php•

3) Überschreiben der Vorlage

Ein untergeordnetes Thema wird am häufigsten verwendet, um Vorlagenteile zu überschreiben. Zum Beispiel eine Seitenleiste, wenn wir ein Theme mit der folgenden Datei unter haben

/themes/template/sidebar.php

<?php /** * The sidebar containing the main widget area. * * @link https://developer.wordpress.org/themes/basics/template-files/#template-partials */ if ( ! is_active_sidebar( 'sidebar-1' ) ) {

https://riptutorial.com/de/home 115

Page 134: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

return; }?> <div id="sidebar" class="widget-area"> <?php dynamic_sidebar( 'sidebar-1' ); ?> </div>

Wir können definitiv unsere eigene Datei im Child-Theme (mit den Spezifikationen des ersten Beispiels) mit der folgenden Datei hinzufügen

/themes/child-theme/sidebar.php

<?php /** * The sidebar containing the main widget area. */ if ( ! is_active_sidebar( 'sidebar-1' ) ) { return; }?> <div id="my-sidebar" class="my-own-awesome-class widget-area"> <div class="my-wrapper"> <?php dynamic_sidebar( 'sidebar-1' ); ?> </div> </div>

Jetzt my-own-awesome-class ist in den Kindern Thema sicher und es wird nicht zu jedem Thema Update entfernt werden und Wordpress wird immer eine Vorlage von Kind Themen wählen , wenn es einen auf dem gleichen Weg finden wird.

Ersatz von Vermögenswerten

Auch wenn dies keine bewährte Methode ist, müssen Sie manchmal Assets wie CSS- oder JS-Dateien oder -Bibliotheken ersetzen.

Beachten Sie, dass das System zum Überschreiben der WordPress-Vorlage nur mit .php Dateien .php Wenn wir über Assets sprechen, beziehen wir uns auf registrierte Assets

Ein Beispiel könnte die Ersetzung der jQuery-Bibliothek durch Ihre gewünschte Version sein. In unserer untergeordneten Datei functions.php wir eine Funktion hinzufügen, die die aktuelle jQuery Version entfernt, und unsere eigene aus CDN hinzufügen (erinnern Sie sich nur an ein Beispiel).

/** * Dequeue the jQuery script and add our own version. * * Hooked to the wp_print_scripts action, with a late priority (100), * so that it is after the script was enqueued. */ function my_own_theme_scripts() { // remove the current version wp_dequeue_script( 'jquery' ); // register my desired version wp_register_script( 'jquery', 'https://code.jquery.com/jquery-3.1.0.min.js', false, '3.1.0' ); // load my version, here or somewhere else

https://riptutorial.com/de/home 116

Page 135: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

wp_enqueue_script( 'jquery' ); } add_action( 'wp_print_scripts', 'my_own_theme_scripts' );

Grundlegendes zum Thema Kind online lesen: https://riptutorial.com/de/wordpress/topic/6238/grundlegendes-zum-thema-kind

https://riptutorial.com/de/home 117

Page 136: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 42: Hinzufügen / Entfernen von Kontaktinformationen für Benutzer mit dem Filterhaken user_contactmethods

Examples

Aktivieren der beliebtesten sozialen Netzwerke

function social_profiles( $contactmethods ) { $contactmethods['facebook_profile'] = 'Facebook Profile URL'; $contactmethods['twitter_profile'] = 'Twitter Profile URL'; $contactmethods['google_profile'] = 'Google Profile URL'; $contactmethods['linkedin_profile'] = 'Linkedin Profile URL'; $contactmethods['github_profile'] = 'GitHub Profile URL'; $contactmethods['behance_profile'] = 'Behance Profile URL'; $contactmethods['dribbble_profile'] = 'Dribbble Profile URL'; $contactmethods['stack_profile'] = 'Stack Exchange Profile URL'; $contactmethods['twitch_profile'] = 'Twitch Profile URL'; $contactmethods['angellist_profile'] = 'AngelList Profile URL'; return $contactmethods; } add_filter( 'user_contactmethods', 'social_profiles', 10, 1);

Sie erhalten diese Dateien in Ihrem Dashboard:

https://riptutorial.com/de/home 118

Page 137: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Und so rufen Sie es im Code ab

<?php $user_stack_exchange = get_the_author_meta( 'stack_profile' ); ?>

Kontaktmethode entfernen

function remove_contact_methods( $contactmethods ) { unset($contactmethods['facebook_profile']); unset($contactmethods['twitter_profile']); return $contactmethods; } add_filter( 'user_contactmethods', 'remove_contact_methods', 10, 1);

Hinzufügen / Entfernen von Kontaktinformationen für Benutzer mit dem Filterhaken user_contactmethods online lesen: https://riptutorial.com/de/wordpress/topic/2694/hinzufugen---entfernen-von-kontaktinformationen-fur-benutzer-mit-dem-filterhaken-user-contactmethods

https://riptutorial.com/de/home 119

Page 138: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 43: home_url ()

Syntax

home_url ($ pfad, $ schema);•

Parameter

Parameter Einzelheiten

$ path ( String , optional ) Zum Hinzufügen weiterer Segmente nach der Heimat-URL.

$ Schema( String , optional ) Schema für den Kontext der Heimat-URL. Akzeptiert 'http', 'https', 'relative', 'rest' oder null.

Examples

Abrufen der Heimat-URL

home_url() wird zum Abrufen der aktuellen Site-Home-URL verwendet.

<?php echo esc_url( home_url( '/' ) ) ); ?>

Ausgabe

http://www.example.com

Seiten-URL

Gibt die 'site_url' Option mit dem entsprechenden Protokoll zurück ( https: //)

<?php echo site_url(); ?>

Ausgabe

http://www.example.com

home_url () online lesen: https://riptutorial.com/de/wordpress/topic/1252/home-url---

https://riptutorial.com/de/home 120

Page 139: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 44: Installation und Konfiguration

Examples

Wordpress auf LAMP

Ich habe die folgenden Schritte auf Amazon EC2 mit Ubuntu 14.04 getestet

Hier eine Zusammenfassung der Befehlszeilen zum Installieren des LAMP-Technologiestacks (vor der Installation von WordPress):

1: Installieren Sie den LAMP-Technologie-Stack

Aktualisieren Sie Linux

#> sudo apt-get update -> Informationen zu Paket-Repositorys

#> sudo apt-get upgrade -> Paketaktualisierungen installieren

Installieren Sie apache2

#> sudo apt-get install apache2

Installieren Sie PHP

#> sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

Installieren Sie MySQL

#> sudo apt-get install mysql-server php5-mysql

Installieren Sie phpmyadmin

#> sudo apt-get install phpmyadmin

Falls ein Fehler aufgetreten ist, entfernen Sie das installierte Paket und seine Konfigurationsdatei (en).

#> sudo apt-get purge package_name

Sobald der Stack installiert ist, folgen Sie den Schritten, um die Installation von WordPress abzuschließen:

2: Installieren Sie WordPress

wget https://wordpress.org/latest.zip1.

sudo mkdir /var/www/wordpress2.

Verschieben Sie die ZIP-Datei in / var / www / wordpress und extrahieren Sie sie.3.

cd /etc/apache2/sites-available/4.

https://riptutorial.com/de/home 121

Page 140: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

sudo cp 000-default.conf wordpress.conf5.

Ändern Sie wordpress.conf so, dass apache2 alle Anfragen oder Ihre Domäne an den Wordpress-App-Ordner weiterleiten kann.

6.

sudo a2ensite wordpress.conf7.

sudo service apache2 restart8.

Rufen Sie PhpMyAdmin über Ihren Browser über youdomain.com/phpmyadmin auf. Erstellen Sie einen neuen Benutzer „WordPress“ und prüfen Sie, ob die entsprechende Datenbank erstellt werden soll. cd /var/www/wordpress

9.

sudo cp wp-config-example.php wp-config.php10.

Ändern Sie die Konfigurationsdatei, um Informationen zur MySQL-Wordpress-Datenbank hinzuzufügen.

11.

sudo chown -R www-data:www-data /var/www/wordpress12.

sudo chmod -R 755 /var/www/wordpress/13.

Öffnen Sie den Browser und geben Sie Ihre Domäne ein. Sie sollten die WordPress-Installationsseite sehen. Folge der Anweisung und du bist fertig!

14.

Installation WP in MAMP

Es ist ziemlich einfach, WordPress in MAMP zu installieren.

Sie müssen ein paar einfache Schritte befolgen:

1 - Laden Sie MAMP hier herunter, es ist kostenlos und Sie benötigen wahrscheinlich keine Pro-Version.

2 - Installieren Sie auf Ihrem PC oder Mac.

3 - Starten Sie das Programm -> Sie sehen ein kleines Fenster, von dem aus Sie MAMP einstellen können. Lassen Sie im Moment alle voreingestellten Werte, für die erste Installation müssen Sie Ihr Leben nicht komplizieren! Denken Sie in Zukunft daran, Ihr Passwort und Ihren Benutzernamen für die MySQL-Datenbank zu ändern. Standardmäßig ist es root.

4 - Klicken Sie auf "WebStart-Seite öffnen" - hier können Sie Ihre Dateninformationen wie Kennwort, Admin-Name und auch Informationen zu MAMP anzeigen.

5 - Klicken Sie auf tools -> phpMyAdmin und Sie werden zur Datenbankseite weitergeleitet.

6 - Erstellen Sie eine neue Datenbank, klicken Sie auf "Neu" und geben Sie den gewünschten Namen ein. Diesen Namen benötigen Sie später.

7 - Suchen Sie nun nach einem Ordner namens "htdocs". Er befindet sich im Ordner MAMP auf Ihrem PC oder Mac. Wenn Sie einen Mac verwenden, müssen Sie die Anwendung im Finder auswählen und die App mit "Paketinhalt anzeigen" öffnen. Darin finden Sie den Ordner htdocs .

https://riptutorial.com/de/home 122

Page 141: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

8 - Nehmen Sie den Wordpress-Ordner und kopieren Sie ihn in die htdocs. Sie müssen ihn in allen Ordnern ablegen, nicht die ZIP-Datei. Benennen Sie den Ordner um, den Sie mit Ihrem Projektnamen anrufen können.

9 - Kehren Sie in Ihrem Browser zum Fenster von MAMP zurück und klicken Sie auf "Meine Website". Dadurch wird ein URL-Aufruf http://localhost:8888 geöffnet. Hier können Sie den Ordner sehen, den Sie im Ordner htdocs haben. Klicken Sie auf den Namen, den Sie dem Ordner gegeben haben.

10 - Starten Sie nun eine normale Installation von WordPress. Sie müssen Admin und Passwort verwenden. Standardmäßig sind dies root und root , und verwenden Sie den Namen der zuvor erstellten Datenbank.

11 - Führen Sie die Installation aus und beenden Sie die Installation!

Sie finden Ihre Website unter http://localhost:8888/namefolder Natürlich müssen Sie MAMP weiterhin ausführen.

Installation und Konfiguration online lesen: https://riptutorial.com/de/wordpress/topic/6606/installation-und-konfiguration

https://riptutorial.com/de/home 123

Page 142: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 45: Kurzcode

Examples

Kurzcode registrieren

Shortcode ist ein kleiner Code, der in den WordPress-Editor eingefügt werden kann und etwas anderes ausgibt, sobald die Seite veröffentlicht oder in der Vorschau angezeigt wird.

Häufig werden Kurzwahlnummern zu dem Thema hinzugefügt functions.php Datei, aber das ist keine gute Praxis als Kurzwahlnummern nach wechselnden Themen zu halten erwartet arbeiten. Schreiben Sie stattdessen ein Plugin , um diese Funktionalität hinzuzufügen.

Die Struktur für die Registrierung von Shortcode lautet:

function new_shortcode($atts, $content = null){ // if parameters are needed in the shortcode // parameters can be set to default to something extract( shortcode_atts( array( 'param_one' => 'h1' ), $atts ) ); $shortcode = '<'.$param_one'>'.$content.'</'.$param_one.'>'; return $shortcode; } // this is what registers the shortcode with wordpress add_shortcode('demo-shortcode','new_shortcode');

Innerhalb des WordPress-Editors können Sie Folgendes eingeben:

[demo-shortcode param_one="h2"]Demo[/demo-shortcode] // you don't need to insert param_one into the editor if it has a default value. // having it in the editor will override the default

Sobald die Seite veröffentlicht ist, wird daraus

<h2>Demo</h2>

Verwenden von Shortcodes in WordPress Backend

[footag foo="value of 1" attribute-2="value of 2"]

In WordPress Admin verwenden wir vordefinierte Shortcodes, indem Sie den Namen des Shortcodes in eckige Klammern schreiben und optional Attribute durch Leerzeichen hinzufügen.

Neue Shortcodes hinzufügen

function footag_func( $atts ) { return "foo = {$atts['foo']}";

https://riptutorial.com/de/home 124

Page 143: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

} add_shortcode( 'footag', 'footag_func' );

In Plugins können wir Shortcodes mit der Funktion add_shortcode hinzufügen.

Der Shortcode kann in jeder Wordpress-Seite oder in jedem Post verwendet werden, indem er in eckige Klammern gesetzt wird.

[footag]

Verwenden von Shortcodes in PHP-Code (Designs und Plugins)

<?php echo do_shortcode("[footag foo='Hi! I am a foo output']"); ?>

Um einen Shortcode mit PHP zu drucken, verwenden Sie die do_shortcode Funktion und geben den zurückgegebenen Wert aus.

Verwenden von Shortcodes in Widgets

add_filter( 'widget_text', 'shortcode_unautop' ); add_filter( 'widget_text', 'do_shortcode' );enter code here

Fügen Sie dies einem Plugin oder der Datei functions.php , um Shortcodes in Widgets zu aktivieren. Der Code stoppt zunächst WordPress-Zeilenumbrüche in Absatz-Tags und lässt dann Shortcodes nach Widgets analysieren. Die Reihenfolge der beiden Zeilen ist wichtig.

Kurzcode online lesen: https://riptutorial.com/de/wordpress/topic/4952/kurzcode

https://riptutorial.com/de/home 125

Page 144: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 46: Kurzcode mit Attribut

Syntax

add_shortcode ('your_short_code', 'your_function_name');•

Parameter

Parameter Beschreibung und Verwendung

$ tag(Zeichenfolge) (erforderlich) Shortcode-Tag, das im Post-Inhalt gesucht werden soll Standard: Keine

$ func(aufrufbar) (erforderlich) Hook zum Ausführen, wenn Shortcode gefunden wird Standard: Keine

Bemerkungen

WICHTIG - Verwenden Sie nicht camelCase oder UPPER-CASE für Ihre Attribute

Sie können einen Shortcode mit dem Attribut Here erzeugen

Examples

Beispiele für Shortcodes

WordPress-Shortcodes wurden in 2.5 eingeführt

Hier ist ein Beispiel für einen Shortcode

[button]

do_shortcode() direkt in ein Theme zu verwenden, müssen Sie do_shortcode()

<?php echo do_shortcode('[button]'); ?>

Um die Schaltfläche anzupassen, können Sie einfach Folgendes hinzufügen:

[button type="twitter"]

Oder um es noch besser zu machen, könnten wir einen einschließenden Kurzcode verwenden:

[button type="twitter"]Follow me on Twitter![/button]

https://riptutorial.com/de/home 126

Page 145: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Erstellen eines selbstschließenden Shortcodes

Der einfachste Shortcode ist der selbstschließende. Wir werden einen einfachen Link zu unserem Twitter-Account erstellen und ihn dann in einem Blogbeitrag hinzufügen. Der gesamte Code wird in functions.php /wp-content/themes/your-theme/ , die sich in /wp-content/themes/your-theme/ . Wenn Sie noch keinen haben, erstellen Sie ihn einfach und geben Sie den Code ein.

<?php function button_shortcode() { return '<a href="http://twitter.com/rupomkhondaker" class="twitter-button">Follow me on Twitter!</a>"'; } add_shortcode('button', 'button_shortcode'); ?>

Verwendung: [button]

Erstellen eines selbstschließenden Kurzcodes mit Parametern

Erstellen eines selbstschließenden Kurzcodes mit Parametern

<?php function button_shortcode( $type ) { extract( shortcode_atts( array( 'type' => 'value' ), $type ) ); // check what type user entered switch ($type) { case 'twitter': return '<a href="http://twitter.com/rupomkhondaker" class="twitter-button">Follw me on Twitter!</a>'; break; case 'rss': return '<a href="http://example.com/rss" class="rss-button">Subscribe to the feed!</a>' break; } } add_shortcode( 'button', 'button_shortcode' ); ?>

Jetzt können Sie auswählen, welche Schaltfläche angezeigt werden soll, indem Sie den Typ Ihres Kurzcodes definieren.

[button type="twitter"] [button type="rss"]

Erstellen eines umschließenden Kurzcodes

https://riptutorial.com/de/home 127

Page 146: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kurzcode einschließen

Mit dem beiliegenden Shortcode können Sie Inhalte in Ihren Shortcode einbetten, genau wie BBCode, falls Sie das jemals verwendet haben.

<?php function button_shortcode( $attr, $content = null ) { return '<a href="http://twitter.com/filipstefansson" class="twitter-button">' . $content . '</a>'; } add_shortcode('button', 'button_shortcode'); ?>

Um diesen Shortcode zu verwenden, binden Sie den zu verwendenden Text folgendermaßen ein:

[button]Follow me on Twitter![/button]

Um diese Schaltfläche noch besser zu machen, können Sie wie im vorherigen Beispiel Parameter hinzufügen.

<?php function button_shortcode( $atts, $content = null ) { extract( shortcode_atts( array( 'account' => 'account', 'style' => 'style' ), $atts ) ); return '<a href="http://twitter.com/' . esc_attr($account) . '" class="twitter-button ' . esc_attr($style) . '">' . $content . '</a>'; } add_shortcode('button', 'button_shortcode'); ?>

Verwendungszweck:

[button account="rupomkhondaker" style="simple"]Follow me on Twitter![/button]

Kurzwahlen in Widgets

Standardmäßig unterstützt WordPress keine Shortcodes in Sidebar-Widgets. Es erweitert nur die Kurzwahlen innerhalb des Inhalts eines Beitrags, einer Seite oder eines benutzerdefinierten Beitragstyps. Um Sidebar-Widgets mit Shortcode zu unterstützen, können Sie ein Plugin installieren oder den folgenden Code verwenden:

add_filter( 'widget_text', 'shortcode_unautop' ); add_filter( 'widget_text', 'do_shortcode' );

Es ist wichtig, dass diese Zeilen in dieser Reihenfolge hinzugefügt werden. Die erste Zeile verhindert, dass WordPress Zeilenumbrüche in Absatz-Tags umwandelt, da Shortcodes nicht funktionieren. Die zweite Zeile ist die, in der die Kurzcodes funktionieren.

Kurzcode mit Attribut online lesen: https://riptutorial.com/de/wordpress/topic/6291/kurzcode-mit-

https://riptutorial.com/de/home 128

Page 147: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

attribut

https://riptutorial.com/de/home 129

Page 148: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 47: Kurzwahlnummern

Examples

Shortcode-Einführung

Shortcodes sind nützlich, wenn Sie komplexere Elemente inline in den normalen Inhaltseditor einfügen möchten.

Ein Shortcode in seiner einfachsten Form würde folgendermaßen aussehen:

function my_shortcode( ){ return "This is a shortcode"; } add_shortcode( 'my_shortcode', 'my_shortcode' );

Es würde den Text "This is a shortcode" ausgeben und Sie würden es verwenden, indem Sie [my_shortcode] im Inhaltseditor schreiben.

Tastenkürzel

Hier ist ein Beispiel für einen einfachen Tastenkürzel:

<?php function my_button_shortcode( $atts ) { // Parse the input attributes and assgn default values for the // attributes that are not specified on the shortcode $a = shortcode_atts( array( 'id' => '', 'url' => '#', 'class' => '', 'text' => '' ), $atts ); // Open the anchor tag and add role=button for better accessibility $btn_html = '<a role="button"'; // Add the href(link) attribute $btn_html .= ' href="' . $a['url'] . '"'; // Add id attribute to output if specified if ( !empty( $a['id'] ) ) { $btn_html .= ' id="' . $a['id'] . '"'; } $btn_classes = 'button'; // Add class attribute to output $btn_html .= ' class="button ' . ( !empty(a['class']) ? $a['class'] : '' ) . '"'; // Close opening anchor tag

https://riptutorial.com/de/home 130

Page 149: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

$btn_html .= '>'. // Add button text $a['text']. // Add closing anchor tag '</a>'."\n"; return $btn_html; } add_shortcode( 'button', 'my_button_shortcode' );

Dieser Shortcode kann verwendet werden, indem Sie [button url="/my-other-page" id="my-other-page-button" class="dark" text="Click me!"] In den Editor [button url="/my-other-page" id="my-other-page-button" class="dark" text="Click me!"] und die folgendes HTML:

<a role="button" href="/my-other-page" id="my-other-page-button" class="button dark">Click me!</a>

Kurzwahlnummern online lesen: https://riptutorial.com/de/wordpress/topic/6070/kurzwahlnummern

https://riptutorial.com/de/home 131

Page 150: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 48: Meta Box

Einführung

Einfache Verwendung einer Meta Box in den Content-Editoren von wp-admin

Syntax

_x ('Text', 'Description', 'textdomain') wird verwendet, um eine Beschreibung für den Übersetzungsdienst anstelle von __ ('Text', 'textdomain') hinzuzufügen

_ex ('Text', 'Description', 'textdomain') wird verwendet, um den übersetzten Text mit einer Beschreibung widerzuspiegeln

Bemerkungen

Der Inhalt in der Render-Meta-Box kann beliebig sein. Anstatt die Werte direkt zu integrieren, können Sie auch ein include mit einer PHP-Vorlage verwenden und die set_query_var Methode verwenden, um Daten an sie zu übergeben. Das Speichern würde auf dieselbe Weise funktionieren.

Examples

Ein einfaches Beispiel mit einer regulären Eingabe und einer Auswahleingabe

/** * Add meta box to post types. * * @since 1.0.0 */ function myplugin_add_meta_box() { // Set up the default post types/ $types = array( 'post', ); // Optional filter for adding the meta box to more types. Uncomment to use. // $types = apply_filters( 'myplugin_meta_box_types', $types ); // Add the meta box to the page add_meta_box( 'myplugin-meta-box', // Meta Box Id. Can be anything. _x( 'Custom Meta', 'Custom Meta Box', 'myplugin' ), // The title of the meta box. Translation is optional. Can just be string. 'myplugin_render_meta_box', // The render meta box function. $types, // Add the post types to which to add the meta box. 'side', // Show on the side of edit. 'high' // Show at top of edit. ); }

https://riptutorial.com/de/home 132

Page 151: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

add_action( 'add_meta_boxes', 'myplugin_add_meta_box' ); /** * Render the meta box. * * This shows examples of a basic input and a select inside a meta box. These can be anything. * * @since 1.0.0 * * @param $post WP_Post The post being edited. */ function myplugin_render_meta_box( $post ) { // Get the current post meta values for our custom meta box. $city = get_post_meta( $post->ID, 'city', true ); // True is for returning a single value. $country = get_post_meta( $post->ID, 'country', true ); // True is for returning a single value. // Add the WP Nonce field for security. wp_nonce_field( plugin_basename( __FILE__ ), 'myplugin_meta_nonce' ); ?> <p> <label for="city"> <?php _ex( 'City', 'Custom Meta Box Template', 'myplugin' ); ?> </label> <input name="city" id="city" value="<?php echo $city; ?>" /> </p> <p> <label for="country"> <?php _ex( 'Country', 'Custom Meta Box Template', 'myplugin' ); ?> </label> <select name="country" id="country"> <option value="United States" <?php selected( $country, 'United States' ); ?>><?php _ex( 'United States', 'Custom Meta Box Template', 'myplugin' ); ?></option> <option value="Mexico" <?php selected( $country, 'Mexico' ); ?>><?php _ex( 'Mexico', 'Custom Meta Box Template', 'myplugin' ); ?></option> <option value="Canada" <?php selected( $country, 'Canada' ); ?>><?php _ex( 'Canada', 'Custom Meta Box Template', 'myplugin' ); ?></option> </select> </p> <?php } /** * Save meta box data. * * @since 1.0.0 * * @param $post_id int The Id of the Post being saved. */ function myplugin_save_meta_data( $post_id ) { // Verify this is not an auto save. if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return; } // Validate the meta box nonce for security. if ( ! isset( $_POST['myplugin_meta_nonce'] ) || ! wp_verify_nonce(

https://riptutorial.com/de/home 133

Page 152: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

$_POST['myplugin_meta_nonce'], plugin_basename( __FILE__ ) ) ) { return; } // Get the new values from the form. $city = $_POST['city']; $country = $_POST['country']; // update_post_meta will add the value if it doesn't exist or update it if it does. update_post_meta( $post_id, 'city', $city ); update_post_meta( $post_id, 'country', $country ); /* * OPTIONAL ALTERNATIVE * * Instead of just using update_post_meta, you could also check the values and * issue create/update/delete on the post meta value. */ // $current_city_value = get_post_meta( $post_id, 'city', true ); // True is for returning a single value. // // // Add the post meta if it doesn't exist. // if ( $city && '' === $city ) { // add_post_meta( $post_id, 'city', $city, true ); // True means the key is unique to the post. False is default and more than one can be added. // } // // Edit the post meta if it does exist and there is a new value. // elseif ( $city && $city != $current_city_value ) { // update_post_meta( $post_id, 'city', $city ); // } // // Delete the post meta if there is no new value. // elseif ( '' === $city && $current_city_value ) { // delete_post_meta( $post_id, 'city', $current_city_value ); // $current_city_value is optional and is used to differentiate between other values with the same key. // } } add_action( 'save_post', 'myplugin_save_meta_data' );

Meta Box online lesen: https://riptutorial.com/de/wordpress/topic/9611/meta-box

https://riptutorial.com/de/home 134

Page 153: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 49: Netzwerkanfragen mit HTTP-API durchführen

Syntax

$ response = wp_remote_get ($ url, $ args);•$ response = wp_remote_post ($ url, $ args);•$ response = wp_safe_remote_post ($ url, $ args);•

Parameter

Parameter Einzelheiten

$ url (Zeichenfolge) (Erforderlich) Website-URL zum Abrufen.

$ args (Array) (Optional) Fordern Sie Argumente an.

Bemerkungen

Kehrt zurück

(WP_Error | array) Die Antwort als Array oder WP_Error bei einem Fehler.

Examples

Rufen Sie eine Remote-JSON-Ressource ab

Dieses Snippet holt eine JSON-formatierte Ressource, dekodiert sie und druckt sie im PHP-Array-Format.

// Fetch $response = wp_remote_get( 'http://www.example.com/resource.json' ); if ( ! is_wp_error( $response ) ) { $headers = wp_remote_retrieve_headers( $response ); if ( isset( $headers[ 'content-type' ] ) && 'application/json' === $headers[ 'content-type' ] ) { print_r( json_decode( wp_remote_retrieve_body( $response ) ) ); } }

Netzwerkanfragen mit HTTP-API durchführen online lesen: https://riptutorial.com/de/wordpress/topic/1116/netzwerkanfragen-mit-http-api-durchfuhren

https://riptutorial.com/de/home 135

Page 154: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 50: Options-API

Einführung

Optionen sind Daten, die WordPress zum Speichern verschiedener Einstellungen und Konfigurationseinstellungen verwendet. Die Options-API ist eine einfache und standardisierte Methode zum Speichern von Daten in der Datenbank. Die API erleichtert das Erstellen, Aufrufen, Aktualisieren und Löschen von Optionen.

Syntax

// Neue Option in WordPress erstellen add_option ($ option, $ value =, $ deprecated =, $ autoload = 'yes');

// Entfernt eine Option aus der Datenbank. delete_option ($ option);

// Eine gespeicherte Option abrufen get_option ($ option, $ default = false);

// Aktualisieren Sie den Wert einer Option, die bereits hinzugefügt wurde. update_option ($ option, $ newvalue);

// Es gibt auch * _site_option () Versionen dieser Funktionen. // um netzweite Optionen in WordPress Multisite zu bearbeiten

// Neue Netzwerkoption erstellen add_site_option ($ option, $ value =, $ deprecated =, $ autoload = 'yes');

// Entfernt eine Netzwerkoption delete_site_option ($ option);

// Eine gespeicherte Netzwerkoption abrufen get_site_option ($ option, $ default = false);

// Aktualisieren Sie den Wert einer Option, die bereits hinzugefügt wurde. update_site_option ($ option, $ newvalue);

Bemerkungen

Die Options-API ist eine einfache und standardisierte Methode zum Arbeiten mit Daten, die in der Optionstabelle der MySQL-Datenbank enthalten sind. Die API erleichtert das Erstellen, Lesen, Aktualisieren und Löschen von Optionen.

Examples

https://riptutorial.com/de/home 136

Page 155: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

get_option

Die Funktion get_option wird verwendet, um einen Wert aus der Optionstabelle basierend auf dem Optionsnamen abzurufen.

Sie können den folgenden Code verwenden, um die E-Mail-Adresse eines WordPress-Site-Administrators abzurufen.

<?php echo get_option('admin_email'); ?>

get_option() hat ein optionales get_option() Argument, mit dem Sie einen Standardwert festlegen können, der zurückgegeben wird, falls die angeforderte Option nicht festgelegt ist. Standardmäßig ist dieses Argument false .

Um eine Textzeichenfolge abzurufen und eine Zeichenfolge zu verwenden, wenn der Text nicht in der Optionstabelle festgelegt ist, können Sie Folgendes tun:

<?php get_option( 'my_text', "I don't have anything written. Yet." ); ?>

add_option

Die Funktion add_option dient zum Einfügen einer neuen Zeile in die Optionstabelle.

Dadurch wird eine neue Zeile in die Optionstabelle mit dem Optionsnamen some_option_name und dem Wert some_option_value eingefügt

<?php add_option( 'some_option_name', 'some_option_value' ); ?>

delete_option

Mit der Funktion delete_option können Sie eine Option aus der Optionstabelle löschen.

Dadurch wird my_custom_option aus der Optionstabelle gelöscht.

<?php delete_option( 'my_custom_option' ); ?>

update_option

Die Funktion update_option wird verwendet, um einen bereits in der Optionstabelle vorhandenen Wert zu aktualisieren. Wenn die Option nicht vorhanden ist, wird die Option mit dem Optionswert hinzugefügt.

Dadurch wird der Standardkommentarstatus auf "geschlossen" gesetzt:

update_option( 'default_comment_status', 'closed' );

Options-API online lesen: https://riptutorial.com/de/wordpress/topic/7854/options-api

https://riptutorial.com/de/home 137

Page 156: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 51: Plugin-Entwicklung

Syntax

add_action (String $ tag, aufrufbare $ function_to_add, int $ Priorität = 10, int $ akzeptierte_args = 1)

add_filter (String $ tag, aufrufbare $ function_to_add, int $ Priorität = 10, int $ akzept_args = 1)

Parameter

Parameter Detail

$ tag(Zeichenfolge) (Erforderlich) Der Name des Filters, an den der $ function_to_add-Callback angehängt werden soll.

$ function_to_add

(aufrufbar) (Erforderlich) Der Rückruf, der ausgeführt werden soll, wenn der Filter angewendet wird.

$ Priorität

(int) (optional) Wird verwendet, um die Reihenfolge anzugeben, in der die einer bestimmten Aktion zugeordneten Funktionen ausgeführt werden. Niedrigere Zahlen entsprechen der früheren Ausführung, und Funktionen mit derselben Priorität werden in der Reihenfolge ausgeführt, in der sie der Aktion hinzugefügt wurden

$ Accepted_args

(int) (Optional) Die Anzahl der Argumente, die die Funktion akzeptiert. Standardwert: 1

Bemerkungen

Die Funktionsweise von Plugins besteht darin, dass WordPress zu verschiedenen Zeitpunkten während der Ausführung von WordPress prüft, ob Plugins registrierte Funktionen zu diesem Zeitpunkt ausgeführt haben. Wenn ja, werden die Funktionen ausgeführt. Diese Funktionen ändern das Standardverhalten von WordPress.

Es gibt zwei Arten von Haken:

Mit Filtern können Sie den Wert eines Datenelements während der Ausführung von WordPress ändern. Callback-Funktionen für Filter werden durch eine Variable geleitet, geändert und anschließend zurückgegeben. Sie sollen isoliert arbeiten und sollten sich nicht auf globale Variablen oder andere Faktoren außerhalb der Funktion auswirken.

Mit Aktionen können Sie dagegen die Arbeitsweise von WordPress erweitern oder ändern. Ihre Callback-Funktion wird an einem bestimmten Punkt in der Ausführung von WordPress ausgeführt

https://riptutorial.com/de/home 138

Page 157: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

und kann Aufgaben ausführen, z. B. die Ausgabe an den Benutzer oder das Einfügen von Objekten in die Datenbank.

Filterreferenz

Aktionsreferenz

Handbuch

Plugin-API

Filter gegen Aktionen

Examples

Filter

add_filter('comment_text','before_comment'); add_filter('comment_text','after_comment'); function before_comment($comment_text){ return 'input before comment'.$comment_text; } function after_comment($comment_text){ return $comment_text.'input after comment'; }

Aktion

add_action('wp_head','hook_javascript'); function hook_javascript() { $output="<script> alert('Page is loading...'); </script>"; echo $output; }

Entwicklungsbeispiele für Plugins: Favorite Song Widget

<?php function wpshout_register_widgets() { register_widget( 'Favorite_Song_Widget'); } add_action( 'widgets_init', 'wpshout_register_widgets' ); class Favorite_Song_Widget extends WP_Widget { function Favorite_Song_Widget() { // Instantiate the parent object parent::__construct( 'favorite_song_widget', // Base ID __('Favorite Song', 'text_domain'), // Name array( 'description' => __( 'Widget for playable favorite song', 'text_domain' ), ) // Args

https://riptutorial.com/de/home 139

Page 158: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

); } function widget( $args, $instance ) { echo $args['before_widget']; echo '<h3>Favorite Song Lists:</h3>'; echo $instance['songinfo']; echo '<a href="' . $instance['link'] . '">Download it</a><br>'; echo $instance['description']; echo $args['after_widget']; } function update($new_abc,$old_abc) { $instance = $old_abc; // Fields $instance['link'] = strip_tags($new_abc['link']); $instance['songinfo'] = strip_tags($new_abc['songinfo']); $instance['description'] = strip_tags($new_abc['description']); return $instance; } // Widget form creation function form($instance) { $link = ''; $songinfo = ''; $description = ''; // Check values if( $instance) { $link = esc_attr($instance['link']); $songinfo = esc_textarea($instance['songinfo']); $description = esc_textarea($instance['description']); } ?> <p> <label for="<?php echo $this->get_field_id('link'); ?>"><?php _e('Link', 'wp_widget_plugin'); ?></label> <input class="widefat" id="<?php echo $this->get_field_id('link'); ?>" name="<?php echo $this->get_field_name('link'); ?>" type="text" value="<?php echo $link; ?>" /> </p> <p> <label for="<?php echo $this->get_field_id('songinfo'); ?>"><?php _e('Song Info:', 'wp_widget_plugin'); ?></label> <input class="widefat" id="<?php echo $this->get_field_id('songinfo'); ?>" name="<?php echo $this->get_field_name('songinfo'); ?>" type="text" value="<?php echo $songinfo; ?>" /> </p> <p> <label for="<?php echo $this->get_field_id('description'); ?>"><?php _e('Description:', 'wp_widget_plugin'); ?></label> <textarea class="widefat" id="<?php echo $this->get_field_id('description'); ?>" name="<?php echo $this->get_field_name('description'); ?>" type="text" value="<?php echo $description; ?>"></textarea> </p> <p><a href="#" id="add-more-tabs"><?php _e('Add More Tabs', 'wp_widget_plugin'); ?></a></p> <?php }

https://riptutorial.com/de/home 140

Page 159: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

}

Plugin-Entwicklung online lesen: https://riptutorial.com/de/wordpress/topic/6108/plugin-entwicklung

https://riptutorial.com/de/home 141

Page 160: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 52: Postformate

Bemerkungen

Die folgenden Postformate stehen Benutzern zur Auswahl zur Verfügung, wenn das Design sie unterstützt.

Beachten Sie, dass sich der tatsächliche Beitragseintrag nicht ändern kann. Das Design kann jedoch diese Benutzerauswahl verwenden, um den Beitrag je nach ausgewähltem Format unterschiedlich anzuzeigen. Beispielsweise könnte ein Thema die Anzeige des Titels für einen "Status" -Posten unterlassen. Wie die Dinge angezeigt werden, hängt vom Thema ab, aber hier sind einige allgemeine Richtlinien.

beiseite - Üblicherweise ohne Titel gestaltet. Ähnlich einem Facebook-Hinweis-Update.•Galerie - Eine Galerie von Bildern. Post enthält wahrscheinlich einen Kurzcode für die Galerie und enthält Bildanhänge.

link - Ein Link zu einer anderen Site. Möglicherweise möchten Themes den ersten Tag im Beitrag als externen Link für diesen Beitrag verwenden. Ein alternativer Ansatz könnte sein, wenn der Beitrag nur aus einer URL besteht, dann ist dies die URL, und der Titel (post_title) ist der Name, der dem Anker dafür angehängt ist.

Bild - Ein einzelnes Bild. Der erste Tag im Beitrag kann als Bild betrachtet werden. Wenn der Beitrag nur aus einer URL besteht, ist dies alternativ die Bild-URL und der Titel des Beitrags (post_title) das Titelattribut für das Bild.

quote - Ein Zitat. Wird wahrscheinlich eine Blockquote enthalten, die den Inhalt des Angebots enthält. Alternativ kann das Zitat nur der Inhalt sein, wobei die Quelle / der Autor der Titel ist.

status - Eine kurze Statusaktualisierung, ähnlich einer Statusaktualisierung von Twitter.•Video - Eine einzelne Video- oder Video-Wiedergabeliste. Das erste Tag oder Objekt / Einbettung im Postinhalt kann als Video betrachtet werden. Alternativ, wenn der Beitrag nur aus einer URL besteht, ist dies die Video-URL. Kann das Video auch als Anhang zum Beitrag enthalten, wenn die Video-Unterstützung im Blog aktiviert ist (z. B. über ein Plugin). Audio - Eine Audiodatei oder Wiedergabeliste. Könnte für Podcasting verwendet werden.

chat - Ein Chatprotokoll•

Examples

Hinzufügen eines Beitragstyps zum Thema

Postformate zu post_type 'page' hinzufügen

add_post_type_support( 'page', 'post-formats' );

Im nächsten Beispiel werden der benutzerdefinierte Beitragstyp "my_custom_post_type" registriert und Postformate hinzugefügt.

https://riptutorial.com/de/home 142

Page 161: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Registrieren Sie den benutzerdefinierten Beitragstyp "my_custom_post_type".

add_action( 'init', 'create_my_post_type' ); function create_my_post_type() { register_post_type( 'my_custom_post_type', array( 'labels' => array( 'name' => __( 'Products' ) ), 'public' => true ) ); }

Postformate zu post_type 'my_custom_post_type' hinzufügen

add_post_type_support( 'my_custom_post_type', 'post-formats' );

Oder fügen Sie in der Funktion register_post_type () "postformates" im Parameterfeld "support" hinzu. Das nächste Beispiel entspricht oben.

Registrieren Sie den benutzerdefinierten Beitragstyp "my_custom_post_type" mit dem Parameter "support"

add_action( 'init', 'create_my_post_type' ); function create_my_post_type() { register_post_type( 'my_custom_post_type', array( 'labels' => array( 'name' => __( 'Products' ) ), 'public' => true, 'supports' => array('title', 'editor', 'post-formats') ) ); }

Theme-Support für den Beitrag hinzufügen

Funktionsaufruf

add_theme_support( 'post-formats' )

Postformate online lesen: https://riptutorial.com/de/wordpress/topic/6075/postformate

https://riptutorial.com/de/home 143

Page 162: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 53: REST-API

Einführung

Die WordPress-REST-API stellt API-Endpunkte für WordPress-Datentypen bereit, mit denen Entwickler mit Websites remote kommunizieren können, indem sie JSON-Objekte (JavaScript Object Notation) senden und empfangen.

Wenn Sie Inhalte an die API senden oder eine Anforderung an sie senden, wird die Antwort in JSON zurückgegeben. Auf diese Weise können Entwickler WordPress-Inhalte aus clientseitigem JavaScript oder aus externen Anwendungen erstellen, lesen und aktualisieren, auch wenn sie in anderen Sprachen als PHP geschrieben sind.

Bemerkungen

Damit dieses einfache WordPress-REST-API-Beispiel für Sie funktioniert, müssen Sie lernen, wie es ausführlicher funktioniert. Offizielle Dokumentation empfiehlt das Erlernen von:

Routen / Endpunkte - Dies sind Zuordnungen einzelner HTTP-Methoden zu Routen, die als "Endpunkte" bezeichnet werden. Sie tun dies mit der Funktion register_rest_route (). Hier finden Sie weitere Informationen zu Routen und Endpunkten .

1.

Anforderungen - Die WordPress-REST-API definiert die WP_REST_Request Klasse, die zum Speichern und Abrufen von Informationen für die aktuelle Anforderung verwendet wird. WP_REST_Request Objekte werden automatisch für Sie generiert, wenn Sie eine HTTP-Anforderung an eine registrierte Route WP_REST_Request . Die in der Anfrage angegebenen Daten bestimmen, welche Antwort Sie wieder aus der API erhalten. Hier erfahren Sie mehr über die Klasse WP_REST_Request .

2.

Antworten - sind die Daten, die Sie von der API erhalten. WP_REST_Response bietet eine Möglichkeit, mit den von Endpunkten zurückgegebenen WP_REST_Response zu interagieren. In Ihrer Endpunktdefinition benennen Sie die Callback-Funktion (Antwort), um Ihre Interaktion zu bedienen. Hier erfahren Sie mehr über die Klasse WP_REST_Response .

3.

Schema - Jeder Endpunkt erfordert und stellt geringfügig andere Datenstrukturen bereit. Diese Strukturen werden im API-Schema definiert. Wenn Sie wartbare, auffindbare und leicht erweiterbare Endpunkte wünschen, wird die Verwendung des Schemas empfohlen. Hier erfahren Sie mehr über das Schema .

4.

Controller-Klassen - sie bringen alle Elemente an einem Ort zusammen. Mit einer Controller-Klasse können Sie die Registrierung von Routen und Endpunkten verwalten, Anforderungen bearbeiten, Schema verwenden und API-Antworten generieren. Sie haben bereits zwei Controller-Klassen WP_REST_Request : WP_REST_Request und WP_REST_Response . Hier erfahren Sie mehr über die Controller-Klassen

5.

Hinweis: Einige dieser Informationen stammen aus dem offiziellen Wordpress-REST-APi-

https://riptutorial.com/de/home 144

Page 163: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Handbuch

Examples

Vollständiges Arbeitsbeispiel

add_action('rest_api_init', 'my_rest_validate_endpoint' ); function my_rest_validate_endpoint() { // Declare our namespace $namespace = 'myrest/v1'; // Register the route // Example URL matching this route: // http://yourdomain/wp-json/myrest/v1/guides/tag=europe/price=29 register_rest_route($namespace, // Using regular expressions we can initially validate the input '/guides/tag=(?P<tag>[a-zA-Z0-9-]+)/price=(?P<price>[0-9]+)', // We can have multiple endpoints for one route array( array( 'methods' => 'GET', 'callback' => 'my_get_guides_handler' ) ), // We can register our schema callback // 'schema' => 'my_get_guide_schema', ); // You can register another route here the same way } // The callback handler for the endpoint function my_get_guides_handler(WP_REST_Request $request) { // Get the parameters: $tag = $request->get_param('tag'); $price = $request->get_param('price'); // Do something with the parameters // for instance: get matching guides from the DB into an array - $results // ... // Prepare the response $message = "We've found " . count($results) . " guides "; $message .= "(searching for a tag: " . $tag . ", with a price tag: " . $price . ")"; // The response gets automatically converted into a JSON format return new WP_REST_Response( array( 'results' => $results, 'message' => $message, 'status' => 'OK' ), 200 );

https://riptutorial.com/de/home 145

Page 164: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

}

REST-API online lesen: https://riptutorial.com/de/wordpress/topic/10645/rest-api

https://riptutorial.com/de/home 146

Page 165: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 54: Seitenleisten

Syntax

register_sidebar ($ args)•get_sidebar (String $ name = null)•

Parameter

Parameter Einzelheiten

$ args(string | array) (Optional) Erstellt eine Seitenleiste basierend auf den name und id Werten

$ name* (Zeichenfolge) (Optional) Der Name der spezialisierten Seitenleiste. Standardwert: null

Bemerkungen

Argumentoptionen sind:

name - Name der Sidebar (Standard: lokalisierte 'Sidebar' und numerische ID) .•id - Sidebar id - Muss in Kleinbuchstaben ohne Leerzeichen angegeben werden (standardmäßig eine numerisch automatisch inkrementierte ID) . Wenn Sie den ID-Argumentwert nicht festlegen, erhalten Sie ab Version 4.2 im Debug-Modus E_USER_NOTICE Nachrichten.

description - Textbeschreibung, was / wo sich die Seitenleiste befindet. Wird auf dem Widget-Verwaltungsbildschirm angezeigt. (Seit 2.9) (Standard: leer)

class - CSS-Klasse, die der Sidebar auf der Admin-Seite Appearance -> Widget zugewiesen werden soll. Diese Klasse wird nur in der Quelle der WordPress Widget-Verwaltungsseite angezeigt. Es wird nicht in das Frontend Ihrer Website aufgenommen. Hinweis : Die sidebar wird dem Klassenwert vorangestellt. Zum Beispiel kann eine Klasse von tal führt in einem Klassenwert von sidebar-tal . (Standardeinstellung: leer) .

before_widget - HTML zu platzieren , bevor jedes Widget (Standard: <li id="%1$s" class="widget %2$s"> ) Hinweis: verwendet sprintf für Variablensubstitution

after_widget - HTML, der nach jedem Widget platziert werden soll (Standardeinstellung: </li>\n ) .

before_title - HTML, der vor jedem Titel platziert werden soll (Standard: <h2 class="widgettitle"> ) .

after_title - HTML, der hinter jedem Titel platziert werden soll (Standard: </h2>\n ) .•

Examples

https://riptutorial.com/de/home 147

Page 166: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Sidebars registrieren

In Ihrer functions.php Sie neue Seitenleisten mit diesem Code registrieren

/** * Registers sidebars * * @param array Array with default or specified array values * @since 1.0.0 */ if ( function_exists( 'register_sidebar' ) ) { register_sidebar( array ( 'name' => esc_html__( 'Primary Sidebar', 'mytheme'), 'id' => 'primary-widget-area', 'description' => esc_html__( 'The Primary Widget Area', 'mytheme'), 'before_widget' => '<div id="%1$s" class="widget %2$s">', 'after_widget' => '</div>', 'before_title' => '<div class="sidebar-widget-heading"><h3>', 'after_title' => '</h3></div>', ) ); register_sidebar( array ( 'name' => esc_html__( 'Secondary Sidebar', 'mytheme'), 'id' => 'secondary-widget-area', 'description' => esc_html__( 'The Secondary Widget Area', 'mytheme'), 'before_widget' => '<div id="%1$s" class="widget %2$s">', 'after_widget' => '</div>', 'before_title' => '<div class="sidebar-widget-heading"><h3>', 'after_title' => '</h3></div>', ) ); }

Sie können beliebig viele Seitenleisten hinzufügen.

Holen Sie sich die Sidebar

Sie können auch eine eigene Sidebar-Datei im Design erstellen, um sie für verschiedene Vorlagen aufzurufen. Kopiere sidebar.php des aktuellen Themes und ändere den Namen (zB sidebar-book.php)

In der Vorlage können Sie diese Seitenleiste mit get_sidebar('book') . Damit können Sie verschiedene Seitenleisten auf verschiedenen Seiten aufrufen.

Seitenleisten online lesen: https://riptutorial.com/de/wordpress/topic/6293/seitenleisten

https://riptutorial.com/de/home 148

Page 167: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 55: Shortcode hinzufügen

Syntax

add_shortcode( $tag , $func );•

Parameter

Parameter Einzelheiten

$ tag(Zeichenfolge) (erforderlich) Shortcode-Tag, das im Post-Inhalt gesucht werden soll

$ func (aufrufbar) (erforderlich) Hook zum Ausführen, wenn Shortcode gefunden wird

Bemerkungen

Dem Shortcode-Callback werden drei Argumente übergeben: die Shortcode-Attribute, der Shortcode-Inhalt (falls vorhanden) und der Name des Shortcodes.

Für jeden Shortcode kann es nur einen Haken geben. Das bedeutet, dass ein anderes Plugin einen ähnlichen Shortcode überschreibt, oder das andere, je nachdem, in welcher Reihenfolge die Plugins enthalten sind und / oder ausgeführt werden.

Shortcode-Attributnamen werden immer in Kleinbuchstaben konvertiert, bevor sie an die Handlerfunktion übergeben werden. Werte sind unberührt.

Beachten Sie, dass die vom Shortcode aufgerufene Funktion niemals irgendeine Ausgabe erzeugen sollte. Shortcode-Funktionen sollten den Text zurückgeben, der zum Ersetzen des Shortcodes verwendet werden soll. Die direkte Ausgabe der Ausgabe führt zu unerwarteten Ergebnissen. Dies ist ähnlich wie das Verhalten von Filterfunktionen, da sie keine erwarteten Nebeneffekte aus dem Aufruf hervorrufen sollten, da Sie nicht steuern können, wann und von wo aus sie aufgerufen werden.

Examples

Einfacher Kurzcode für den letzten Beitrag

add_shortcode ist ein add_shortcode Schlüsselwort.

// recent-posts is going to be our shortcode. add_shortcode('recent-posts', 'recent_posts_function'); // This function is taking action when recent post shortcode is called. function recent_posts_function() { query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'showposts' => 1)); if (have_posts()) : while (have_posts()) : the_post();

https://riptutorial.com/de/home 149

Page 168: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

$return_string = '<a href="'.get_permalink().'">'.get_the_title().'</a>'; endwhile; endif; wp_reset_query(); return $return_string; }

Dieses Snippet kann in Ihrer Theme- functions.php .

[recent-posts] Dies ist der Shortcode für den letzten Post. Wir können diesen Shortcode im Backend anwenden (wie Seiten, Post, Widgets).

Wir können den gleichen Shortcode auch in unserem Code verwenden. mit Hilfe von do_shortcode . Z.B. echo do_shortcode( '[recent-posts]' );

Erweiterter Shortcode für aktuelle Beiträge

Diese Funktion verwendet Parameter für die Anzahl der letzten Beiträge, die Sie anzeigen möchten.

Bsp .: Sie möchten nur fünf aktuelle Beiträge anzeigen. Übergeben Sie einfach die Argumente mit posts = "5" (Sie können eine beliebige Anzahl der letzten Beiträge übergeben, die Sie anzeigen möchten).

Funktion holt nur fünf aktuelle Beiträge aus der Datenbank.

// recent-posts is going to be our shortcode. add_shortcode('recent-posts', 'recent_posts_function'); // Functions takes parameter such as posts="5". function recent_posts_function($atts){ extract(shortcode_atts(array( 'posts' => 1, ), $atts)); $return_string = '<ul>'; query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'showposts' => $posts)); if (have_posts()) : while (have_posts()) : the_post(); $return_string .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>'; endwhile; endif; $return_string .= '</ul>'; wp_reset_query(); return $return_string; }

Z.B. echo do_shortcode( '[recent-posts posts="5"]' );

Shortcode hinzufügen online lesen: https://riptutorial.com/de/wordpress/topic/6580/shortcode-hinzufugen

https://riptutorial.com/de/home 150

Page 169: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 56: Sicherheit in WordPress - Desinfektion

Syntax

sanitize_text_field (Zeichenfolge $ str)•sanitize_title (String $ title, String $ fallback_title, String $ context)•sanitize_email (String $ email)•sanitize_html_class (String $ class, String $ fallback)•sanitize_file_name (String $ name)•sanitize_user (string $ username, boolean $ strict)•

Bemerkungen

Sicherheit sollte bei der Entwicklung immer im Auge behalten werden. Ohne Sicherheit ist eine App offen für verschiedene Angriffe wie SQL-Injektionen, XSS, CSRF, RFI usw., die zu ernsthaften Problemen führen können.

Nicht vertrauenswürdige Daten stammen aus vielen Quellen (Benutzer, Websites Dritter, Ihrer eigenen Datenbank !,!) Und müssen sowohl bei der Eingabe als auch bei der Ausgabe überprüft werden. (Quelle: WordPress-Codex)

Die Daten sollten je nach Verwendung und Zweck validiert, desinfiziert oder entzogen werden.

Validieren bedeutet, sicherzustellen, dass die von Ihnen angeforderten Daten mit den übermittelten Daten übereinstimmen. (Quelle: WordPress-Codex)

Die Bereinigung ist etwas liberaler als ein Ansatz, Benutzerdaten zu akzeptieren. Wir können auf diese Methoden zurückgreifen, wenn es eine Reihe von akzeptablen Eingaben gibt. (Quelle: Wordpress-Codex)

Flucht bedeutet, die Daten, die Sie möglicherweise bereits haben, zu übernehmen und sie vor dem Rendern für den Endbenutzer abzusichern. (Quelle: WordPress-Codex)

Examples

Textfeld desinfizieren

$title = sanitize_text_field( $_POST['title'] );

Titel desinfizieren

Der zurückgegebene Wert ist für die Verwendung in einer URL und nicht als von Menschen lesbarer Titel geeignet. Verwenden Sie stattdessen sanitize_text_field.

https://riptutorial.com/de/home 151

Page 170: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

$new_url = sanitize_title($title);

E-Mail bereinigen

$sanitized_email = sanitize_email(' [email protected]! ');

HTML-Klasse desinfizieren

$post_class = sanitize_html_class( $post->post_title ); echo '<div class="' . $post_class . '">';

Bereinigen Sie den Dateinamen

$incfile = sanitize_file_name($_REQUEST["file"]); include($incfile . ".php");

Ohne den Dateinamen zu bereinigen, kann ein Angreifer einfach http: // attacker_site / malicous_page als Eingabe übergeben und den Code auf Ihrem Server ausführen.

Bereinigen Sie den Benutzernamen

$user = sanitize_user("attacker username<script>console.log(document.cookie)</script>");

$ user value nach der Bereinigung ist "Angreifer-Benutzername"

Sicherheit in WordPress - Desinfektion online lesen: https://riptutorial.com/de/wordpress/topic/6348/sicherheit-in-wordpress---desinfektion

https://riptutorial.com/de/home 152

Page 171: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 57: Sicherheit in WordPress - Flucht

Syntax

esc_html (String $ text)•esc_url (String $ url, Array $ -Protokolle, String $ _context)•esc_js (String $ text)•wp_json_encode (gemischte $ data, int $ options, int $ depth = 512)•esc_attr (String $ text)•esc_textarea (Zeichenfolge $ text)•

Bemerkungen

Sicherheit sollte bei der Entwicklung immer im Auge behalten werden. Ohne Sicherheit ist eine App offen für verschiedene Angriffe wie SQL-Injektionen, XSS, CSRF, RFI usw., die zu ernsthaften Problemen führen können.

Nicht vertrauenswürdige Daten stammen aus vielen Quellen (Benutzer, Websites Dritter, Ihrer eigenen Datenbank !,!) Und müssen sowohl bei der Eingabe als auch bei der Ausgabe überprüft werden. (Quelle: WordPress-Kodex)

Die Daten sollten je nach Verwendung und Zweck validiert, desinfiziert oder entzogen werden.

Validieren bedeutet, sicherzustellen, dass die von Ihnen angeforderten Daten mit den übermittelten Daten übereinstimmen. (Quelle: WordPress-Kodex)

Die Bereinigung ist etwas liberaler als ein Ansatz, Benutzerdaten zu akzeptieren. Wir können auf diese Methoden zurückgreifen, wenn es eine Reihe von akzeptablen Eingaben gibt. (Quelle: WordPress-Kodex)

Flucht bedeutet, die Daten, die Sie möglicherweise bereits haben, zu übernehmen und sie vor dem Rendern für den Endbenutzer abzusichern. (Quelle: WordPress-Kodex)

Examples

Escape-Daten im HTML-Code

Esc_html sollte immer dann verwendet werden, wenn wir Daten im HTML-Code ausgeben.

<h4><?php echo esc_html( $title ); ?></h4>

einer URL entkommen

<a href="<?php echo esc_url( home_url( '/' ) ); ?>">Home</a>

https://riptutorial.com/de/home 153

Page 172: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

<img src="<?php echo esc_url( $user_picture_url ); ?>" />

Escape-Daten in js-Code

esc_js() soll innerhalb eines Tag-Attributs für Inline-JS verwendet werden.

Für Daten innerhalb eines <script> -Tags verwenden Sie wp_json_encode() .

<input type="text" onfocus="if( this.value == '<?php echo esc_js( $fields['input_text'] ); ?>' ) { this.value = ''; }" name="name">

wp_json_encode() kodiert eine Variable in JSON, wobei einige Überprüfungen durchgeführt werden.

Beachten Sie, dass wp_json_encode() die wp_json_encode() Anführungszeichen automatisch enthält.

<?php $book = array( "title" => "JavaScript: The Definitive Guide", "author" => "Stack Overflow", ); ?> <script type="text/javascript"> var book = <?php echo wp_json_encode($book) ?>; /* var book = { "title": "Security in WordPress", "author" => "Stack Overflow", }; */ </script>

oder

<script type="text/javascript"> var title = <?php echo wp_json_encode( $title ); ?>; var content = <?php echo wp_json_encode( $content ); ?>; var comment_count = <?php echo wp_json_encode( $comment_count ); ?>; </script>

Escape-Attribute

<input type="text" value="<?php echo esc_attr($_POST['username']); ?>" />

Escape-Daten im Textbereich

<textarea><?php echo esc_textarea( $text ); ?></textarea>

Sicherheit in WordPress - Flucht online lesen: https://riptutorial.com/de/wordpress/topic/6115/sicherheit-in-wordpress---flucht

https://riptutorial.com/de/home 154

Page 173: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 58: Sichern Sie Ihre Installation

Bemerkungen

WordPress-Websites werden häufig gehackt. In diesem Thema werden Techniken und Verfahren beschrieben, mit denen die Sicherheit Ihrer WordPress-Installation über das hinausgeht, was bei einer Basisinstallation erreicht wird.

Abgesehen von diesem Thema ist die Hardening WordPress Codex-Seite ein weiterer guter Ort, um zu erfahren, wie Sie eine WordPress-Installation sichern.

Examples

Deaktivieren Sie den Datei-Editor

Der mit WordPress gelieferte Datei-Editor ist ein Sicherheitsrisiko. Wenn ein Angreifer Administratorzugriff auf Ihre WordPress-Website erhält, kann er leicht Schadcode in Motiv- und Plugin-Dateien einfügen. Es ist auch ein Risiko für Kunden, die nicht wissen, was sie tun. Wenn der Doppelpunkt im Datei-Editor falsch platziert ist, kann er eine Website beschädigen und sie vom Browser aus nicht zugänglich machen.

Deaktivieren Sie in Ihrer WordPress wp-config.php Datei " wp-config.php den Datei-Editor, indem Sie die folgende Codezeile hinzufügen.

define( 'DISALLOW_FILE_EDIT', true );

Diese Linie wird die gewünschte Wirkung hat , wenn zu Ihrem Thema in dem Nachspiel functions.php zu Datei , aber es ist besser, hinzuzufügen wp-config.php .

Wenn Sie WordPress CLI zur Installation von WordPress verwenden, können Sie den folgenden Befehl zum Erstellen einer Datei wp-config.php mit deaktivierter Dateibearbeitung verwenden.

/* declare variables beforehand or substitute strings in */ wp core config --dbname="$MYSQL_DBNAME" --dbuser="$MYSQL_USERNAME" --dbpass="$MYSQL_PASS" --dbprefix="$WP_DBPREFIX"_ --locale=en_AU --extra-php <<PHP define( 'DISALLOW_FILE_EDIT', true ); PHP

Diese Methode ist nützlich, wenn Sie WordPress mit einem Skript installieren.

Verschiebe wp-config.php

Die vertraulichsten Informationen einer WordPress-Installation werden in der Datei wp-config.php gespeichert. Wenn ein Hacker Zugriff auf diese Datei erhält, hat er die vollständige Kontrolle über Ihre Website.

https://riptutorial.com/de/home 155

Page 174: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Standardmäßig ist wp-config.php im WordPress-Installationsordner gespeichert. Um das Stehlen dieser Datei zu erschweren, können Sie sie aus dem Webordner verschieben. Wenn Sie nur einen Ordner darüber verschieben, findet WordPress ihn automatisch. Wenn Sie wp-config.php an einen anderen Speicherort verschieben, erstellen wp-config.php im WordPress-Installationsordner eine leere Datei mit dem Namen wp-config.php . Dann füge folgendes hinzu:

define('ABSPATH', dirname(__FILE__) . '/'); // '../../wp-config.php' defines location two folders above installation folder. // Substitute with actual location of wp-config.php file as necessary. require_once(ABSPATH . '../../wp-config.php');

Möglicherweise müssen Sie php in dem Ordner, in dem Sie die Datei wp-config.php ablegen, ausführbar machen. Sie sollten php in so wenigen Ordnern wie möglich ausführen. Ein gutes System setzt die WordPress-Installation in /path/to/wordpress/install/ und die config in /path/to/wordpress/config . Stellen Sie sicher, dass der Konfigurationsordner nicht über das Internet erreichbar ist, und platzieren Sie keine anderen vertraulichen Informationen in /path/to/ oder höher in der Ordnerhierarchie. In diesem Fall schreiben Sie eine Zeile ähnlich der folgenden in Ihre php.ini :

open_basedir = "/path/to/wordpress/install/;/path/to/wordpress/config"

Diese Technik ist umstritten und einige Leute glauben nicht, dass sie die Sicherheit erhöht. Ausführliche Informationen zu diesem Thema finden Sie unter dieser WordPress StackExchange-Frage .

Legen Sie ein benutzerdefiniertes Präfix für WordPress-Tabellen fest

Wenn Sie WordPress auf Ihrem Server installieren, wird das Installationsskript vor allen WordPress MySQL-Tabellennamen mit einem Präfix versehen. Dieses Präfix ist standardmäßig auf 'wp_' gesetzt. Die WordPress-Posts-Tabelle wird beispielsweise als " wp_posts . Durch das Ändern des Tabellenpräfixes können Sie Sicherheit durch Unschärfe schaffen. Wenn ein Hacker SQL-Injection-Angriffe versucht, muss er auf diese Weise das Präfix Ihrer Tabelle erraten und nicht nur "wp_" verwenden. Sie können dieses Präfix beliebig einstellen.

Präfix in der neuen WordPress-Installation festlegen

Wenn Sie eine bekannte 5-Minuten-Installation verwenden, ändern Sie das Präfix während der Installation im Feld.

https://riptutorial.com/de/home 156

Page 175: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Bei der Installation über WordPress-CLI verwenden Sie den folgenden Befehl:

// set other variables above, or substitute your strings in. WP_DBPREFIX=foo wp core config --dbname="$MYSQL_DBNAME" --dbuser="$MYSQL_USERNAME" --dbpass="$MYSQL_PASS" --dbprefix="$WP_DBPREFIX"_ --locale=en_AU

Ändern Sie das Präfix in der vorhandenen Installation

Das Ändern des Präfixes ist etwas schwieriger. Verwenden Sie zunächst ein FTP-Programm wie FileZilla, um die Datei wp-config.php zu bearbeiten. Ändern Sie den Eintrag $table_prefix = 'wp_'; zu $table_prefix = 'foo_'; Ersetzen Sie "foo" für Ihr gewünschtes Präfix.

Als nächstes müssen wir die Datenbank bearbeiten. Wenn Sie Zugriff auf phpMyAdmin haben, melden Sie sich an und führen Sie folgende Schritte aus:

Wählen Sie die WordPress-Datenbank aus •

https://riptutorial.com/de/home 157

Page 176: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Wählen Sie alle Tabellen aus und wählen Sie in der Dropdown-Liste das Tabellenpräfix

ersetzen aus.

In "Von" geben Sie "wp_" ein. Geben Sie unter "An" Ihr Präfix ein, in diesem Beispiel "foo_", und drücken Sie "Senden".

Tabellen sollten jetzt so aussehen: •

https://riptutorial.com/de/home 158

Page 177: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Wenn Sie phpMyAdmin nicht verwenden können, verwenden Sie den folgenden MySQL-Befehl:

RENAME table `wp_comments` TO `foo_comments`

Sie müssen diesen Befehl für jede Tabelle ausführen und die anderen Tabellennamen durch "Kommentare" ersetzen.

Als nächstes müssen wir einige Einträge in einigen Tabellen ändern. Führen Sie diese Abfrage für die Tabelle 'foo_options' aus

SELECT * FROM foo_options WHERE option_name LIKE '%user_roles%'

Ein Eintrag mit option_name von 'wp_user_roles' sollte erscheinen. Ändern Sie in diesem Eintrag den Eintrag 'option_name' von wp_user_roles in foo_user_roles .

Dann öffne die 'foo_usermeta' Tabelle und finde jeden Eintrag mit 'wp_' an der Vorderseite.

und ändern Sie es in 'foo_'. Die Anzahl der Einträge, die Sie ändern müssen, hängt davon ab, wie viele Benutzer Sie haben.

https://riptutorial.com/de/home 159

Page 178: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Das sollte alles sein, um das Präfix in einer vorhandenen Installation zu ändern

Sichern Sie Ihre Installation online lesen: https://riptutorial.com/de/wordpress/topic/7594/sichern-sie-ihre-installation

https://riptutorial.com/de/home 160

Page 179: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 59: Standortmigration

Syntax

OLD_SITE - Die alte Site, die migriert wird (zB: http: // localhost / example)•NEW_SITE - Die neue Website, zu der migriert werden soll (zB: https://example.com)•

Examples

Aktualisieren der Tabellen mit einer neuen URL

UPDATE wp_options SET option_value = replace(option_value, 'OLD_SITE, 'NEW_SITE') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_posts SET guid = replace(guid, 'OLD_SITE','NEW_SITE'); UPDATE wp_posts SET post_content = replace(post_content, 'OLD_SITE', 'NEW_SITE');

Standortmigration online lesen: https://riptutorial.com/de/wordpress/topic/9610/standortmigration

https://riptutorial.com/de/home 161

Page 180: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 60: Taxonomien

Syntax

register_taxonomy ($ taxonomy, $ object_type, $ args);•

Parameter

Parameter Einzelheiten

$ Taxonomie

(Zeichenfolge) (erforderlich) Der Name der Taxonomie. Der Name sollte nur Kleinbuchstaben und den Unterstrich enthalten und darf nicht länger als 32 Zeichen sein (Einschränkung der Datenbankstruktur).

$ object_type

(array / string) (erforderlich) Name des Objekttyps für das Taxonomieobjekt. Objekttypen können eingebaute Posttypen oder beliebige benutzerdefinierte Posttypen sein, die möglicherweise registriert sind.

$ args (array / string) (optional) Ein Array von Argumenten.

Examples

Beispiel für die Registrierung einer Taxonomie für Genres

<?php // hook into the init action and call create_book_taxonomies when it fires add_action( 'init', 'create_book_taxonomies', 0 ); // create taxonomy genres for the post type "book" function create_book_taxonomies() { // Add new taxonomy, make it hierarchical (like categories) $labels = array( 'name' => _x( 'Genres', 'taxonomy general name' ), 'singular_name' => _x( 'Genre', 'taxonomy singular name' ), 'search_items' => __( 'Search Genres' ), 'all_items' => __( 'All Genres' ), 'parent_item' => __( 'Parent Genre' ), 'parent_item_colon' => __( 'Parent Genre:' ), 'edit_item' => __( 'Edit Genre' ), 'update_item' => __( 'Update Genre' ), 'add_new_item' => __( 'Add New Genre' ), 'new_item_name' => __( 'New Genre Name' ), 'menu_name' => __( 'Genre' ), ); $args = array( 'hierarchical' => true, 'labels' => $labels, 'show_ui' => true,

https://riptutorial.com/de/home 162

Page 181: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

'show_admin_column' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'genre' ), ); register_taxonomy( 'genre', array( 'book' ), $args ); } ?>

Sie können benutzerdefinierte Taxonomien in der Vorlagendatei functions.php eines Themas definieren:

Kategorie auf Seite hinzufügen

Sie können dieselbe benutzerdefinierte Taxonomie auch in die Beitragstypseite einfügen, indem Sie den folgenden Code verwenden.

function add_taxonomies_to_pages() { register_taxonomy_for_object_type( 'genre', 'page' ); } add_action( 'init', 'add_taxonomies_to_pages' );

Fügen Sie obigen Code in die Datei functions.php Ihres Themas ein. Auf post_tag Art und Weise können Sie benutzerdefinierte post_tag Post- post_tag Seite hinzufügen.

Um Seiten mit benutzerdefinierten Taxonomie-Abfragen abzurufen, müssen Sie in derselben Datei den folgenden Code hinzufügen.

if ( ! is_admin() ) { add_action( 'pre_get_posts', 'category_and_tag_archives' ); } function category_and_tag_archives( $wp_query ) { $my_post_array = array('page'); if ( $wp_query->get( 'category_name' ) || $wp_query->get( 'cat' ) ) $wp_query->set( 'post_type', $my_post_array ); }

Fügen Sie Kategorien und Tags Seiten hinzu und fügen Sie sie als Klasse ein

// add tags and categories to pages function add_taxonomies_to_pages() { register_taxonomy_for_object_type( 'post_tag', 'page' ); register_taxonomy_for_object_type( 'category', 'page' ); } add_action( 'init', 'add_taxonomies_to_pages' ); if ( ! is_admin() ) { add_action( 'pre_get_posts', 'category_and_tag_archives' ); } function category_and_tag_archives( $wp_query ) { $my_post_array = array('post','page');

https://riptutorial.com/de/home 163

Page 182: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

if ( $wp_query->get( 'category_name' ) || $wp_query->get( 'cat' ) ) $wp_query->set( 'post_type', $my_post_array ); if ( $wp_query->get( 'tag' ) ) $wp_query->set( 'post_type', $my_post_array ); } // add tags and categorys as class to <body> function add_categories_and_tags( $classes = '' ) { if( is_page() ) { $categories = get_the_category(); foreach( $categories as $category ) { $classes[] = 'category-'.$category->slug; } $tags = get_the_tags(); foreach( $tags as $tag ) { $classes[] = 'tag-'.$tag->slug; } } return $classes; } add_filter( 'body_class', 'add_categories_and_tags' );

Fügen Sie Kategorien und Tags Seiten hinzu und fügen Sie sie als Klasse ein

Sie können diesen Code zu Ihrer benutzerdefinierten Datei "functions.php" hinzufügen:

// add tags and categories to pages function add_taxonomies_to_pages() { register_taxonomy_for_object_type( 'post_tag', 'page' ); register_taxonomy_for_object_type( 'category', 'page' ); } add_action( 'init', 'add_taxonomies_to_pages' ); if ( ! is_admin() ) { add_action( 'pre_get_posts', 'category_and_tag_archives' ); } function category_and_tag_archives( $wp_query ) { $my_post_array = array('post','page'); if ( $wp_query->get( 'category_name' ) || $wp_query->get( 'cat' ) ) $wp_query->set( 'post_type', $my_post_array ); if ( $wp_query->get( 'tag' ) ) $wp_query->set( 'post_type', $my_post_array ); } // add tags and categorys as class to <body> function add_categories_and_tags( $classes = '' ) { if( is_page() ) { $categories = get_the_category(); foreach( $categories as $category ) { $classes[] = 'category-'.$category->slug;

https://riptutorial.com/de/home 164

Page 183: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

} $tags = get_the_tags(); foreach( $tags as $tag ) { $classes[] = 'tag-'.$tag->slug; } } return $classes; } add_filter( 'body_class', 'add_categories_and_tags' );

Funktioniert perfekt, getestet in WordPress 4.8

Taxonomien online lesen: https://riptutorial.com/de/wordpress/topic/5943/taxonomien

https://riptutorial.com/de/home 165

Page 184: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 61: template_include

Parameter

Parameter Erläuterung

$template

Übergibt einen Filter an den Filter. $template ist der aktuelle Pfad zur entsprechenden Datei für den Beitragstyp, wie er im aktiven untergeordneten Thema oder im übergeordneten Thema gefunden wird (wenn kein untergeordnetes Thema oder untergeordnetes Thema über niedrigere Vorlagen verfügt. Siehe Wordpress-Vorlagenhierarchie.) für mehr Details).

Bemerkungen

Sie müssen $template auch dann zurückgeben, wenn Sie sie nicht ändern. Wenn dies Sie verwirrt, schauen Sie sich Beispiele an, in denen apply_filter() im Code verwendet wurde

Sie sollten hier keine Variablen für die spätere Verwendung einrichten, dafür gibt es bessere Haken.

Ein nützlicher Programmablauf für diesen Filter ist:

Check $template beinhaltet unseren benutzerdefinierten Beitragstypnamen -> Vorlagenhierarchie !!

1.

Wenn nicht, suchen Sie in unserem Plugin nach geeigneten Dateien -> Es ist besser, auf bestimmte Dateien zu verweisen, anstatt Ordner nach Dateien zu durchsuchen. Effizienter. Aber ganz dem Entwickler überlassen.

2.

Schicke die Vorlage zurück.3.

Examples

Einfaches Beispiel

Dieser Filter ist sehr nützlich. Ein häufiges Problem für Entwickler ist das Einbinden von Vorlagen in von ihnen entwickelte Plugins.

Der Filter wird sofort angewendet, nachdem WordPress die entsprechende Vorlage im aktiven Child / Parent-Design mithilfe der WP-Hierarchie gefunden hat.

Achten Sie darauf, zu definieren, wann Sie den Vorlagenpfad ändern möchten. Im folgenden Beispiel prüft der Code, ob die aktuelle Seite die Einzelansicht unseres benutzerdefinierten Beitragstyps " cpt .

Ein einfaches Beispiel zum Einstieg!

https://riptutorial.com/de/home 166

Page 185: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

add_filter('template_include', 'custom_function'); function custom_function($template){ //change a single post template... if( is_singular('cpt') ){ $template= 'path/to/another/template_file'; } return $template; }

Mehr Adv Beispiel

add_filter('template_include', 'custom_function'); function custom_function($template){ /* * This example is a little more advanced. * It will check to see if $template contains our post-type in the path. * If it does, the theme contains a high level template e.g. single-cpt.php * If not we look in the plugin parent folder for the file. e.g. single-cpt.php */ //check to see if the post type is in the filename (high priority file) //return template if it is! global $post; if( strpos($template, 'single-'.$post->post_type.'php' ) !== false && strpos($template, 'archive-'.$post->post_type.'php' ) !== false ){ return $template; } $plugin_path = 'var/etc/wp-content/plugins/plugin'; //include own logic here... if( is_singular($post->post_type) && file_exists($plugin_path.'/single-'.$post->post_type.'.php') ){ $template= $plugin_path.'/single-'.$post->post_type.'.php'; } elseif ( is_archive($post->post_type) && file_exists($plugin_path.'/archive-'.$post->post_type.'.php') ) { $template= $plugin_path.'/archive-'.$post->post_type.'.php'; } return $template; }

template_include online lesen: https://riptutorial.com/de/wordpress/topic/1439/template-include

https://riptutorial.com/de/home 167

Page 186: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 62: Themes

Einführung

WordPress-Themes sind das Frontend Ihrer Website. Sie sehen die Leute, wenn sie die Site besuchen. Es gibt Tausende von Themen zur Auswahl, kostenpflichtige und kostenlose Versionen. Sie können sogar ein eigenes benutzerdefiniertes Design mit nur wenigen erforderlichen Dateien erstellen.

Examples

WordPress-Themes

Wie wählt man ein Thema aus?

Jede WordPress-Installation enthält ein vorinstalliertes Design. Sie verwalten Ihre Designs über das Dashboard. Gehen Sie zu Darstellung> Designs, um die Designs zu installieren, in der Vorschau anzuzeigen, zu löschen, zu aktivieren und zu aktualisieren. Das aktuelle Thema befindet sich in der oberen linken Ecke dieses Menüs.

Wenn Sie den Mauszeiger über das Motiv bewegen, wird die Schaltfläche "Motivdetails" angezeigt. Diese Schaltfläche enthält Informationen zum Thema, z. B. Version und Beschreibung. Wenn Sie auf das aktuelle Motivbild klicken, können Sie bestimmte Themeneinstellungen wie den Titel anpassen.

Update verfügbar

Wenn Updates für installierte Designs verfügbar sind, erhalten Sie eine Meldung, die Sie darüber informiert, dass eine neue Version verfügbar ist. Sie sollten jetzt die neuen Versionsdetails anzeigen oder aktualisieren können.

Versionsdetails anzeigen

Wenn Sie auf den Link Versionsdetails klicken, gelangen Sie zu einer Seite aus dem WordPress Theme Directory. Hier finden Sie die Details für die Upgrade-Version.

Jetzt aktualisieren

Wenn Sie auf den Link "Update jetzt" klicken, wird das Design-Upgrade installiert. Designs können auch über den Bildschirm Administration> Dashboard> Updates aktualisiert werden.

Neben dem aktuellen Thema werden auf dem Bildschirm zum Verwalten von Designs auch die anderen Designs angezeigt, die installiert sind, aber derzeit inaktiv sind. Jedes Theme wird durch einen kleinen Screenshot dargestellt. Wenn Sie den Mauszeiger über diese Bilder bewegen, werden die Schaltflächen "Motivdetails", "Aktivieren" und "Live-Vorschau" angezeigt. Sie können

https://riptutorial.com/de/home 168

Page 187: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

auch inaktive Themen von dieser Seite aus aktualisieren oder löschen. Auf jeder Seite dieses Bildschirms werden bis zu 15 Theme-Screenshots gleichzeitig angezeigt.

aktivieren Sie

Durch Klicken auf diesen Link wird dies zum aktuellen Thema.

Live Vorschau

Wenn Sie auf diesen Link klicken, wird eine Vorschau des Blogs mit dieser bestimmten Designversion angezeigt.

Löschen

Wenn Sie auf diesen Link klicken, wird dieses Design vollständig gelöscht, einschließlich aller Designdateien und -ordner. Alles, was nicht gesichert ist, geht für immer verloren.

Update verfügbar

Siehe den Abschnitt Update verfügbar.

Installieren Sie Themes

Nachfolgend finden Sie mehrere Möglichkeiten, Themes zu installieren:

Automatisiertes Design-Installationsprogramm

Dies kann verwendet werden, um Designs aus dem WordPress-Theme-Verzeichnis zu installieren. Wechseln Sie zu Verwaltung> Darstellung> Designs, um den Bildschirm Erscheinungsbilder zu finden. Klicken Sie auf die Schaltfläche Neu hinzufügen. Von hier aus findest du zu verwendende Themen, die frei von Änderungen sind. Am oberen Rand dieses Bildschirms gibt es eine Suchfunktion mit drei verfügbaren Methoden, um ein neues Thema zu finden. Filter-, Schlüsselwort- und Attributsuche.

Verwenden der Upload-Methode

Die Upload-Methode installiert ein Design über eine ZIP-Datei. Alle Designs im WordPress-Theme-Verzeichnis können auf diese Weise installiert werden. Besuchen Sie nach dem Herunterladen der ZIP-Datei Administration> Darstellung> Designs und klicken Sie auf die Schaltfläche Neu hinzufügen. Klicken Sie anschließend auf den Link "Design hochladen". Suchen Sie nach der ZIP-Datei und klicken Sie auf Jetzt installieren. Um das aktuelle Design fertigzustellen, klicken Sie auf den Link Aktivieren.

Verwenden der FTP-Methode

Um ein Theme mit der FTP-Methode zu installieren, müssen Sie zunächst die Theme-Dateien auf Ihren lokalen Computer herunterladen. Extrahieren Sie den Inhalt der ZIP-Datei, wobei die Dateistruktur beibehalten wird, und fügen Sie sie einem neuen Ordner hinzu. Wenn Sie Anweisungen vom Theme-Autor erhalten, befolgen Sie diese unbedingt.

https://riptutorial.com/de/home 169

Page 188: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Verwenden Sie einen FTP-Client, um auf den Webserver Ihrer Site zuzugreifen. Fügen Sie die hochgeladenen Theme-Dateien Ihrem von WordPress bereitgestellten Verzeichnis wp-content / themes hinzu. Erstellen Sie ggf. einen Ordner, der Ihr neues Design im Verzeichnis wp-content / themes enthält. Ein Beispiel dafür wäre, wenn Ihr Theme "Test" heißt, sollte es in "wp-content / themes / test" leben.

Gehen Sie zu Administration> Darstellung> Designs und klicken Sie auf den Link Aktivieren, und wählen Sie das Design als aktuelles Design aus.

Mit cPanel installieren

cPanel Control Panels bieten eine weitere Methode zum Installieren von Themes mit ZIP- oder GZ-Dateien. Wechseln Sie im cPanel Manager zu WordPress, wenn WordPress installiert ist. Der Pfad würde ähnlich aussehen wie 'public_html / wp-content / themes'. Klicken Sie auf Datei hochladen und laden Sie die ZIP-Datei hoch. Wählen Sie die ZIP-Datei in cPanel aus und klicken Sie rechts im Fenster auf Dateiinhalte extrahieren, um die Datei zu dekomprimieren.

Gehen Sie zu Administration> Darstellung> Designs und klicken Sie auf den Link Aktivieren, und wählen Sie das Design als aktuelles Design aus.

Alle oben aufgeführten Informationen entsprechen dem WordPress-Codex. Es wurde der Kürze halber gekürzt. Das ursprüngliche Quellmaterial finden Sie hier . Weitere Informationen finden Sie unter codex.wordpress.org .

Erstellen eines benutzerdefinierten Designs

Diese Anweisungen erstellen ein sehr einfaches, mit Mindeststandards kompatibles WordPress-Theme.

Der erste Schritt ist das Erstellen eines neuen Designordners in Ihrem WordPress-Themerverzeichnis. Der richtige Pfad lautet:> wp-content> themes> Um ein gültiges Design zu erstellen, benötigen WordPress-Themes mindestens diese beiden Dateien:

index.php•

style.css•

Ihr Stylesheet sollte einen Kommentar enthalten, der WordPress darauf hinweist, dass hier ein Design vorhanden ist.

/* Theme Name: <theme name> Author: <author name> Description: <description goes here> Version: <theme version #> Tags: <tag to id theme> */

Ihr Design wurde erstellt. Gehen Sie zum WordPress-Dashboard und klicken Sie auf Darstellung>

https://riptutorial.com/de/home 170

Page 189: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Designs, um es zu aktivieren.

Themes online lesen: https://riptutorial.com/de/wordpress/topic/8967/themes

https://riptutorial.com/de/home 171

Page 190: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 63: Version von Wordpress und Stylesheets entfernen

Einführung

Um es anderen zu erschweren, Ihre Website zu hacken, können Sie die WordPress-Versionsnummer von Ihrer Website, Ihren CSS und JS entfernen. Ohne diese Nummer ist es nicht möglich zu sehen, ob Sie nicht die aktuelle Version ausführen, um Fehler aus älteren Versionen auszunutzen.

Darüber hinaus kann die Ladegeschwindigkeit Ihrer Website verbessert werden, da die css- und js-Dateien ohne Abfragezeichenfolgen in der URL zwischengespeichert werden können.

Syntax

add_filter ($ tag, $ function_to_add, $ Priorität, $ akzeptierte_args)•

Parameter

Parameter Einzelheiten

$ tag(Zeichenfolge erforderlich) Name des Filters, mit dem $ function_to_add verbunden ist

$ function_to_add

(aufrufbar erforderlich) Name der Funktion, die ausgeführt wird, wenn der Filter angewendet wird

$ Priorität(int optional) Platz von $ function_to_add zwischen anderen Funktionen in einer Aktion (Standard = 10)

$ Accepted_args(int optional) Anzahl der Parameter, die $ function_to_add akzeptiert (Standard = 1)

Bemerkungen

Soll die Geschwindigkeit und Sicherheit der Website verbessern.

Examples

Entfernen Sie die Versionsnummern von css / js

Fügen Sie diese Funktion einfach zu Ihrer functions.php hinzu. Es entfernt die Version aus allen in

https://riptutorial.com/de/home 172

Page 191: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

die Warteschlange gestellten Js- und CSS-Dateien.

function remove_cssjs_ver( $src ) { if( strpos( $src, '?ver=' ) ) $src = remove_query_arg( 'ver', $src ); return $src; } add_filter( 'style_loader_src', 'remove_cssjs_ver', 999 ); add_filter( 'script_loader_src', 'remove_cssjs_ver', 999 );

Versionsnummern aus WordPress entfernen

Wenn Sie dies zu Ihrer functions.php hinzufügen, wird die WordPress-Versionsnummer aus dem RSS-Feed und dem Header entfernt.

function remove_wordpress_ver() { return ''; } add_filter('the_generator', 'remove_wordpress_ver', 999);

Version von Wordpress und Stylesheets entfernen online lesen: https://riptutorial.com/de/wordpress/topic/6218/version-von-wordpress-und-stylesheets-entfernen

https://riptutorial.com/de/home 173

Page 192: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 64: Vorlage für benutzerdefinierten Beitragstyp erstellen

Examples

Erstellen einer benutzerdefinierten Vorlage für das Buch "Benutzerdefiniertes Post"

Um eine Vorlage für die einzelnen Posts unseres benutzerdefinierten Posts erstellen zu können, müssen Sie eine Datei mit dem Namen single- post_type_name .php erstellen, wobei post_type_name der Name unseres benutzerdefinierten Posts ist.

Zum Beispiel wird , wenn unser eigene Post - Typ „Bücher“ genannt, müssen wir eine PHP - Datei mit dem Namen Single Buch .php erstellen. Beachten Sie, dass wir den eindeutigen Namen unseres benutzerdefinierten Beitragstyps verwendet haben.

Kopieren Sie den Inhalt der Datei "single.php" aus dem Ordner "themes", fügen Sie ihn in die neue Vorlage ein und speichern Sie sie. Anschließend wird die Vorlage auf die individuelle Seite des benutzerdefinierten Beitragstyps angewendet.

Benutzerdefinierte Beitragstypvorlagen

Benutzerdefiniertes Beitragstyp-Archiv:

Um eine has_archive für einen benutzerdefinierten Beitragstyp zu erstellen, müssen Sie das Argument has_archive in Ihrer Funktion register_post_type() auf true . Im folgenden Beispiel wird ein benutzerdefinierter Beitragstyp für einen Ereignisbeitragstyp erstellt.

add_action( 'init', 'create_events_post_type' ); function create_events_post_type() { register_post_type( 'event', array( 'labels' => array( 'name' => __( 'Events' ), 'singular_name' => __( 'Event' ) ), 'public' => true, 'has_archive' => true, ) ); }

Um eine Vorlage für neue benutzerdefinierte Beitragstypen zu erstellen, müssen Sie eine neue Vorlagendatei erstellen. Um eine Vorlage für die einzelnen single-{post_type}.php zu erstellen, würden Sie sie als single-{post_type}.php und archive-{post_type}.php für das Archiv bezeichnen.

https://riptutorial.com/de/home 174

Page 193: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Der Dateiname für unsere archive-event.php und für die Ereignisseite wäre es single-event.php . Beide Dateien sollten sich im Stammverzeichnis des Designs befinden.

Ein Beispiel für eine Archivvorlage würde so aussehen. Aus dem 20-jährigen Thema gezogen .

<?php /** * The template for displaying archive pages * * @link https://codex.wordpress.org/Template_Hierarchy * * @package WordPress * @subpackage Twenty_Seventeen * @since 1.0 * @version 1.0 */ get_header(); ?> <div class="wrap"> <?php if ( have_posts() ) : ?> <header class="page-header"> <?php the_archive_title( '<h1 class="page-title">', '</h1>' ); the_archive_description( '<div class="taxonomy-description">', '</div>' ); ?> </header><!-- .page-header --> <?php endif; ?> <div id="primary" class="content-area"> <main id="main" class="site-main" role="main"> <?php if ( have_posts() ) : ?> <?php /* Start the Loop */ while ( have_posts() ) : the_post(); /* * Include the Post-Format-specific template for the content. * If you want to override this in a child theme, then include a file * called content-___.php (where ___ is the Post Format name) and that will be used instead. */ get_template_part( 'template-parts/post/content', get_post_format() ); endwhile; the_posts_pagination( array( 'prev_text' => twentyseventeen_get_svg( array( 'icon' => 'arrow-left' ) ) . '<span class="screen-reader-text">' . __( 'Previous page', 'twentyseventeen' ) . '</span>', 'next_text' => '<span class="screen-reader-text">' . __( 'Next page', 'twentyseventeen' ) . '</span>' . twentyseventeen_get_svg( array( 'icon' => 'arrow-right' ) ), 'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page', 'twentyseventeen' ) . ' </span>', ) ); else :

https://riptutorial.com/de/home 175

Page 194: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

get_template_part( 'template-parts/post/content', 'none' ); endif; ?> </main><!-- #main --> </div><!-- #primary --> <?php get_sidebar(); ?> </div><!-- .wrap --> <?php get_footer();

Individuelle Post Type Einzelvorlage:

Hier ist ein Beispiel für eine einzelne Vorlage. Aus dem 20-jährigen Thema gezogen .

<?php /** * The template for displaying all single posts * * @link https://developer.wordpress.org/themes/basics/template-hierarchy/#single-post * * @package WordPress * @subpackage Twenty_Seventeen * @since 1.0 * @version 1.0 */ get_header(); ?> <div class="wrap"> <div id="primary" class="content-area"> <main id="main" class="site-main" role="main"> <?php /* Start the Loop */ while ( have_posts() ) : the_post(); get_template_part( 'template-parts/post/content', get_post_format() ); // If comments are open or we have at least one comment, load up the comment template. if ( comments_open() || get_comments_number() ) : comments_template(); endif; the_post_navigation( array( 'prev_text' => '<span class="screen-reader-text">' . __( 'Previous Post', 'twentyseventeen' ) . '</span><span aria-hidden="true" class="nav-subtitle">' . __( 'Previous', 'twentyseventeen' ) . '</span> <span class="nav-title"><span class="nav-title-icon-wrapper">' . twentyseventeen_get_svg( array( 'icon' => 'arrow-left' ) ) . '</span>%title</span>', 'next_text' => '<span class="screen-reader-text">' . __( 'Next Post', 'twentyseventeen' ) . '</span><span aria-hidden="true" class="nav-subtitle">' . __( 'Next', 'twentyseventeen' ) . '</span> <span class="nav-title">%title<span class="nav-title-icon-wrapper">' . twentyseventeen_get_svg( array( 'icon' => 'arrow-right' ) ) . '</span></span>', ) );

https://riptutorial.com/de/home 176

Page 195: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

endwhile; // End of the loop. ?> </main><!-- #main --> </div><!-- #primary --> <?php get_sidebar(); ?> </div><!-- .wrap --> <?php get_footer();

In beiden Vorlagenbeispielen werden Partials gezogen , um den inneren Inhalt anzuzeigen.

Wenn Ihr untergeordnetes / übergeordnetes Design eine einzelne / Archivvorlage hat, sollten Sie diesen Code als Vorlage für Ihre neuen Vorlagen verwenden.

Vorlage für benutzerdefinierten Beitragstyp erstellen online lesen: https://riptutorial.com/de/wordpress/topic/6390/vorlage-fur-benutzerdefinierten-beitragstyp-erstellen

https://riptutorial.com/de/home 177

Page 196: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 65: Vorlagenhierarchie

Bemerkungen

Plugins zum Debuggen in WordPress:

https://wordpress.org/plugins/query-monitor/•https://wordpress.org/plugins/debug-bar/•https://wordpress.org/plugins/debug-bar-console/•https://wordpress.org/plugins/kint-debugger/•https://wordpress.org/plugins/rest-api-console/•

Examples

Einführung

Eines der wichtigsten Dinge, die Sie lernen sollten, wenn Sie ein WordPress-Theme erstellen, ist die Hierarchie der WordPress-Vorlagen für Designs. Die Vorlagenhierarchie definiert, welche Vorlagendatei für jede Anforderung in welcher Reihenfolge geladen wird. Wenn die erste Vorlage in der Hierarchie nicht vorhanden ist, versucht WordPress, die nächste Vorlage usw. zu laden, bis Sie in index.php enden.

Um die Vorlagenhierarchie detailliert zu beschreiben, ist es natürlich am besten, ein Bild mit der vollen Struktur zu verwenden:

https://riptutorial.com/de/home 178

Page 197: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Die Vorlagenhierarchie beginnt mit den primären Seitentypen wie Archiv, einzelne Seite oder StarDanach finden wir die tatsächlichen Vorlagen, die geladen werden. Erstens gibt es die spezifischs

Zum Beispiel category-$slug.php

https://riptutorial.com/de/home 179

Page 198: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

, die nur die Kategorie mit einem bestimmten Slug Ziele, beispielsweise category-books.php würde nur für die Kategorie mit der Schnecke verwendet wird book . Ein anderes Beispiel ist page-$id.php , das nur auf eine Seite mit einer bestimmten ID page-41.php Zum Beispiel würde page-41.php nur auf die Seite mit der ID 41 page-41.php .

Nach den Templates, die auf bestimmte Typen oder Posts page.php gelangen wir zu den generischen page.php , wie beispielsweise archive.php für alle Archivseiten oder page.php für alle Seiten. Denken Sie jedoch daran, dass diese nur verwendet werden, wenn die aktuelle Seite mit keiner der Vorlagen übereinstimmt, die in der Hierarchie höher liegen.

Wenn WordPress keine passenden Vorlagen im Vorlagenverzeichnis finden konnte, ist der letzte Fallback immer die Datei " index.php ist die einzige erforderliche Vorlagendatei in einem WordPress-Design.

Debuggen

Beim Debuggen der Hiearchy kann man sich leicht verirren. Sie können den integrierten Befehl debug_backtrace PHP debug_backtrace .

Fügen Sie das nächste Snippet in eine Vorlage ein, die Sie debuggen möchten, und zeigen Sie die generierte Seite an:

<!-- <?php print_r( debug_backtrace() ) ?> -->

Vorlagenhierarchie online lesen: https://riptutorial.com/de/wordpress/topic/6116/vorlagenhierarchie

https://riptutorial.com/de/home 180

Page 199: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 66: Wie kann ich den Markdown-Editor in das Repeater-Add-on von Advance Custom Field integrieren?

Examples

MarkDown Editor hinzufügen

Ich habe die Lösung gefunden. Bitte beachten Sie die unten genannten Schritte.

Installieren Sie das WP-Markdown-Editor- Plugin.

Dann installieren Sie " acf-wp-wysiwyg " für das Repeaterfeld. Nun müssen Sie einige Dateien aktualisieren. Öffnen Sie diese Datei und gehen Sie zur Zeilennummer "180" oder gehen Sie zur Funktion "create_field"

echo '<script> var simplemde = new SimpleMDE({element: document.getElementById("'.$id.'")});jQuery(".quicktags-toolbar").css("display","none");</script>';

Jetzt unter "acf-repeater" plugin open "input.js" Datei, Zeilennummer "142"

ersetzen

new_field_html = this.$el.find('> table > tbody > tr.row-clone').html().replace(/(=["]*[\w-\[\]]*?)(acfcloneindex)/g, '$1' + new_id),

Mit

new_field_html = this.$el.find('> table > tbody > tr.row-clone').html().replace(/(["]*[\w-\[\]]*?)(acfcloneindex)/g, '$1' + new_id),

Wie kann ich den Markdown-Editor in das Repeater-Add-on von Advance Custom Field integrieren? online lesen: https://riptutorial.com/de/wordpress/topic/6602/wie-kann-ich-den-markdown-editor-in-das-repeater-add-on-von-advance-custom-field-integrieren-

https://riptutorial.com/de/home 181

Page 200: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 67: Wordpress-Theme und Child-Theme-Entwicklung

Einführung

Wordpress ist ein weit verbreitetes CMS zum Erstellen einfacher Informationswebsites, aber auch zum Erstellen anspruchsvollerer Websites und sogar kleiner Webshops.

Wordpress verwendet Themen. Diese Themen werden zum Erstellen der Layout- und Inhaltsfunktionalität einer Wordpress-Website verwendet. Die Themen sind überall im Internet zu finden.

Jeder hat seine eigenen Funktionen und sein eigenes Layout, aber manchmal ist es schwierig, das richtige Thema für eine Website zu finden. Glücklicherweise können wir auch ein eigenes Thema erstellen.

Examples

Entwickeln Sie Ihr eigenes Thema

Ein WordPress-Theme besteht aus zwei Arten von Dateien. Die grundlegenden Dateien, die jedes Thema enthält, und die Dateien, die das Layout und die Funktionalität des Themas definieren. Diese zweite Gruppe werde ich die themenspezifischen Dateien nennen.

Die grundlegenden Designdateien Die grundlegenden Designdateien sind die Dateien, die zum Einrichten und Registrieren eines Designs verwendet werden. In der folgenden Liste werde ich jede Datei und ihre Verwendung kurz beschreiben. Später füge ich die grundlegendsten Beispieldateien hinzu, die zum Einrichten Ihres eigenen WordPress-Themas erforderlich sind.

functions.php : Mit der Datei functions.php werden alle Funktionen, Seitenleisten, Skripts und Include-Elemente des Designs registriert. In diese Datei können Sie zum Beispiel CSS-Dateien, JS-Dateien usw. aufnehmen.

Kopf- Header and footer : Die Kopf- und Fußzeilendateien (header.php und footer.php) sind die Dateien, die zum Aufrufen der Kopf- und Fußzeile verwendet werden. Die Header- und Footer-Datei enthält beispielsweise die Verknüpfung zum WordPress-Backend-System.

index.php : Die Datei index.php ist die Datei, die die Standardseitenvorlage erstellt. In dieser Datei können Sie Teile dieses Layouts für Standardvorlagen anzeigen, bearbeiten und entfernen.

single.php : Die single.php-Datei ist die Datei, mit der die Seite mit den einzelnen Posts erstellt wird. Genau wie die Default-Vorlage für die Seiten, aber jetzt für die einzelnen Postseiten.

format.php Die format.php-Datei ist die Datei, die die Inhaltstextvorlage aus einer Seite erstellt. Wenn Sie also eine Homepage hätten und diese vom Backend aus bearbeiten

https://riptutorial.com/de/home 182

Page 201: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

würden, indem Sie einen Text hinzufügen. Diese Datei erstellt die Standardauszeichnung dieses Textes.404.php Die Datei 404.php erstellt die 404-Vorlage. Diese Datei besteht aus dem Grundlayout dieser Seite.

archive.php Die Datei archive.php erstellt das Layout der Archivseite.•style.css Die grundlegende Stylesheet-Datei.•

In dieser Liste können Sie also alle erforderlichen Dateien für die Einrichtung Ihres eigenen Wordpress-Designs sehen. Schauen wir uns nun einige Dateien an, die Sie erstellen können, wenn Sie möchten, aber keine Dateien für ein WordPress-Design sind. Bei diesen Dateien handelt es sich meistens um Vorlagendateien und andere Funktionserweiterungen.

Benutzerdefinierte Seitenvorlagen page-<your own name>.php : In einem Wordpress- page-<your own name>.php Sie mehrere Seitenvorlagen erstellen. indem Sie neue Seitenvorlagendateien erstellen. Eine Standardseitenvorlagendatei besteht aus den folgenden Namensattributen. page name of the template und .php Wenn Sie beispielsweise eine neue Seitenvorlage für Ihre .php erstellen möchten, können Sie sie als page-blog.php Wordpress liest die Datei automatisch und fügt sie dem page-blog.php hinzu. Stellen Sie sicher, dass Sie mindestens die Funktionen get_header() und get_footer() . Stellen Sie außerdem sicher, dass Sie Ihre Vorlage in einem Kommentar oben in der Datei benennen, indem Sie das folgende Beispiel hinzufügen.

<?php /* * Template Name: Homepage Template */ get_header(); ?>

Individuelle Post-Seitenvorlagen single-<your own name>.php : In einem Wordpress- single-<your own name>.php ebenso wie die oben beschriebene Seitenvorlage Ihre eigenen Seitenvorlagen für einzelne Posts erstellen. Genau wie die Seitenvorlage besteht die Datei aus drei Teilen single für die Erklärung , es ist eine einzelne Post - Seite <your name of the template> und die Dateiendung .php . Genau wie die Mindestanforderungen für die Seitenvorlage, um sicherzustellen, dass Wordpress die neue Vorlage liest, fügen Sie die Funktionen get_header() und get_footer() . Und natürlich fügen Sie auch Ihren Vorlagennamen hinzu, wie im Beispiel unten

<?php /* * Template Name: Post Portfolio * Template Post Type: post, page */ ?>

Wir geben auch den Template post type: der Template post type: , der für die Art der Vorlage steht, in diesem Fall Post und Seite.

https://riptutorial.com/de/home 183

Page 202: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Individuelle Posttextvorlagen format -<your own name>.php : In einem Wordpress- format -<your own name>.php Sie auch Post-Output-Vorlagen erstellen. Diese Formatvorlagen sind das Layout und der Inhalt eines Beitrags. Wenn Sie beispielsweise möchten, dass der Beitrag nur den Inhalt oder den Titel des Beitrags anzeigt, können Sie diese Vorlagen verwenden, um diese Art von Anpassungen zu erstellen. Da diese Vorlagen nur den Post-Back- get_header() -Inhalt formatieren, der von einem Benutzer erstellt wurde, müssen get_header() und get_footer() nicht get_footer() da diese bereits in den Seitenvorlagen definiert sind. Stellen Sie sicher, dass Ihre Vorlage einen Beitrag anhand des folgenden grundlegenden Beispiels erkennen kann.

<div> <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> </article> </div>

Nun, da wir etwas über die grundlegenden Dateien und einige der vielen vorlagenspezifischen Dateien wissen, ist es an der Zeit, sich mit Seitenleisten und Widgets zu beschäftigen. In der Zukunft wird dies zusammen mit einem Schritt-für-Schritt-Tutorial zum Erstellen eines eigenen Wordpress-Designs hinzugefügt.

Wordpress-Theme und Child-Theme-Entwicklung online lesen: https://riptutorial.com/de/wordpress/topic/9940/wordpress-theme-und-child-theme-entwicklung

https://riptutorial.com/de/home 184

Page 203: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 68: wp_get_current_user ()

Syntax

wp_get_current_user ()•

Examples

Den aktuellen Benutzer abrufen

Abrufen aller Informationen des aktuellen Benutzers in WordPress mithilfe der vordefinierten Funktion wp_get_current_user();

<?php $current_user = wp_get_current_user(); echo "Username :".$current_user->user_login; echo "Username :".$current_user->ID; echo "Username :".$current_user->user_pass; echo "Username :".$current_user->user_nicename; echo "Username :".$current_user->user_email; echo "Username :".$current_user->user_url; echo "Username :".$current_user->user_registered; echo "Username :".$current_user->user_activation_key; echo "Username :".$current_user->user_status; echo "Username :".$current_user->display_name; ?>

Verwenden Sie die foreach-Schleife, um Benutzerinformationen von wp_get_current_user () abzurufen.

$user = wp_get_current_user(); foreach($user->data as $key=>$user_data){ if($key == 'user_pass' || $key == 'user_activation_key' || $key=='user_status'){} else{ $nice_key = ucfirst(str_replace('_', ' ', $key)); if($key == 'user_registered'){ $user_data = date_i18n(get_option('date_format'), strtotime($user_data)); } echo $nice_key . ' : ' . $user_data . '<br />'; } }

wp_get_current_user () online lesen: https://riptutorial.com/de/wordpress/topic/2693/wp-get-current-user---

https://riptutorial.com/de/home 185

Page 204: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 69: wp_get_current_user ()

Examples

Aktuelle Informationen zum angemeldeten Benutzer erhalten

Ruft die Informationen zum aktuell angemeldeten Benutzer ab und speichert sie in der globalen Variablen $ current_user

Diese Funktion akzeptiert keine Parameter.

Verwendungszweck:

<?php wp_get_current_user(); ?>

Beispiel:

<?php $current_user = wp_get_current_user(); echo 'Username: ' . $current_user->user_login . "\n"; echo 'User email: ' . $current_user->user_email . "\n"; echo 'User level: ' . $current_user->user_level . "\n"; echo 'User first name: ' . $current_user->user_firstname . "\n"; echo 'User last name: ' . $current_user->user_lastname . "\n"; echo 'User display name: ' . $current_user->display_name . "\n"; echo 'User ID: ' . $current_user->ID . "\n"; ?>

Um festzustellen, ob ein Besucher angemeldet ist oder nicht, können Sie zuvor is_user_logged_in () verwenden und dann die aktuellen Benutzerinformationen abrufen, wenn der Besucher angemeldet ist:

<?php if ( is_user_logged_in() ) { $current_user = wp_get_current_user(); echo 'Welcome, ' . $current_user->user_login . '!'; } else { echo 'Welcome, visitor!'; } ?>

wp_get_current_user () online lesen: https://riptutorial.com/de/wordpress/topic/6649/wp-get-current-user---

https://riptutorial.com/de/home 186

Page 205: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 70: WP_Query () Schleife

Einführung

WP_Query zur Abfrage von Beiträgen, Seiten und benutzerdefinierten Beitragstypen. Sie erhalten eine Liste für bestimmte Beiträge und Seiten oder benutzerdefinierte Beitragstypen. WP_Query ermöglicht das Abrufen von Beiträgen aus der Datenbank gemäß Ihren Kriterien.

Examples

Letzte 10 Beiträge abrufen

$args = array( 'post_type'=>'post', 'posts_per_page' =>'10' ); $latest_posts_query = new WP_Query( $args ); if($latest_posts_query->have_posts()) : while ( $latest_posts_query-> have_posts()) : $latest_posts_query->the_post(); //Get post details here endwhile; endif;

WP_Query () Schleife online lesen: https://riptutorial.com/de/wordpress/topic/8301/wp-query----schleife

https://riptutorial.com/de/home 187

Page 206: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 71: WP-CLI

Einführung

WP-CLI ist ein Satz Befehlszeilen-Tools zum Verwalten von WordPress-Installationen. Sie können Plugins aktualisieren, Installationen mit mehreren Standorten konfigurieren und vieles mehr, ohne einen Webbrowser zu verwenden.

Examples

Themen verwalten

Holen Sie sich eine Liste von Themen.

$ wp theme list

Installieren Sie die neueste Version von WordPress.org und aktivieren Sie sie

$ wp theme install twentysixteen --activate

Installation von einer lokalen Zip-Datei

$ wp theme install ../my-theme.zip

Installation von einer Remote-ZIP-Datei

$ wp theme install http://s3.amazonaws.com/bucketname/my-theme.zip?AWSAccessKeyId=123&amp;Expires=456&amp;Signature=abcdef

Details zu einem installierten Thema abrufen

$ wp theme get twentysixteen --fields=name,title,version

Status des Themes abrufen

$ wp theme status twentysixteen

Plugins verwalten

Rufen Sie eine Liste mit Plugins ab

$ wp plugin list

Listet aktive Plugins auf der Site auf.

https://riptutorial.com/de/home 188

Page 207: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

$ wp plugin list --status=active --format=json

Listen Sie Plugins an jedem Standort in einem Netzwerk auf.

$ wp site list --field=url | xargs -I % wp plugin list --url=%

Plugin aktivieren

$ wp plugin activate hello-dolly

Plugin deaktivieren

$ wp plugin deactivate hello-dolly

Plugin löschen

$ wp plugin delete hello-dolly

Installieren Sie die neueste Version von WordPress.org und aktivieren Sie sie

$ wp plugin install bbpress --activate

WP-CLI selbst verwalten

Zeigt die aktuell installierte Version an.

$ wp cli version

Nach Updates für WP-CLI suchen.

$ wp cli check-update

Aktualisieren Sie WP-CLI auf die neueste stabile Version.

$ wp cli update

Listen Sie alle verfügbaren Aliase auf.

$ wp cli alias

Drucken Sie verschiedene Details zur WP-CLI-Umgebung.

$ wp cli info

Legen Sie die Liste der installierten Befehle als JSON ab.

https://riptutorial.com/de/home 189

Page 208: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

$ wp cli cmd-dump

Laden Sie eine WordPress-Installation herunter, installieren, aktualisieren und verwalten Sie sie.

Laden Sie den WordPress-Kern herunter

$ wp core download --locale=nl_NL

Installieren Sie WordPress

$ wp core install --url=example.com --title=Example --admin_user=supervisor --admin_password=strongpassword [email protected]

Zeigen Sie die WordPress-Version an

$ wp core version

Verwandeln Sie eine Einzelstandortinstallation in eine WordPress-Mehrfachstandortinstallation.

$ wp core multisite-convert

Installieren Sie WordPress Multisite von Grund auf.

$ wp core multisite-install

Benutzer verwalten

Benutzer-IDs auflisten

$ wp user list --field=ID

Erstellen Sie einen neuen Benutzer.

$ wp user create bob [email protected] --role=author

Aktualisieren Sie einen vorhandenen Benutzer.

$ wp user update 123 --display_name=Mary --user_pass=marypass

Löschen Sie den Benutzer 123 und weisen Sie dem Benutzer 567 neue Beiträge zu

$ wp user delete 123 --reassign=567

Führen Sie grundlegende Datenbankoperationen mit den in wp-config.php

https://riptutorial.com/de/home 190

Page 209: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

gespeicherten Berechtigungsnachweisen durch

Erstellen Sie eine neue Datenbank.

$ wp db create

Eine vorhandene Datenbank löschen

$ wp db drop --yes

Setzen Sie die aktuelle Datenbank zurück.

$ wp db reset --yes

Führen Sie eine SQL-Abfrage aus, die in einer Datei gespeichert ist.

$ wp db query < debug.sql

WP-CLI online lesen: https://riptutorial.com/de/wordpress/topic/9169/wp-cli

https://riptutorial.com/de/home 191

Page 210: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Kapitel 72: WP-Cron

Examples

wp_schedule_event () Beispiel

// register activation hook register_activation_hook( __FILE__, 'example_activation' ); // function for activation hook function example_activation() { // check if scheduled hook exists if ( !wp_next_scheduled( 'my_event' )) { // Schedules a hook // time() - the first time of an event to run ( UNIX timestamp format ) // 'hourly' - recurrence ('hourly', 'twicedaily', 'daily' ) // 'my_event' - the name of an action hook to execute. wp_schedule_event( time(), 'hourly', 'my_event' ); } } add_action( 'my_event', 'do_this_hourly' ); // the code of your hourly event function do_this_hourly() { // put your code here } // register deactivation hook register_deactivation_hook(__FILE__, 'example_deactivation'); // function for deactivation hook function example_deactivation() { // clear scheduled hook wp_clear_scheduled_hook( 'my_event' ); }

Wichtig: Der WordPress-Cron wird nur ausgeführt, wenn eine Seite Ihrer Website aufgerufen wird. Für Websites mit wenig Datenverkehr müssen Sie also den Cron in Ihrem Hosting einrichten, um die Seiten aufzurufen.

benutzerdefiniertes Wiederholungsintervall in wp_schedule_event ()

// this function add custom interval (5 minutes) to the $schedules function five_minutes_interval( $schedules ) { $schedules['five_minutes'] = array( 'interval' => 60 * 5, 'display' => '5 minutes'; ); return $schedules; } // add a custom interval filter add_filter( 'cron_schedules', 'five_minutes_interval' );

https://riptutorial.com/de/home 192

Page 211: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

// Schedules a hook wp_schedule_event( time(), 'five_minutes', 'my_event' );

WP-Cron online lesen: https://riptutorial.com/de/wordpress/topic/6783/wp-cron

https://riptutorial.com/de/home 193

Page 212: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Credits

S. No

Kapitel Contributors

1Erste Schritte mit WordPress

4444, A. Raza, Andrew, animuson, Anupam, Chris Fletcher, Ciprian, Community, Florida, James Jones, JonasCz, Leo F, Marc St Raymond, Mayank Gupta, Milap, nus, Panda, rap-2-h, Seth C., Shubham, Trevor Clarke, vajrasar

2 add_action () Abel Melquiades Callejo, Waqas Bukhary

3 add_editor_style () Gabriel Chi Hong Lee

4 add_menu_page () brasofilo, Gabriel Chi Hong Lee

5add_submenu_page ()

Gabriel Chi Hong Lee, theoretisch

6add_theme_support ()

Gabriel Chi Hong Lee

7Admin-Dashboard-Widgets

theoretisch

8 AJAXAndy, Digvijayad, Gaurav Srivastava, GreatBlakes, Nisarg Patel, Ruslan Murarov, stweb

9 Aktionen und Filter David, Ihor Vorotnov, Mrinal Haque, Trying Tobemyself

10Aktualisieren Sie WordPress manuell

KnightHawk

11Alternierende Hauptschleife (Filter pre_get_posts)

Dawid Urbanski, Petar Popovic

12 Beiträge abfragen dingo_d

13

Benutzerdefinierte Auszüge mit excerpt_length und excerpt_more

inkista, Petar Popovic, RamenChef

14Benutzerdefinierte Beitragstypen

Caio Felipe Pereira, Dan Devine, J.D., janw, jgraup, Kushal Shah, Omar Khaiyam, Ranuka, theoretisch

Customizer Hallo 15 Dan Green-Leipciger

https://riptutorial.com/de/home 194

Page 213: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

Welt

16

Customizer-Grundlagen (Panel hinzufügen, Abschnitt, Einstellungen, Steuerung)

4444, Ahmad Awais, RamenChef

17 Das $ wpdb-Objekt Kushal Shah, mcon, stweb

18 Debuggen barbocc, dingo_d, jgraup

19 der Titel() Gabriel Chi Hong Lee

20Die Admin-Leiste (aka "Die Symbolleiste")

dingo_d, Harshal Limaye, JCL1178, Kushal Shah

21Die Schleife (Haupt-WordPress-Schleife)

anik4e, Dawid Urbanski

22 drin Abel Melquiades Callejo, barbocc

23Einreihen von Skripten

dingo_d, Harshal Limaye, J.D., mbacon40, montrealist, Pelmered, Petar Popovic

24 Einreihen von Stylesdingo_d, Harshal Limaye, Laxmana, mnoronha, montrealist, Petar Popovic, RamenChef, Ruslan Murarov, virtualLast

25

Entfernen Sie automatische Zeilenumbrüche aus Inhalt und Auszug

Austin Winstanley

26Erstellen einer benutzerdefinierten Vorlage

Petar Popovic

27Erstellen Sie einen Beitrag programmgesteuert

RamenChef, Roel Magdaleno, RRikesh

28Erstellung des WordPress-Plugins

Seth C.

29Führen Sie WordPress local mit XAMPP aus

Pierre.Vriens, theoretisch

https://riptutorial.com/de/home 195

Page 214: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

30Funktion: add_action ()

bosco, RamenChef

31Funktion: wp_trim_words ()

Harshal Limaye

32 get_bloginfo ()Abel Melquiades Callejo, Harshal Limaye, HeyCameron, KenB, Nate Beers, RamenChef, Tom J Nowell, virtualLast, Wes Moberly

33 get_home_path () Ihor Vorotnov

34 get_option () Gabriel Chi Hong Lee

35 get_permalink () Gabriel Chi Hong Lee

36 get_template_part () Dan Devine, Kushal Shah

37 get_the_category () Gabriel Chi Hong Lee

38 get_the_title () Gabriel Chi Hong Lee

39Grundlegendes zum Thema Kind

Andrei, Razvan Onofrei, Vlad Olaru

40

Hinzufügen / Entfernen von Kontaktinformationen für Benutzer mit dem Filterhaken user_contactmethods

Petar Popovic, RamenChef

41 home_url () dingo_d, Kushal Shah, matthew, Mr. Developer

42Installation und Konfiguration

Kenyon, Marco Romano, Ping.Chen, S.L. Barth, stig-js, theoretisch, Yuan Lung Luo

43 KurzcodeAd Wicks, Adam Genshaft, brasofilo, John Slegers, Kylar, Shashank Agarwal

44 Kurzcode mit Attribut Digvijayad, Firefog, RamenChef

45 Kurzwahlnummern Pelmered

46 Meta Box Austin Winstanley

47Netzwerkanfragen mit HTTP-API durchführen

Jordan, mjangda, Rarst

48 Options-API Harshal Limaye, Pat J, RamenChef

https://riptutorial.com/de/home 196

Page 215: WordPress - RIP Tutorial · 2019-01-18 · Benutzerdefinierter Beitragstyp mit fünfundzwanzig WordPress-Design 48 Benutzerdefinierter Beitragstyp in der Standardsuche 49 Kapitel

49 Plugin-Entwicklung Angle.Ŗ, Ping.Chen

50 Postformate Shashank Agarwal

51 REST-API Picard

52 Seitenleisten dingo_d, Kushal Shah, theoretisch

53Shortcode hinzufügen

purvik7373, RamenChef

54Sicherheit in WordPress - Desinfektion

Laxmana

55Sicherheit in WordPress - Flucht

Laxmana, the4kman

56Sichern Sie Ihre Installation

James Jones

57 Standortmigration Austin Winstanley

58 Taxonomien adifatz, Kushal Shah, purvik7373

59 template_include Abel Melquiades Callejo, David, RamenChef

60 Themes Jef

61

Version von Wordpress und Stylesheets entfernen

jay.jivani, mnoronha, theoretisch

62Vorlage für benutzerdefinierten Beitragstyp erstellen

Ashok G, Egnaro, Joe Dooley, mnoronha

63 Vorlagenhierarchie jgraup, MarZab, Pelmered, theoretisch

64

Wie kann ich den Markdown-Editor in das Repeater-Add-on von Advance Custom Field integrieren?

Fatbit

65Wordpress-Theme und Child-Theme-Entwicklung

Deathstorm

https://riptutorial.com/de/home 197