blog.bartlweb - a technologist's external brain

Thema: WordPress

Funktionsumfang und Stile des RTE-Editors von WordPress anpassen

Der RTE-Editor von WordPress ermöglicht es Redakteuren komfortabel und einfach Beträge zu erstellen und vor allem ohne HTML-Kenntnisse zu formatieren. Doch selten sind die vordefinierten Formatierungsmöglichkeiten ausreichend und noch viel weniger ist es ratsam den geballten Umfang an Funktionen und Möglichkeiten zur Formatierung des integrierten Editors anzubieten.

Mit etwas eigenem Code in der Datei functions.php des geladenen WordPress-Templates lässt sich der Editor an die eigenen Bedürfnisse anpassen.

Eigene Stile definieren

Der erste Schritt ist den Redakteuren sinnvolle Stile anzubieten und daher die standardmäßig angebotenen Stile auf die tatsächlich durch das WordPress-Template bereitgestellten CSS-Stile zu limitieren.

interne und externe Links automatisch in WordPress auszeichnen

Wer sich beim Erstellen der Blogposts noch keine Gedanken über die korrekten CSS-Klassen für interne und externe Links machen will, kann diese auch automatisch ergänzen lassen. Dafür sorgt die unten angegebene Funktionen, die als Filter auf den Inhalt gelegt wird. Ergänzen Sie den unteren Code in der Datei functions.php ihres Themes.
 

function addLinkClasses($content) {
        $blogurl = str_replace('https://', '', get_site_url('http'));
        $blogurl = str_replace('http://', '', $blogurl);
      
        // internal links
        $content = preg_replace('#class="bw_link_external" target="_blank" href="http://' . $blogurl . '#', 'class="link_internal" class="bw_link_external" target="_blank" href="http://' . $blogurl, $content);
        $content = preg_replace('#class="bw_link_external" target="_blank" href="https://' . $blogurl . '#', 'class="link_internal" class="bw_link_external" target="_blank" href="https://' . $blogurl, $content);
       
        // external links
        $content = preg_replace('#class="bw_link_external" target="_blank" href="http://(?!' . $blogurl . ')#', 'class="link_external" target="_blank" class="bw_link_external" target="_blank" href="http://', $content);
        $content = preg_replace('#class="bw_link_external" target="_blank" href="https://(?!' . $blogurl . ')#', 'class="link_external" target="_blank" class="bw_link_external" target="_blank" href="https://', $content);
        $content = preg_replace('#class="bw_link_external" target="_blank" href="ftp://(?!' . $blogurl . ')#', 'class="link_external" target="_blank" class="bw_link_external" target="_blank" href="ftp://', $content);
 
        return $content;
}
add_filter('the_content', 'addLinkClasses');

WordPress RSS-Feed mit Icon versehen

Wer den von WordPress automatisch generierten RSS-Feed um ein eigenes Icon (Favicon) ergänzen will, kann den XML-Header über die unten angeführte Funktion selbst erzeugen. Ergänzen Sie den Code in der Datei functions.php ihres Themes.

function addRssFavicon() {
  echo "<image>
            <title>blog.bartlweb</title>
            <url>" . get_site_url() . "/favicon.png</url>
            <link>" . get_site_url() ."</link>
            <width>16</width>
            <height>16</height>
            <description>die neuesten Posts von blog.bartlweb</description>
        </image>";
}
add_action('rss2_head', 'addRssFavicon');

 

eigene prev/next-Navigation für die Singleansicht von WordPress erstellen

Wer in der Post-Ansicht von WordPress eine eigene Navigation zum nächsten bzw. vorhergehenden Artikel anzeigen möchte kann den unteren Code nutzen um die Ausgabe in der Datei single.php des eigenen Themes entsprechend zu ergänzen.

<?php if(get_adjacent_post(false,'',true)) {?>                            
    <a href="<?php echo get_permalink(get_adjacent_post(false,'',true)); ?>" class="navigation_next" title="<?php echo get_the_title(get_adjacent_post(false,'',true)); ?>">n&auml;chster Artikel</a>
<?php } ?>
 
