Archiv | November, 2010

Canvas: Twitter und Facebook Shortcodes per Plugin

Hier auf meinem Blog verwende ich seit kurzem das Canvas Framework von WooThemes. Dieses mächtige Theme Framework bietet u. a. an, Twitter und Facebook Buttons per Shortcodes in die Artikel einzubauen. Dies bei jedem Artikel von Hand zu machen, ist nicht die schönste Art. Es wäre auch möglich, dies in der jeweiligen Datei (z. B. single.php) manuell einzutragen. Nur: bei einem Update des Themes sind die Änderungen wieder futsch. Fällt also flach.

Ein anderer Weg wäre ein Child-Theme. Hier müsste allerdings immer beobachtet werden, ob sich im Original etwas verändert hat und dann müssten diese Änderungen im Child-Theme ebenfalls gemacht werden. Ist mir persönlich zu viel Arbeit.

Mit der WordPress Funktionen add_filter() kann man auf leichte Art und Weise ebenfalls solche Änderungen umsetzen.

Daher habe ich mich am Ende für add_filter() entschieden. Hier gibt es 2 Wege dies umzusetzen: ein Child-Theme mit angepasster functions.php oder ein Plugin. Letzteres ist für mich die beste Lösung.

Um es kurz zu machen, hier folgt der Plugin-Code:

<?php
/*
Plugin Name: Custom-Canvas
Plugin URI: http://www.yoururl.com/
Description: plugin for the canvas theme
Author: your name
Version: 0.1
Author URI: http://www.yoururl.com/
*/

function add_sharing_to_posts($post_content) {
  if ( is_single() ) {
    echo do_shortcode('[ twitter ]') . do_shortcode('[ fblike ]');
  }
}
add_filter('woo_post_inside_after', 'add_sharing_to_posts');
?>

Info: jeweils vor und nach der Bezeichnung (twitter, fblike) bei do_shortcode habe ich Leerzeichen eingefügt. WordPress führt diesen Code seltsamerweise aus. Diese bitte bei Übernahme des Codes entfernen!

Die Shortcodes können nach eigenen Wünschen angepasst werden, die nötigen Parameter sind im WooCodex hinterlegt (Mitgliedschaft erforderlich).

Es reicht vollkommen aus, diesen Code in einer .php Datei zu speichern und diese per FTP ins wp-content Verzeichnis hochzuladen. Im WordPress Admin Panel kann das Plugin aktiviert werden. Schon erscheinen nach jedem Eintrag die beiden Buttons.

Ubuntu Server: Failed to bring up eth0

Dass eine Netzwerkkarte mal kaputt geht oder gegen eine bessere getauscht wird, kann vorkommen. Was danach beim Ubuntu Server passiert, kann auch vorkommen: die neue Karte bekommt keine Verbindung ins Netz. Jeglicher Versuch die Karte oder das Netzwerk zu aktivieren, schlugen fehl. Ich bekam immer die selbe Fehlermeldung:

SIOCSIFADDR: No such device
eth0: ERROR while getting interface flags: No such device
eth0: ERROR while getting interface flags: No such device
Bind socket to interface: No such device
Failed to bring up eth0.

Ubuntu verhält sich fast wie Windows ;-) Findet letzteres eine neue Netzwerkkarte, bekommt diese eine neue Nummer. So finden sich schon mal “LAN-Verbindung”, “LAN-Verbindung 2″, etc. in der Netzwerkumgebung.
Ubuntu speichert ebenfalls alle jemals gefundenen Netzwerkkarten. Diese werden in /etc/udev/rules.d/70-persistent-net.rules eingetragen, und dort müssen wir ran.

In meinem Fall waren 2 Netzwerkkarten eingetragen: die alte mit NAME="eth0" und die neue mit NAME="eth1".

# PCI device [alte Karte]
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}="[MAC-Adresse]", NAME="eth0"

# PCI device [neue Karte]
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}="[MAC-Adresse]", NAME="eth1"

An Hand der MAC-Adressen können die Karten ebenfalls identifiziert werden – falls diese noch im Kopf sind. Da die alte Karte kaputt und somit nie wieder benötigt wird, kann der Eintrag der alten Karte gelöscht werden. Beim Eintrag der neuen Karte ändere ich nur noch eth1 auf eth0 ab.

# PCI device [neue Karte]
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}="[MAC-Adresse]", NAME="eth0"

Nach einem Neustart des Servers funktionierte alles wieder wie gewohnt.