WordPress-Plugin basteln

Nun habe ich mir mein erstes WordPress-Plugin erstellt.

Mein Problem war ja, daß der Google Übersetzer auch MATHEsoft übersetzt in irgendwas mit Mathematik. Das soll er aber nicht, denn dies ist ja eine Marke, die das Maschinchen aber nicht kennt und daher diesen Fehler macht.

Zuletzt habe ich ja beschrieben, wie ich die ungewollte Übersetzung vermeiden kann. Mit meinem Plugin scheibe ich nun nur während der Texteingabe einen Kurzbefehl direkt in den Text und WordPress baut es mir beim Anzeigen der Seite korrekt auf.

Das ist alles Text von [nogot text="MATHEsoft"], der hier helfen möchte.

Das, was in den [ ]-Klammern steht, ist der Kurzbefehl, den mein Plugin nun ausliest. Ein Plugin wird in PHP geschrieben.

defined('ABSPATH') or die('No script kiddies please!');
/* Plugin Name: NoTranslate
   Description: Use a shortcode to mark a word as forbidden to translate ...
*/ 

Plugin Name und Description sind Schlüsselwörter, die WP für die Anzeige in der Plugin-Übersicht verwendet und auch vielleicht später anderen Nutzern von Vorteil sind.

function NoTranslateThis($atts) {
  extract(shortcode_atts(array( 
   "text" = '',
   "tag" = 'span'
  ), $atts));

  return '<'.$tag.' class="notranslate">'.html_entity_decode($text).'</'.$tag.'>';
}

Diese Funktion liest aus, was ich in meinen eckigen Klammern als Parameter angebe. Gebe ich kein tag an, wird der Wert mit span gesetzt. Als letztes wird der mühselige String zusammengesetzt und an Stelle der [ ]-Klammern eingesetzt.

Das html_entity_decode ermöglicht es mir, auch innerhalb eines verbotenen Textes HTML-Tags zu verwenden, zB um das ® in die gehobene Position zu bringen.

Das ist alles Text von [nogot text="MATHEsoft<sup>&reg;</sup>"], der hier helfen möchte.

Damit WP jedoch weiß, auf welchen Kurzbefehl, nämlich nogot („ no google translation „) es reagieren soll, erklären wir es so:

add_shortcode("nogot", "NoTranslateThis");  // (shortcut-name, function-name)

Das ist alles.

Diese PHP-Datei (ordentlich mit ?php-Tag eingeleitet und abgeschlossen) wird jetzt in einen neuen Ordner im WordPress-Pfad /wp-content/plugins hochgeladen.
Im WordPress-Adminbereich Plugins – Installierte Plugins (durch das Anlegen des Ordners und das hinzufügen der PHP-Datei erkennt WP es als „installiert“) muss unser Plugin jetzt nur noch aktiviert werden.

Nach der erfolgreichen Aktivierung können wir also fortan Begriffe, die nicht übersetzt werden sollen, mit dem Kurzbefehl vor Google ausklammern.

Beim Erstellen habe ich bemerkt, daß der Übersetzer auch Texte ignoriert, die mit dem Code-Tag umschlossen werden. Allerdings habe ich für Code eine andere Formatierung, das würde den Textfluss stören. Kann man aber auch so machen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.