<?php if(get_adjacent_post(false,'',false)) {?>
    <a href="<?php echo get_permalink(get_adjacent_post(false,'',false)); ?>" class="navigation_prev" title="<?php echo get_the_title(get_adjacent_post(false,'',false)); ?>">vorheriger Artikel</a>
<?php } else { ?>
    <a href="<?php bloginfo('url'); ?>" class="navigation_prev" title="zur Startseite von <?php bloginfo('name'); ?>">zur Startseite</a>
<?php } ?>

Automatisches Ersetzen von Sonderzeichen in WordPress deaktivieren

WordPress ersetzt gewisse Satzzeichen wie Anführungszeichen durch spezielle "hübschere" Sonderzeichen. Diese Verhalten mag für reinen Text vielleicht gewünscht sein, für Code-Schnippsel ist Sie aber meistens nicht gewünscht. Des weiteren kann es bei der Darstellung im Browser zu Problemen kommen.

Um WordPress dieses Verhalten abzugewöhnen ist ein kleiner Eingriff in den Quellcode nötig (Achtung: bei einem Update muss der Vorgang wiederholt werden)

 

Kommentieren Sie dazu in der Datei wp-includes/formatting.php im oberen Abschnitt die folgenden Zeilen aus:

WordPress Posts auf der Hauptseite verkürzen

Worpress bietet von Haus aus die Möglichkeit Posteinträge zu kürzen und einen “read more” – Link zu setzen. Allerdings muss dieser bei jedem Post manuell über den Editor eingefügt werden.

Das WordPress-PlugIn “Post-Teaser” erledigt dies automatisch und versieht Posts nach einer gewissen Anzahl an Wörtern automatisch mit einem “read more”-Link. Weiters bietet es die Möglichkeit Wortanzahl (inkl. Bildanzahl) und die voraussichtliche Lesedauer anzeigen zu lassen.

Alles in allem gerade für Blogs mit längeren Posts ein sehr hilfreiches Tool.

Download: http://wordpress.org/extend/plugins/post-teaser/

Upload von HTML-Dateien in WordPress

Werden in Worpress HTML-Dateien hochgeladen und in den Posts verlinkt sollten diese die Endung .htm haben, da ansonsten nicht auf die Dateien zugegriffen werden kann.

Generell sollte man es allerdings vermeiden .htm, .html oder .php Dateien direkt in WordPress hochzuladen und zu verlinken.

WordPress updaten

automatisches Update

Update über das Backend (wp-admin) und den Menüpunkt Tools -> Upgrade

manuelles Update

  1. DB sichern
  2. die Dateien wp-config.php und den Ordner wp-content sichern
  3. Alle Dateien und Ordner bis auf wp-config.php und dem Ordner wp-content durch die aktuellen austauschen
  4. im Ordner wp-content/plugins die Datei hello.php und den Ordner akismet austauschen
  5. im Ordner wp-content/themes die Ordner classic und default austauschen sofern die Themes nicht modifiziert wurden
  6. im Brower http://domain.com/wp-admin/update.php aufrufen um die Datenbank upzudaten
  7. Blog wie gewohnt benutzen (Sollte der Login nicht funktionieren -> Cookies löschen)

Domain einer WordPress-Installation ändern

Leider benötigt WordPress in seiner Konfiguration immer noch die Angabe der Domain mit der auf die Installation zugegriffen werden soll. Ändert sich diese Domain funktioniert zunächst einmal nichts mehr. Doch zwei Zeilen die zur Konfiguration (wp-config.php) hinzugefügt werden bringen alles wieder ins Lot:

define('WP_HOME','http://wwww.domain.com');
define('WP_SITEURL','http://www.domain.com');

WordPress Backend (wp-admin) auf HTTPS umleiten

Um das Backend von WordPress (wp-admin) inkl. Login automatisch auf https umzuleiten, ergänzen Sie die .htaccess-Datei im Root-Verzeichnis der WordPress-Installation nach rewriteBase / um folgende 4 Zeilen:

RewriteCond %{HTTPS} off
RewriteRule ^wp-login.php(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^wp-admin/(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]