Springe zum Inhalt

1

Mit WordPress ist es sehr einfach möglich, Inhalte anderer Webseiten in die eigene Webseite einzubinden. So kann z.B. duch die bloße Angabe einer YouTube-URL das entsprechende Video im Artikel angezeigt werden. In der Vergangenheit war das für ein paar Anbieter, meist für Multimedia-Inhalte, bereits möglich.

Seit heute nun ist WordPress 4.4 da und erweitert die Liste der unterstützten Webseiten beim Einbetten. Neu ist dabei, dass bei der Angabe einer externen URL auf der auch WordPress läuft, gleich ein Anrisstext der verlinkten Webseite angezeigt wird. WordPress selbst unterstützt jetzt die sogenannte oEmbed-Schnittstelle.

Außer WordPress werden die rechts genannten Anbieter für das Einbetten von Inhalten unterstützt.

Leider tauchen in dieser Liste nicht die beiden großen kommerziellen Socialnetwork-Plattformen auf. Die oEmbed-Schnittstelle wurde von diesen beiden bisher Anbietern nicht implementiert. Vielleicht ist das auch gar nicht gewünscht. Schade.

Als Beispiel, wie das Einbetten einer Vorschau auf einen externen WordPress-Blog aussieht, hab ich hier einmal einen zufällig aus meinem Newsreader ausgewählten Blog-Eintrag verwendet:

Transfer.sh Dateien über die Kommandozeile teilen

Sehr nützlich, wie ich meine.

Schon lange hatte ich den Wunsch, meinen Lesern eine Möglichkeit zu bieten, Beiträge zu bewerten. Viele Leser scheuen sich, bei einem schlecht verständlichen Artikel einen Kommentar abzugeben, was mir jedoch als Feedback fehlt, um den jeweiligen Artikel zu verbessern. Ebenso nimmt sich bei brauchbaren Artikeln kaum jemand die Zeit, seine E-Mail-Adresse einzugeben und dann ein "Guter Artikel" oder dergleichen zu hinterlassen. Ein einzelner Klick dagegen ist hoffentlich leichter ausgeführt.

Gleichzeitig wollte ich endlich eine Möglichkeit schaffen, unter den Artikeln eine Statistik einzublenden die anzeigt, wie oft ein Artikel gelesen wurde. Die einfachen Möglichkeiten, einen "dummen" Besucherzähler zu manipulieren, waren ein zusätzliches Auswahlkriterium. ...weiterlesen "WordPress: Beitragsbewertung und Statistik"

1

In einer Standard-WordPress-Installation ist es sehr einfach möglich, die Namen der unterschiedlichen Autoren herauszubekommen. An die URL der Seite hängt man dazu ein /?author=1, /?author=2 usw. an. Diese Informationen könnten von mißliebigen Zeitgenossen unter Umständen dann dazu verwendet werden, Logins mit nun bekannten korrekten Benutzernamen auszuprobieren.

Verhindern kann man den Zugriff auf die Namen der unterschiedlichen Autoren (und damit auch die Information, ob es evtl. nur einen einzigen Autor im Blog gibt) mit dem Umschreiben der URL.

Apache

In der Datei .htaccess trägt man dazu folgendes ein:

RewriteCond %{QUERY_STRING} author=\d
RewriteRule ^ /? [L,R=301]

Das Modul mod_rewrite muss aktiv sein, damit diese Konfigurationsanweisungen ausgewertet werden.

Nginx

In der entsprechenen Konfigurationsdatei für den Server trägt man folgendes ein:

location / {
  if ($query_string ~ "author=\d") {
    rewrite ^(.*)$ /? redirect;
  }
}

Danach werden alle Anfragen zur Auflistung der Autoren auf die Hauptseite der WordPress-Installation umgeleitet.

Mit dem WordPress Theme "Twenty Fourteen" werden einige Formatvorlagen für Beiträge mitgeliefert. So z.B. kann man Beiträge in Form einer Kurzmitteilung, Bilder, Zitate usw. veröffentlichen. Ist in WordPress eingestellt, dass die Startseite die letzten Beiträge anzeigt, werden standardmäßig alle Beiträge (auch mit unterschiedlichen Formatvorlagen) auf der Hauptseite angezeigt. Möchte man auf der Hauptseite z.B. Beiträge mit bestimmten Formatvorlagen nicht anzeigen, so muss die WordPress-Anfrage, welche die einzelnen Beiträge zur Anzeige ermittelt, modifiziert werden.

Mit folgender Funktion in der themeneigenen Datei functions.php werden z.B. alle Beiträge mit der Formatvorlage "Kurzmitteilung" ausgeblendet:

function search_filter($query) {
        if ( !is_admin() && $query->is_main_query() ) {
                $tax_query = array( array(
                        'taxonomy' => 'post_format',
                        'field' => 'slug',
                        'terms' => array( 'post-format-aside' ),
                        'operator' => 'NOT IN',
                ) );    
                $query->set( 'tax_query' , $tax_query );
        }       
}       
 
add_action('pre_get_posts','search_filter');

Mit obigem Code-Schnipsel wird festgelegt, dass die Funktion search_filter vor dem Sammeln der anzuzeigenden Beiträge aufgerufen wird (pre_get_posts).

Die wichtigen Einstellungen sind hier der Operator "NOT IN" und die Angabe der Formate (unter terms), welche nicht angezeigt werden sollen.

Das Theme "Twenty Fourteen" definiert folgende Formatvorlagen:

  • post-format-aside (Kurzmitteilung)
  • post-format-audio (Audio)
  • post-format-gallery (Galerie)
  • post-format-image (Bild)
  • post-format-link (Link)
  • post-format-quote (Zitat)
  • post-format-video (Video)

Genau diese Formate können in die obige Funktion eingetragen werden, um diese Formatvorlagen von der Anzeige in der Hauptseite auszuschließen.

Für andere Themen als "Twenty Fourteen" können bei vorhandenem Zugang zur Datenbank über z.B. phpMyAdmin oder die Konsole die Namen der bereits verwendeten Formatvorlagen mit folgender Abfrage auf die WordPress-Datenbank ermittelt werden:

SELECT * FROM wp_terms where slug like 'post-format-%';

Die Namen der Formatvorlagen befinden sich dabei in der Spalte slug. Genau auf diese Spalte wird mit obiger Funktion ein Filter gesetzt ('field' => 'slug').

In WordPress hat man die Möglichkeit, einen Weiterlesen-Tag einzufügen um z.B. nur einen Anrisstext in einer längeren Liste von Artikeln auszugeben. Leider hat dieser Weiterlesen-Tag eine eher ungewöhnliche Eigenschaft: er positioniert den Text bis zu dem man gelesen hat oberhalb des Browserfensters. Oben im Browserfenster steht man dann zwar genau an der Stelle, an der man weiterlesen kann, jedoch fehlt der Anfang des Artikels, welcher schon hochgescrollt ist.

In WordPress kann man dieses Verhalten mit ein paar Zeilen, eingefügt in die Datei functions.php im Verzeichnis des aktuellen Themas ändern:

function remove_more_jump_link($link) {
        $offset = strpos($link, '#more-');
        if ($offset) {
                $end = strpos($link, '"',$offset);
        }
        if ($end) {
                $link = substr_replace($link, '', $offset, $end-$offset);
        }
        return $link;
}
add_filter('the_content_more_link', 'remove_more_jump_link');

Danach bringt einen ein Klick auf "Weiterlesen" an den Anfang des kompletten Artikels.