Alle Artikel zum Thema “Plugins”
Custom Post Types und Taxonomien
Vom 10.08.2011
Manchmal mag es recht nützlich sein, einen Custom Post Type anzulegen, der dann auch noch verschiedene Eigenschaften hat.
Das geht recht komfortabel über ein Plugin namens Custom Post Type UI , das sowohl das Anlegen des Custom Post Types als auch der dazu gehörigen Taxonomien einfach macht. Wenn man aber sicher gehen möchte, dass auch ohne den Einsatz eines Plugins der Custom Post Type vorhanden ist, kann man den auch durch einen Eintrag in der functions.php seines Themes erstellen.
function post_type_distributors() {
register_post_type(
'distributoren',
array(
'label' => __('Distributoren'),
'public' => true,
'show_ui' => true,
'supports' => array(
'title',
'editor'
)
)
);
register_taxonomy( 'regionen', 'distributoren',
array(
'hierarchical' => true,
'label' => __('Regionen'),
'query_var' => 'regionen',
'rewrite' => array('slug' => 'regionen' )
)
);
register_taxonomy( 'branchen', 'distributoren',
array(
'hierarchical' => true,
'label' => __('Branchen'),
'query_var' => 'branchen',
'rewrite' => array('slug' => 'branchen' )
)
);
}
add_action('init', 'post_type_distributors');
Wieder mal eine Herausforderung.
Lage: Es gibt ein “Kontaktformular” mit DEM Kontaktformular – Plugin CForms, durch das Benutzer/Kunden auf der Seite eine Bestellung abgeben können. Dieser Vorgang wiederholt sich teilweise wöchentlich. Um Fehler zu verhindern und dem Kunden die Sache einfacher zu machen wollte ich versuchen, wichtige Informationen direkt aus den Benutzerinformationen des angemeldeten Benutzers herauszulesen (Wir gehen hier davon aus, dass jeder Kunde ein WordPress Benutzerkonto benötigt, um Bestellungen abzugeben).
Für die wichtigsten Standardinformationen hat CForms schon vorgesorgt. Es gibt Variablen, die die Standard-Benutzerinformationen des angemeldeten Benutzers auslesen. Diese können dann bei der Erstellung des Formulars verwendet werden. Zum Beispiel als Default-Wert:
In dem mir vorliegenden Fall wollte ich aber noch einen Schritt weiter gehen und ein paar Zusatzfelder haben, in die ich weitere benutzerspezifische Informationen eingeben kann und die später AUCH im Formular automatisch ausgefüllt werden sollten. In diesem Fall die Felder “Firmenname” und “Ansprechpartner”.
Daraus ergeben sich zwei “Aufgaben”.
1. müssen die zusätzlichen Felder beim Anlegen eines neuen Benutzers in der Maske auftauchen, damit ich die Werte für “Firmenname” und “Ansprechpartner” überhaupt eintragen kann.
2. muss CForms informiert werden, dass es diese neuen Informationen gibt und es muss jeweils eine im Formular verwendbare Variable angelegt werden ( {Firmenname} und {Ansprechpartner} )
Um den ersten Schritt zu bewältigen gab es nach einiger Recherche für mich zwei Möglichkeiten. Entweder kann ich die zusätzlichen Felder durch eine Anpassung der functions.php erreichen (hat den Vorteil, dass die Felder damit an mein Theme gebunden sind und bei einem Umzug auf ein anderes System automatisch gleich wieder mit dabei sind. Mehr Informationen zu dieser Methode gibt es bei Justin Tadlock. Seine Anleitung ist einfach zu verstehen und funktioniert hervorragend.
Die zweite Möglichkeit ist der Einsatz eines Plugins. Auch hier habe ich mehrere versucht und bin letztlich sehr zufrieden mit der Leistung von Register Plus Redux. Das Plugin bietet mir neben dem Einfügen zusätzlicher Felder auch noch weitere nützliche Anpassungsmöglichkeiten.
Ich habe mich der Einfachheit halber für die zweite Variante entschieden.
Erster Schritt ist natürlich die Installation des Plugins Register Plus Redux. Nach der Aktivierung des Plugins findet man unter “Einstellungen” die Optionen. Hier gibt es auch einen Block “Weitere Felder”. Dort können beliebige neue Felder für die Profilseite angelegt werden.
Damit ist unser erster Schritt schon abgefrühstückt. Im Profil sieht das dann so aus:
Der zweite Schritt ist leider mit einem Eingriff in die Core-Dateien des Plugins CForms verbunden. Sollte dies jemand lesen, der eine bessere Idee hat bin ich natürlich sehr dankbar für Hinweise. Bis dahin mache ich es eben so: Die Datei ‘plugins/cforms/lib_aux.php wird im Bereich von Zeile 860 (bei mir… keine Garantie) durch folgende zwei Code-Zeilen ergänzt:
$m = str_replace( '{Firmenname}', $CurrUser->firmenname, $m );
$m = str_replace( '{Ansprechpartner}', $CurrUser->ansprechpartner, $m );
Damit haben wir CForms mitgeteilt, dass die beiden Variablen {Firmenname} und {Ansprechpartner} mit den Werten aus den eben erstellten Feldern befüllt werden sollen.
Damit sind wir fertig und können nun im Cforms Formular die zwei neuen Variablen verwenden.
Und wenn die Informationen im Profil angegeben sind, sieht das Formular für den angemeldeten Benutzer dann so aus:
Diese Anleitung dient in der Hauptsache meiner eigenen Dokumentation. Sollte sie für Dich hilfreich sein, freue ich mich natürlich!
Custom Field Matrix
Vom 16.02.2011
Ich habe zwar noch keine Ahnung, wo und wie ich dieses gerade neu entdeckte Plugin verwenden werde, aber ICH WERDE es verwenden. Das ist eine weitere aufregende Erweiterung von WordPress um tolle Funktionen
Wunderbar!
Endlich – Global Content Blocks
Vom 17.01.2011
Schon wieder ein Plugin für WordPress, das mir zu meinem perfekten WordPress-Glück noch gefehlt hat!
Es kommt ja nicht gerade selten vor, dass man ein und dieselbe Information, eine Tabelle, einen Link etc. immer wieder verwenden möchte. Bisher hieß das, man muss den Text eben nochmal tippen oder irgendwo kopieren. Nun schafft das Plugin “Global Content Blocks” endlich Abhilfe. Es macht genau das, was ich mir vor einigen Wochen gewünscht habe.
In einer zentralen Admin-Oberfläche werden die “Snippets” erstellt und organisiert und im TinyMCE Editor der Seiten und Artikel erscheint ein Button, mit dem man die Schnipsel dann einfügen kann. Hier hat man die Wahl zwischen einem Shortcode oder dem vollständigen Schnipsel-Inhalt.
Ein Traum wird wahr
Link REL bei TinyMCE Advanced hinzufügen
Vom 02.12.2010
Wieder mal ist mir ein Bedürfnis nach einer Anpassung vorhandener Software entstanden als ich an einer Kundenseite gearbeitet habe. Das Ziel war, dass der Kunde per Klick (also ohne im Quelltext arbeiten zu müssen) die Möglichkeit haben sollte, eine REL Attribut (“gallery”) zu einem Link hinzuzufügen.
Ich verwende für mehr Kontrolle und Erweiterung der vorhandenen TinyMCE-Oberfläche in WordPress sowieso schon das Plugin TinyMce Advanced und komme dadurch in den Genuß erweiterter Link-Einstellungen in einem Popup-Fenster.
In diesem Popup mit erweiterten Link-Einstellungen gibt es den Reiter “Erweitert” auf dem auch die “Beziehung der Seite zum Linkziel” erfragt wird. Wobei es sich natürlich um eine deutsche Beschreibung des REL Attributs handelt.
Die dort verfügbaren Einträge in der Dropdown-Liste beinhalteten natürlich NICHT den von mir gewünschten Eintrag “gallery”. Nach einer Recherche im Internet habe ich dann schnell die Lösung gefunden und notiere sie nun hier, damit ich sie nicht vergesse.
Es muss die Datei
/wp-content/plugins/tinymce-advanced/mce/advlink/link.htm
bearbeitet werden. Dort gibt es einen Bereich in dem die Dropdownliste für das REL Attribut definiert wird:
<tr>
<td><label id="rellabel" for="rel">{#advlink_dlg.rel}</label></td>
<td><select id="rel" name="rel">
<option value="">{#not_set}</option>
<option value="Gallery">Gallery</option>
<option value="lightbox">Lightbox</option>
<option value="bookmark">Bookmark</option>
<option value="nofollow">No Follow</option>
</select>
</td>
</tr>
Dort kann man (wie oben im Beispiel schon getan) seine eigenen Einträge machen und ggf. unnötige und verwirrende vorhandene Einträge entfernen (wie oben auch schon geschehen).
Das ist natürlich nicht optimal, da bei einem Update des Plugins alle Änderungen erneut gemacht werden müssen aber es funktioniert!
Per Page Sidebars
Vom 28.08.2010
Und wieder habe ich ein sehr interessantes Plugin gefunden: Per Page Sidebars
Damit kann man auf jeder einzelnen Seite im WordPress die Standard-Sidebar “überschreiben” mit einer eigenen Sidebar. Das funktioniert so: Auf der Seite selbst im Editier-Modus wird ein Häkchen gemacht, daß man die (oder eine der ) Standard-Sidebar durch eine Eigene ersetzen möchte.
Jetzt geht man in die Widget-Verwaltung und sieht nun eine neue Sidebar, die man wiederum mit beliebigen Widgets bestücken kann. Eine ganz feine Sache, wenn man WordPress als CMS nutzen möchte.
MultiEdit Plugin für WordPress
Vom 13.08.2010
Wieder mal ein schönes WordPress-Plugin, das meine Aufmerksamkeit erregt hat. Das MultiEdit Plugin.
Man kann damit mehrere getrennte editierbare Bereiche auf einer Seite definieren. Die Bereiche werden im Theme eingefügt und können dann über den normalen WYSIWYG-Editor in WordPress befüllt werden. Das ermöglicht ggf. für eine Seite auch individuellen Content im Fußbereich oder in der Sidebar. Super!
NGGallery: Bildbeschreibung unter Bild anzeigen
Vom 11.06.2010
Um die Bildbeschreibung der Bilder in der Galerie anzeigen zu lassen genügt das Einfügen der Galerie mit diesem Code:
Die Beschreibungen müssen dann ggf. noch im entsprechenden Stylesheet aufgehübscht werden.
Eigenen Button in TinyCMS einfügen
Vom 17.02.2010
Dieser Tage bin ich über ein Problem gestolpert, das ich schon häufiger hatte, das aber bisher nicht meine volle Aufmerksamkeit bekam.
Nehmen wir an, ich hätte gerne einen Button im WordPress TinyMCE Editor, mit dem ich per Knopfdruck einen beliebigen Text (oder Code) einfügen kann. Nichts Aufregendes, nur ein fixer Text, der an der Stelle des Cursors eingefügt wird.
Nach ein wenig Recherche habe ich eine Codepackung (Plugin) gefunden, die schon alles hat was ich brauche und an der ich nur noch einige kleine Veränderungen vornehmen muss, damit es genau das tut, was ich möchte.
Hier ist der Artikel zu finden : Deanna Schneider – TinyMCE Custom Buttons
Das Plugin öffnet ein Dialogfenster in dem eine Usereingabe erwartet wird. Das konnte ich durch einige Änderungen an der Datei window.php ändern. Dort habe ich einfach die Variable tagtext fest mit meinem Wunschtext definiert, die Eingabefelder ausgeblendet und ein verstecktes Feld im Formular erstellt, das den Wert 1 für die Variable rsstag mitschickt. Damit es schick ist, kann man natürlich auch noch den Button nach eigenen Wünschen bearbeiten.
Voilá! Danke, Deanna Schneider! Frauen an die Tasten!
Für die, die es interessiert, ist hier auch noch meine modifizierte Version zum Download: helloworld_mod
Meine Lieblings- WordPress Plugins
Vom 22.10.2009
Es ist schon ein bischen länger her, aber auch um selber den Überblick über die vielen tollen Zusatzfunktionen für WordPress durch Plugins zu behalten, werde ich jetzt mal meine grauen Zellen in Schwung bringen und eine Liste meiner wirklich ALLERLIEBSTEN WordPress-Plugins schreiben!
1. CForms von Deliciousdays – Das definitiv allerbeste Kontaktformular-Plugin aller Zeiten! Es gibt nicht genügend Worte um es zu loben. Und nicht nur das! Auch die Homepage des Autoren ist ein wahrer, köstlicher Augenschmaus…
2. Contentboxes von meinem WordPress-Buddy Ralf Hortt – Gold und Platin wert, wenn man WordPress als Content-Management benutzen will. Was tut es? Man erstellt Artikel beliebigen Inhalts und publiziert sie in die Kategorie "Contentbox". Nun kann bei jeder Seite im Edit-Modus eine beliebige Anzahl von solchen "Contentboxen" gewählt werden, die dann in der Sidebar angezeigt werden. DAS haben wir gebraucht. Variablen Content (seitenbezogen) in der Sidebar! DANKE!
2b. Secondary HTML Content von Jacob M Goldman – erfüllt quasi denselben Zweck wie die contentboxen. Wird nur ein bischen anders gehandhabt.
3. Link to Post von Ajcrea – Auch das hat mir noch zu meinem WordPress-Glück gefehlt! Dieses feine Plugin erlaubt es, per TinyMCE-Button auf eigene interne Posts und Seiten zu verlinken. Bei Klick erhält man ein Fensterlein mit einer Liste der vorhandenen Posts (incl. Suche) und mit einem einfachen Klick auf den gewünschten Artikel wird der Link erzeugt. BINGO!
4. NextGen Gallery von Alex Rabe – Die einfach allerbeste Galerie mit allen Funktionen, die man sich nur wünschen kann. Alle lieb gewonnenen Funktionen und Eigenschaften dieses Meisterwerks hier aufzuzählen würde meinen Datenbank-Speicherplatz sprengen
5. TinyMCE Advanced von Andrew Ozz – Den liebe ich, weil ich damit meinen Editor so hinbasteln kann, wie ich will. Unnötiges Zeug raus, wichtiges Zeug in die erste Reihe und vor allem die tolle Tabellen-Leiste rin!
5b. PS Disable Auto Formatting von Hitoshi Omagari . Schaltet die Autoformatierung im Editor ab. So bleiben Zeilenumbrüche auch wirklich Zeilenumbrüche"!
6. WPML Multilingual WordPress – Benutze ich hauptsächlich für schöne, einfach zu verwaltende horizontale Dropdown-Menüs. Mittlerweile aber auch ein tolles System um ein mehrsprachiges Blog zu betreiben! Way to go!
7. My Page Order von Geekyweekly – Nichts Weltbewegendes aber oft sind es ja die kleinen Dinge… Einfach die schönste und schnellste Methode um seine WordPress Seiten zu sortieren.
8. Page Link Manager von Garrett Murphey – Und noch eins von diesen kleinen aber unverzichtbaren Helferlein. Per Häkchen einfach Seiten aus der Seitennavigation ausblenden. Funktioniert auch mit dem Dropdown-Menü von WPML.
TO BE CONTINUED!
