Archiv für die Kategorie ‘Webentwicklung’

Donnerstag, 4. März 2010

WordPress: Felder dem Kommentar-Formular hinzufügen

Beim Basteln eines WordPress Themes, bin ich auf das Problem gestoßen, dass ich meinen Kommentaren gerne ein Feld für die Twitter-ID hinzufügen wollte. Zuerst bin ich auf das Plugin Extra Comment Fields gestoßen. Das Plugin hat mir aber die Kommentar-Seite im Backend zerschossen und war für mich deshalb nicht brauchbar. Zum Glück bin ich auf eine viel bessere Lösung gestoßen. WordPress bietet seit der Version 2.9 die Möglichkeit, Meta-Felder den Kommentaren hinzuzufügen.

Zuerst muss dafür der functions.php dieser Code hinzugefügt werden:

1
2
3
4
5
add_action ('comment_post', 'add_meta_settings', 1);

function add_meta_settings($post_id) {
add_comment_meta($post_id, 'twitterid', $_POST['twitterid'], true);
}

Dann muss das Kommentar-Formular in der comments.php um das Twitter-Feld erweitert werden.

1
2
<label for="twitterid">Twitter Name:</label><br />
<input type="text" class="ipt-name" name="twitterid" id="twitterid" >

Jetzt wird beim Abschicken eines Kommentars die Twitter-ID gespeichert und man muss sich nur noch um die Ausgabe kümmern. Dies geht wieder in der comments.php in der Schleife der Kommentar-Ausgabe.

1
2
3
$twitterid_array= get_comment_meta(get_comment_ID(),"twitterid");
$twitterid = $twitterid_array[0];
if (isset($twitterid)) echo $twitterid;

Was haltet Ihr von der neuen Funktion? Welche Felder fehlen Euch?

Freitag, 13. November 2009

WordPress: Anzahl der angezeigten Posts pro Seite ändern

Bei den Arbeiten an meinem Fotoblog bin ich auf ein Problem gestoßen. Ich wollte, dass für eine Kategorie und deren Unterkategorie nur ein Post pro Archivseite dargestellt wird. Dies kann man laut Dokumentation mit folgendem Code vor der Loop machen:

1
2
3
4
5
6
7
8
9
10
11
12
13
// Das Query
global $query_string;
query_posts($query_string . "&posts_per_page=5");

// Die Loop
if ( have_posts() ) : while ( have_posts() ) : the_post();
 ..
endwhile; else:
 ..
endif;

// Query zurücksetzen
wp_reset_query();

Also habe ich den Code in der archive.php verpackt und vorher je nach Kategorie posts_per_page verändert. Leider hat das in den Unterkategorien nicht funktioniert. Ich bin immer wieder auf 404 Seiten gelandet. :-( Ich habe schon einen WordPress-Bug vermutet und auf anraten anderer Entwickler ein Ticket eröffnet. Das Ticket wurde mit dem Hinweis, dass dies ein normales WordPress-Verhalten sei, geschlossen. Grund hierfür ist, dass WordPress das Paging errechnet bevor das Query abgeschickt wird, d.h. Query und errechnetes Paging stimmen nicht überein. Zum Glück hat der Entwickler, der das Ticket bearbeitet hat, mir einen Workaround aufgezeigt.
Das Problem lässt sich mit Hilfe eines Filters beheben. Dieser wird in der functions.php mit diesem Code gesetzt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Filter hinzufügen
add_filter('request', 'set_post_per_page_for_cat');

function set_post_per_page_for_cat($vars) {
   
    // ID der Kategorie, bei der und deren Unterkategorien posts_per_page geändert werden sollen
    $cat = 7;
   
    // Anzahl der Posts
    $post_count = 1;

    // Aktuelle Kategorie
    $cur_category_slug = get_term_by( 'slug', $vars['category_name'], 'category' );
    $cur_category = $cur_category_slug->term_id;
    if ( $cat == $cur_category ) {
        // Wenn die Kategorie die zu Ändernde ist
        $vars['posts_per_archive_page'] = $post_count;
        return $vars;
    } else {
        $subcats=explode('/',get_category_children($cat));
        if( in_array($cur_category, $subcats) ){
            // Wenn die Kategorie eine Unterkategorie der zu Ändernden ist
            $vars['posts_per_archive_page'] = $post_count;
            return $vars;
        }  
    }
   
    $vars['posts_per_archive_page']=get_option('posts_per_page');
    return $vars;
}

Ich hoffe dieser Codeschnipsel hilft Euch weiter. Freue mich über Fragen und Anregungen. :-)

Mittwoch, 14. Oktober 2009

Fotoblog mit YAPB in WordPress integrieren

Wie einige von Euch sicherlich schon gesehen haben, gibt es seit einiger Zeit ein Fotoblog Widget auf meiner Seite. Dies war aber nur der erste Schritt der Fotoblogintegration in WordPress, die ich jetzt fürs Erste abgeschlossen habe.

