WordPress Notizblock http://wpdennis.posterous.com Code-Beispiele und Notizen für WordPress posterous.com Sat, 12 Feb 2011 10:47:37 -0800 Post Thumbnails in Custom Post Types http://wpdennis.posterous.com/post-thumbnails-in-custom-post-types http://wpdennis.posterous.com/post-thumbnails-in-custom-post-types

Vor kurzem stellte ich fest, dass bei einem Facebook-Like, nicht das richtige Thumbnail auf Facebook angezeigt wird. In meiner Lösung "Like auf Facebook: Richtiges Bild anzeigen" nutze ich den Mechanismus von Post Thumbnails. In einem Custom Post Type, den ich nutze, hatte ich Post Thumbnails jedoch vergessen zu aktivieren.

Aktivieren kannst du Post Thumbnails direkt über die Methode register_post_type(). Diese akzeptiert als zweiten Parameter ein assoziatives Array. Mit dem Schlüssel "supports" kannst du darin angeben, was dein Custom Post Type so alles unterstützen soll:

register_post_type('custompostname', array(             'labels' => array(                 'name' => 'Custom Post Type',                 'singular_name' => 'Custom Post Type'             ),             'public' => true,             'show_ui' => true,             'capability_type' => 'post',             'supports' => array('title', 'excerpt', 'editor', 'thumbnail', 'comments') ));

Wie du im Beispiel sehen kannst, kannst du mit supports => array('thumbnail') die Artikelvorschaubilder für deinen Custom Post Type aktivieren.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/1kAWLXhieSyZ Dennis Dennis Dennis
Wed, 02 Feb 2011 08:41:00 -0800 jQuery ColorBox in WordPress nutzen http://wpdennis.posterous.com/jquery-colorbox-in-wordpress-nutzen http://wpdennis.posterous.com/jquery-colorbox-in-wordpress-nutzen

Vor einiger Zeit habe ich verschiedene Lösungen durchprobiert, mit denen Bilder in einer Lightbox angezeigt werden. Während ich "ganz früher" Thickbox nutzte und Anfang 2010 auf Shadowbox umstieg, war ich nie ganz zufrieden. Vor allem bei der Shadowbox störte mich, dass das X zum Schließen des Fensters nicht oben rechts ist - da wo es der User erwartet.

Ich stieß vor einigen Monaten auf jQuery ColorBox, das da mit 5 vordefinierten Styles daherkommt. ColorBox überzeugte mich!

Allerdings waren die verfügbaren WordPress-Plugins allesamt nicht das, was ich erwartete und so bastelte ich mir ein eigenes kleines Plugin. Heute habe ich das Plugin ins WordPress Repository überspielt. Die Kernfeatures:

  • Deine Links werden automatisch um den benötigten Code erweitert.
  • Keine Änderungen am Original-Artikel. Nur die Ausgabe wird erweitert.
  • Das Plugin bindet das notwendige JavaScript und CSS automatisch ein.
  • Optional: Du kannst das Einbinden des ColorBox-Stylesheets und JavaScripts deaktivieren*.
  • Du kannst zwischen 5 verschiedenen Layouts wählen, die ColorBox schon mitbringt.
  • Bei mehreren Bildern in einem Artikel werden automatisch Blätterfunktionen (Nächstes / Zurück) angeboten.

Finden kannst du das Plugin auf Gameplorer.de und im WordPress Repository.

Das jQuery Plugin selbst findest du auf der offiziellen Seite von jQuery ColorBox.

 

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/1kAWLXhieSyZ Dennis Dennis Dennis
Sat, 29 Jan 2011 05:37:00 -0800 Like auf Facebook: Richtiges Bild anzeigen http://wpdennis.posterous.com/like-auf-facebook-richtiges-bild-anzeigen http://wpdennis.posterous.com/like-auf-facebook-richtiges-bild-anzeigen

Ich habe vor kurzem erstmals den Like-Button in meinem Online Games-Blog eingebaut. Allerdings werden im Facebook-Stream die falschen Bilder zu einem "Like" angezeigt. Der Facebook-Crawler wählt hier irgendein zufälliges Bild aus - irgendwie unbefriedigend.

Glücklicherweise kann man Facebook mit einem Meta-Tag mitteilen, welches Bild als Vorschaubild im Stream des "LIKEnden" angezeigt werden soll:

<link rel="image_src" href="Pfad zum Bild" />

Falls du in deinem WordPress die Artikelvorschaubilder (Post Thumbnails) nutzt, dann kannst du folgenden Code einfach in deine header.php einbauen:

if (is_object($post) and has_post_thumbnail($post->ID)):     $imgTag = get_the_post_thumbnail($post->ID, array(200, 200));     $img = preg_replace('#^.*src="([^"]+)".*$#Ui', '$1', $imgTag);     echo '<link rel="image_src" href="' . $img . '" />'; endif;

Der Code sollte irgendwo im <head>-Bereich seinen Platz finden. Als kleine Verbersserung könntest du noch ein Standardbild ausgeben, für den Fall, dass has_post_thumbnail() false zurück gibt.

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/1kAWLXhieSyZ Dennis Dennis Dennis
Fri, 28 Jan 2011 09:46:00 -0800 Funktion "is_user_logged_in" in Plugin verwenden http://wpdennis.posterous.com/funktion-isuserloggedin-in-plugin-verwenden http://wpdennis.posterous.com/funktion-isuserloggedin-in-plugin-verwenden

Die WordPress-Funktion is_user_logged_in() gibt true zurück, wenn der aktuelle User eingeloggt ist, andernfalls false. Du kannst diese Funktion jedoch nicht direkt in deinem Plugin nutzen, da das Plugin aufgerufen wird, bevor is_user_logged_in() deklariert wurde. So liefert folgender Code eine Fehlermeldung:

<?php /* Plugin Name: Beispiel Plugin */ if (is_user_logged_in())     // tu was ?>

Die Fehlermeldung, die der Code erzeugt ist:

Fatal error: Call to undefined function is_user_logged_in().

Falls du die Funktion is_user_logged_in() dennoch nutzen willst, musst du sie in eine Funktion packen, die du über eine spätere Aktion aufrufst ("hookst"). Z.B.:

add_action('after_setup_theme', 'meine_funktion_die_is_user_logged_in_nutzt'); function meine_funktion_die_is_user_logged_in_nutzt() {     if (is_user_logged_in())         // tu was }

In der Funktion, die als 2ter Parameter an add_action() übergeben wird, kann is_user_logged_in() wie gewohnt verwendet werden. Als Aktionen können, neben "after_setup_theme" noch viele andere verwendet werden. Die Wahl solltest du davon abhängig machen, was du konkret in der Funktion vor hast.

 

Permalink | Leave a comment  »

]]>
http://posterous.com/images/profile/missing-user-75.png http://posterous.com/users/1kAWLXhieSyZ Dennis Dennis Dennis