WordPress: Meine häufig genutzten Funktionen, Klassen, Styles

Was ist HTML Code

Ich werkele nicht täglich im WordPress Quellcode herum oder versuche Plugins zu programmieren. Dementsprechend gerät einmal angelerntes ohne wiederholte Nutzung schnell wieder ins Vergessen. Zumindest ergeht es mir so, weshalb ich aus Eigennutz in diesem Beitrag Funktionen aufliste, die ich mindestens einmal nutzte.

Inspiriert von: revilodesign.de | get_posts |

Datenbank-Abfrage mit Klasse wpdb

Wenn eine WordPress-Tabelle gelesen werden soll, ist der sogenannte Prefix wichtig. Es ist der kleine Textzusatz unmittelbar vor dem Tabellennamen. Ermittelt wird er mit „$wpdb->prefix“.

Daten suchen in einer Tabelle: SELECT

In diesem Beispiel werden aus der WordPress-Tabelle „posts“ alle publizierten Beiträge (posts) aufgelistet.

global $wpdb;
$Daten = $wpdb->get_results("SELECT *  FROM ".$wpdb->prefix."posts WHERE post_status = 'publish' AND post_type = 'post'");

if(!empty($Daten)){ // DATEN WURDEN GEFUNDEN
    foreach ( $Daten as $Daten_Satz ) {
        echo '<br>'.$Daten_Satz->post_title;
    }
}else{ // KEINE DATEN WURDEN GEFUNDEN
    echo 'Keine Treffer gefunden!';
}

Einzelne Zeile auslesen: get_row

Mit $wpdb->get_row wird eine einzelne Zeile abgerufen. Gibt es mehrere Zeilen, wird nur die erste ausgeben.

$daten = $wpdb->get_row( "SELECT * FROM ".TABLE_SETTINGS." WHERE id = 1 " );

define("GEO_LOCATION", 	$daten->GEO_LOCATION); 
define("RELOAD_SPERRE",	$daten->RELOAD_SEKUNDEN); 
define("RELOAD_AKTIV",	$daten->RELOAD_AKTIV);

Treffer zählen: num_rows

Die Funktion $wpdb->num_rows gibt die Anzahl der gefundenen Treffer zurück, muss aber direkt nach dem Aufruf „$wpdb->get_results()“ erfolgen.

$Daten = $wpdb-> get_results("SELECT * FROM ".TABLE_RELOAD." WHERE ip='$ip' AND seite='$Seite'");
$visit = $wpdb->num_rows;

Einzelne Felder einer Zeile aktualisieren: UPDATE

Es ist übersichtlicher und vereinfacht eine mögliche Fehlersuche, wenn die einzelnen Argumente in Arrays verpackt werden. Für das Format gibt es nur drei Möglichkeiten: %s steht für String (Text), %d für Integer (ganze Zahlen) und %f für Float (Gleitkommazahlen).

$data 	= array(
	'ip' 	=> $ip,
	'datum' => $heute,
	'view' 	=> $daten[0]->view+1
	);

$format = array(
	'%s',
	'%s',
	'%d'
	) ;

$where 	=  array('seite' => $Seite);

$result = $wpdb->update(TABLE_ARTIKEL, $data, $where, $format);

Neue Zeile in Tabelle eintragen: INSERT

Wenn in eine WordPress-Tabelle etwas geschrieben oder verändert werden soll, ist der oben erwähnte Prefix zu beachten.

$data 	= array(
    'ip' 		=> $ip,
    'seite' 	=> $Seite,
    'datum' 	=> $heute
    );

$format = array(
    '%s',
    '%s',
    '%s'	
    );

$wpdb->insert(TABLE_ARTIKEL,$data,$format);

Funktionen & Snippets

Beiträge einer (oder aller) Kategorie(n) auflisten

Der folgende Code listet 10 Beiträge aus der Kategorie „Lexikon“ mit Titel und Inhalt auf. Es wird die Klasse „WP_Query“ verwendet.

$my_query = new WP_Query('category_name=Lexikon&showposts=10'); 

while ($my_query->have_posts()) : $my_query->the_post(); 
	the_title(); 
	the_content();