Klar nun fragen sich bestimmt einige, warum hat er seine Bilder nicht bei Flickr oder Picasa? Zum Einen wollte ich die Bilder nicht aus der Hand geben und zum Anderen mag ich es, wenn alles aus einem Guss ist. Deshalb habe ich nach einer Lösung mit und für WordPress gesucht. Mit dem YAPB Plugin habe ich eine für mich ideale Lösung gefunden.

YAPB steht für Yet Another PhotoBlog und erweitert WordPress um Fotoblog-Funktionen. Für die Standardfunktionen muss nicht einmal ein Theme verändert werden, denn der Fotoblog integriert sich sehr gut in WordPress.

Für die Anzeige der Bilder in der Sidebar, muss noch das YAPB Sidebar Widget installiert werden.

Da ich aber YAPB mehr mit meinem Theme verzahnen wollte, habe ich einige Änderungen vornehmen müssen, die ich Euch nach dem Aufräumen im Code gerne in Form eines YAPB fähigen WordPress Themes zur Verfügung stellen will. Mein Ziel war es den Fotoblog anders als den Hauptblog aussehen zu lassen und trotzdem eine enge Verzahnung zu schaffen. Am Besten schaut Ihr Euch das Ergebnis einfach an. :-)

Dienstag, 28. Juli 2009

Vierter Webmontag in Augsburg

Nachdem ich den vierten Webmontag in Augsburg schon angekündigt habe, war ich gestern natürlich auch vor Ort. Mit mir trotzten ungefähr 15 Webmontagler der Versuchung in den Biergarten oder an den See zu gehen. Der Sponsor des Begrüßungsgetränks war gestern: Meistertipp. de – News und Tipps für Unternehmer im Bauhandwerk.

Leider gab es auch diesmal nur ein Standup, das von Marc Frey gehalten wurde. Thema des Standups war: My-MIKI.com – Neue Medien für das neue Web: Wie Print und Online wirklich zusammenpassen. Bei My-Miki handelt es sich um eine Plattform, auf der jeder auf einfachem Weg ein Online Magazin – wie man es aus dem Zeitschriftenhandel kennt – erstellen kann. Diese so genannten Mikis können Bilder, Texte, Grafiken, Videos, Verlinkungen, Votings und Kommentarfunktionen beinhalten und lassen sich ähnlich wie YouTube Videos auf anderen Seiten einbinden.

Hier könnt ihr ein Miki zum Thema Outdoor bewundern (mit den Pfeiltasten <- -> könnt ihr Blättern):

Ich denke, ein Miki ist eine interessante Möglichkeit sich kreativ auszutoben, für welche man auf Grund der niedrigen Einstiegshürde sicherlich auch Schüler begeistern kann.

Ich freu mich schon auf den nächsten Webmontag. :-)

Donnerstag, 23. Juli 2009

Vorbericht zum vierten Augsburger Webmontag

Am Montag den 27. Juli um 19:00 Uhr findet der vierte Augsburger Webmontag im Capitol am Moritzplatz statt. Wer Lust hat zu kommen, kann sich auf der Wiki Seite des Webmontags eintragen. Leider steht noch kein Standup und kein Begrüßungsdrink-Sponsor fest, also meldet Euch fleißig. ;-)

Für alle die nicht wissen, was es mit dem Webmontag auf sich hat, hier die Beschreibung aus dem Wiki:

Web Montag ist ein informelles, nicht-kommerzielles, dezentral organisiertes Treffen, das zum Ziel hat, all diejenigen miteinander zu verbinden, die die Zukunft des Internet gestalten. Inspiriert von der Kultur Silicon Valleys startete der Web Montag gegen Ende 2005 in Köln als Versuch, ein bisschen “kalifornischen Sonnenschein” nach Deutschland zu bringen.

Seitdem hat sich der Web Montag schnell weiterverbreitet: Treffen finden mittlerweile in mehr als 40 Städten überall in Deutschland und Österreich, in Schweden, Silicon Valley sowie auf Second Life statt. Als Treffpunkt und Anlaufstelle der verschiedenen lokalen Web 2.0- und Startup-Szenen hat der Web Montag mit seinen bisher 100+ Veranstaltungen bereits 1.000+ Teilnehmer angezogen, mit teils sehr erfreulichen Auswirkungen.

Alle, die mit Web 2.0 und benachbarten Themen zu tun haben und interessiert daran sind, ihr Wissen zu teilen und sich miteinander auszutauschen, sind herzlich willkommen. Ob Erfinder, Ingenieur, Designer, Gründer oder Finanzier – Web Montag ist die Gelegenheit, sein neues Produkt, Service, Startup, oder die nächste große Idee einem stetig wachsenden Publikum von Webbegeisterten vorzustellen.

Außerdem gibt es von mir noch Berichte vom Zweiten und Dritten Webmontag.

Würde mich freuen den ein oder anderen von Euch am Webmontag zu treffen.