Alle Artikel mit Tag “Hack”
WordPress Bookmarks so wie ich sie mag
Vom 04.03.2010
Die in WordPress standardmässig integrierte Möglichkeit, die Links ausgeben zu lassen (wp_list_bookmarks oder wp_get_bookmarks) hat mich noch nie besonders erfreut, da die Möglichkeiten, die Ausgabe nach eigenen Wünschen anzupassen relativ gering sind. Generell wird bei wp_list_bookmarks die Chose schonmal als Liste ausgegeben, was zwar in den meisten Fällen ok ist, aber in meinem Fall etwas ungünstig.
Das Ziel war eine Ausgabe in Tabellenform, mit dem Bild zum Link in der einen Spalte und der Überschrift incl. Link-Beschreibung in der anderen Spalte. Um das zu ermöglichen musste mal wieder eine etwas spezifischere Abfrage her. Hier ist sie:
<?php
$links = $wpdb->get_results("SELECT * FROM $wpdb->links ORDER BY link_name ASC");
echo "<table border='0' class='linktable'>";
foreach ($links as $link) {
$linkurl=$link->link_url;
$linkdesc=$link->link_description;
$linkname=$link->link_name;
$linkimage=$link->link_image;
$linknotes=$link->link_notes;
echo "<tr><td><a href='$linkurl' target='_blank'><img src='$linkimage' alt='$linkurl' border='0' class='linkimg'></a></td>";
echo "<td valign='top' class='link-desc'><h5>$linkname</h5>";
echo "<div class='link-description'>$linkdesc </div></td></tr>";
}
echo "</table>";
?>
Und auch zum Download verfügbar (Code am Besten in ein neues Seiten-Template in den Loop irgendwo unter den Content einfügen)
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
In einem aktuellen Projekt stellte sich mir folgende Aufgabe:
Von den (mehreren) einem Post angehängten Bildern sollte das ERSTE Bild in Medium-Größe im Beitrag angezeigt werden.
Dabei sollte die Galerie-Sortierung des Posts für die Bildreihenfolge zu Grunde gelegt werden. Der Kunde soll also durch sortieren auch entscheiden können, welches Bild auf der Post-Seite angezeigt wird.
Bei Klick auf das Bild sollte eine Greybox (Plugin Greybox-Integrator) geöffnet werden, in der dann alle restlichen Bilder, die am Beitrag hä¤ngen angezeigt werden (durch Pfeile navigierbar). Dieser Teil kann durch kleinste Code-Änderungen natürlich so angepasst werden, dass sich eine andere Viewer-Box öffnet.
Weil es gerne Probleme gibt, wenn man den Code aus dem Fenster unten kopiert, hier der Download als Textdatei.
Hier ist der Code (muss in den Loop auf index.php oder category.php oder auch single.php)
Wenn Dich das froh gemacht hat, kommentiere doch einfach
<!--Automatic Greybox-->
<?php
//Die zum Post gehoerenden Bilder ins Array $images schreiben
//Put images from post in to array $images. Order by menu order defined in post gallery
$images = get_children( array('post_parent' => $post->ID, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID') );
//Pruefen, ob dem Beitrag Bilder angehaengt wurden.
//check if there are any images attached to the post
if (isset($images))
{
//Den Zaehler auf 0 setzen
//set counter to 0
$count=0;
//Alle Bilder im Array $images nacheinander durchlaufen
//go through all images in array $images
foreach( $images as $image )
{
$imageID = $image->ID;
//fuer jedes Bild im Array die URL von sowohl der Mittleren, als auch der grossen Groesse ermitteln.
//get medium and large image url for image
$medImageSrc = wp_get_attachment_image_src($imageID, $size='medium', $icon = false);
$largeImageSrc = wp_get_attachment_image_src($imageID, $size='large', $icon = false);
//Wenn es sich um das erste Bild im Array handelt...
//If it's the first image in the array
if ($count==0)
{
//Den Greybox-Code mit einem Vorschaubild ausgeben
//output Greybox Code with medium size preview
echo"<a href='$largeImageSrc[0]' rel='shadowbox[Bilder]'><img src='$medImageSrc[0]' border='0'></a>";
}
//alle Bilder ,die nach dem erstern Bild kommen
//this is for all the images that come after the first one
else
{
//unsichtbare Greybox-Verknuepfung darstellen.
//create invisible Greybox-Links without preview image
echo"<a href='$largeImageSrc[0]' rel='shadowbox[Bilder]'></a>";
}
//Zaehler erhoehen.
//increase counter
$count++;
} //foreach
}
?>
<!--ENDE Automatic Greybox -->