endwhile;

Beiträge auflisten mit spezifischen Angaben (Links, Zeichenanzahl, VG-Wort Pixel, …)

Dieser Code erledigt Ähnliches. Aus der Kategorie „Lexikon“ werden 10 Beiträge geholt. Genutzt wird die Funktion get_posts($args). Ausgegeben werden in diesem Beispiel:

  • Titel: $post->post_title
  • URL des Thumbnail: get_the_post_thumbnail_url($post->ID, ‚full‘)
  • Link zum Artikel: _permalink($post->ID)

//Parameter für Posts
$args = array(
    'category_name' => 'Lexikon',
    'numberposts' => 10
);

//Posts holen
$posts = get_posts($args);

//Inhalte sammeln
$content = "";
foreach ($posts as $post) {
    $content .= "Titel: ".$post->post_title."<br/>";
    $content .= "Bild URL: ".get_the_post_thumbnail_url($post->ID, 'full')."<br/>";
    $content .= "Link: ".get_permalink($post->ID)."<br/>";
    $content .= "<br/><br/>";
}

Funktion Buchstaben (Zeichen) im Post zählen

Ich möchte ermitteln, wie viele Zeichen ein Beitrag enthält. Ohne ein fremdes Plugin zu installieren. Zunächst suchte ich nach einer WP-Tabelle, die eventuell Informationen darüber enthält. Schließlich zeigt mit der Gutenberg-Editor ja auch an, wie viele Zeichen mein Post belegt. Aber da wurde ich nicht fündig. Möglicherweise übersah ich etwas.

Eine Google-Suche nach „wordpress function count post char“ brachte wenigstens einen Ansatz. WordPress kennt die Funktion „wp_strip_all_tags($post->post_content)“. Sie bereinigt die Variable post_content um nichtdruckbare Zeichen und zählt die lesbaren Zeichen (inkl. Leerzeichen).

Diese Funktion liefert ähnliche Ergebnisse wie der Gutenberg-Editor, weshalb ich sie vorerst nutze.

Dank dieser Funktion kann ich nun gezielt alle Artikel auflisten, die

  • vom Typ „Beitrag“ sind und
  • veröffentlicht wurden und
  • mindestens XYZ Zeichen auf die Waage bringen.

Die Funktion strip_shortcodes() soll zusätzlich Short-Codes heraus fischen.

$count_char = strlen(wp_strip_all_tags(strip_shortcodes($post->post_content)));

Styles

Im Customizer kannst Du verschiedene Style „deaktivieren“, ohne im Quellcode des Themes herumzupfuschen. Die #Namen der verwendeten Styles findest Du schnell mit dem Seiteninspektor im Browser heraus.

Klick im Browser auf die Funktionstaste F12 , wähle im Inspektor den Reiter „Inspektor“, klick links daneben auf das Pfeil-Symbol und wähle den Bereich, den du untersuchen möchtest. Im schwarzen Rechteck wird die dazugehörige Klasse angezeigt und unten der dazugehörige Quellcode abgebildet.

Beispiele

Rahmen um Beitragsbild-Thumb auf Archiv-Seiten

.mh-posts-list-thumb img {border: 2px solid silver;}

Platzhalter-Bild entfernen

Nicht zu jedem Beitrag ist stets ein passendes Beitrags-Bild zur Hand. WordPress stellt für diesen Fall ein Platzhalter-Bild zur Verfügung. Dieses lässt sich auf Archivseiten und der Startseite mit folgendem Code ausblenden.

.mh-image-placeholder { display: none; }

Kategorien Name aus Thumb entfernen

Bei einigen Themes wird der Name der Kategorie im Thumb des Beitragsbild fixiert. Der folgende Code entfernt diese Notiz.

.mh-image-caption { display: none; }<br>.mh-posts-list-caption { display: none; }

Meta-Angaben unter Titel ausblenden

Der folgende Code entfernt den gesamten Meta-Block unter dem Beitragstitel.

 .mh-meta { display: none; }

Wo Styles einbauen?

Die zusätzlichen CSS-Styles baust Du mit dem Customizer ein.