Einträge getagged als ‘Wordpress’

Abgeheftet in: Website | Tags: , , | 16:05 Uhr | 0

WordPress auf UTF-8 umstellen

4
Mai

Gestern habe ich ein wenig Unterstützung zum Thema WordPress geleistet und dabei geholfen, WordPress auf auf eine MySQL 5 Datenbank zu hieven und im gleichen Schritt von Latin1 auf UTF-8 umzustellen. Damit mir meine Schritte nicht verloren gehen, hier eine kurze Anleitung dazu. Wer dieser Anleitung folgt, macht dies auf eigene Gefahr, daher immer vorher ein Backup machen.

Zeichensatz im WordPress ändern

Die Konfigurationsdatei von WordPress wp-config.php öffnen. Ob per FTP runterladen, ändern, hochladen oder per SSH direkt auf dem Server ist egal.

Dort folgenden Eintrag setzen:

define(‘DB_CHARSET’, ‘utf8′);

Im WordPress Admin Bereich unter Einstellungen -> Lesen -> Zeichensatz für Seiten und Feeds ebenfalls „UTF-8″ eintragen.

Änderungen an der Datenbank

Nun mit phpMyAdmin oder einem anderen bevorzugten MySQL-Admin Tool die Datenbank öffnen und alle Kollationen auf utf8_general_ci umstellen.

Um nun zum Schluss die falschen Umlaute, wie z. B. Ä, Ö, Ü wieder korrekt anzeigen zu lassen, müssen folgende SQLs auf der Datenbank ausgeführt werden.

update wp_posts set post_content = replace( post_content,'ü','ü');
update wp_posts set post_content = replace( post_content,'ä','ä');
update wp_posts set post_content = replace( post_content,'ö','ö');
update wp_posts set post_content = replace( post_content,'ß','ß');
update wp_posts set post_content = replace( post_content,'Ü','Ü');
update wp_posts set post_content = replace( post_content,'Ä','Ä');
update wp_posts set post_content = replace( post_content,'Ö','Ö');
update wp_posts set post_title = replace( post_title,'ü','ü');
update wp_posts set post_title = replace( post_title,'ä','ä');
update wp_posts set post_title = replace( post_title,'ö','ö');
update wp_posts set post_title = replace( post_title,'ß','ß');
update wp_posts set post_title = replace( post_title,'Ü','Ü');
update wp_posts set post_title = replace( post_title,'Ä','Ä');
update wp_posts set post_title = replace( post_title,'Ö','Ö');
update wp_comments set comment_content = replace( comment_content,'ü','ü');
update wp_comments set comment_content = replace( comment_content,'ä','ä');
update wp_comments set comment_content = replace( comment_content,'ö','ö');
update wp_comments set comment_content = replace( comment_content,'ß','ß');
update wp_comments set comment_content = replace( comment_content,'Ü','Ü');
update wp_comments set comment_content = replace( comment_content,'Ä','Ä');
update wp_comments set comment_content = replace( comment_content,'Ö','Ö');
update wp_comments set comment_author = replace( comment_author,'ü','ü');
update wp_comments set comment_author = replace( comment_author,'ä','ä');
update wp_comments set comment_author = replace( comment_author,'ö','ö');
update wp_comments set comment_author = replace( comment_author,'ß','ß');
update wp_comments set comment_author = replace( comment_author,'Ü','Ü');
update wp_comments set comment_author = replace( comment_author,'Ä','Ä');
update wp_comments set comment_author = replace( comment_author,'Ö','Ö');
update wp_term_taxonomy set description = replace( description,'ü','ü');
update wp_term_taxonomy set description = replace( description,'ä','ä');
update wp_term_taxonomy set description = replace( description,'ö','ö');
update wp_term_taxonomy set description = replace( description,'ß','ß');
update wp_term_taxonomy set description = replace( description,'Ü','Ü');
update wp_term_taxonomy set description = replace( description,'Ä','Ä');
update wp_term_taxonomy set description = replace( description,'Ö','Ö');

Das war es eigentlich schon. Eigentlich gar nicht so schwer. Wer noch andere Zeichen in seinem Blog verwendet, kann die Zeichentabelle von Bültge nutzen um diese nach dem obigen Schema zu ersetzen.

Abgeheftet in: Website | Tags: , , , , | 13:03 Uhr | 3

no nofollow!

10
März

Ein Kommentar zu meinem Plugin Lightview Plus brachte mich doch dazu, kopfschüttelnd vor dem Monitor zu sitzen. Der Kommentator setzt tatsächlich ein Plugin ein, dass jeden externen Link mit dem „nofollow“-Tag ergänzt.

Der nofollow-Tag wurde 2005 von Google eingeführt und zeitnah von den anderen Suchmachinen übernommen, der dem Suchroboter mitteilt, dass dieser Link — wie man in meiner Heimat sagt — kappes ist, also nichts Wert, unnütz ist. Aber, wie Kollege Dennis und Fabian erkannt haben, ist doch genau das, was das Internet ausmacht: VERLINKEN!

Ich bin ja total 90er, was das Internet angeht. Ja, solange habe ich schon einen Internetzugang und eine eMail Adresse. Und damals hat man mit seiner Webseite auf alles und jeden verlinkt, den man irgendwie lustig und interessant fand. Und wenn mal einer daher kam und sich in dem Gästebuch zu Wort meldete und seine Webseite angab, wurde darauf auch automatisch verlinkt.

Als es die ersten Weblogs gab, wurde auch verlinkt. Und auch jeder Kommentar und Trackback hat war ein Link zurück zum Kommentar und der Ursprungsseite.

Und heute? WordPress versieht automatisch alles was nicht von dem Blog-Autor kommt mit diesem dusseligen nofollow-Tag. Warum denn das ganze? Weil es Spambots gibt, die dir 100fach Kommentarmüll in den Blog schmeissen? Das ist doch total Quatsch! Jeder setzt doch Anti-Spam Module wie NoSpamNX oder AntiSpamBee ein, die 99,9% sicher ausfiltern.

Was soll denn sonst der Linkgeiz? Kann man denjenigen nicht belohnen, der einen netten Kommentar hinterlässt? Oder wenn schon jemand auf einen linkt, dies mit einem Trackback erwidern? Dafür wurden schließlich Trackbacks erfunden!

Um WordPress diese nofollow-Unsitte auszutreiben, kann man sog. Dofollow Plugins nutzen. Zwei, die ich einmal getestet habe sind, DoFollow und SMu Manual DoFollow.

Und jeder der mir zustimmt, sollte zur Tastatur greifen und seine Meinung dazu kund tun … und auf diesen Artikel verlinken ;-)

Abgeheftet in: Website | Tags: , , | 17:01 Uhr | 1

Plugins hausgemacht

29
Januar

Vor einiger Zeit kam ich auf die Idee, meine WordPress Installation zu verschlanken und viele Plugins rauszuwerfen. Plugins bringen eine Menge Code mit, der für kleinere Funktionen vollkommen überflüssig ist. Beispiel dafür ist auch die Ausgabe der Shares bei Facebook des Artikels. WordPress Plugins dafür gibt es einige und diese bringen mehrere hundert Zeilen Code mit, die erst einmal durchgeackert werden müssen. Klar, dass dadurch die Webseite nicht performaneter wird.

Martin kam auf die gleiche Idee seine WordPress Installation zu verschlanken und setze bereits auf hausgemachte Funktionen. Das einzige was ihm noch zum absoluten Glück fehlte war eine Möglichkeit, wie er die Anzahl der Links herausbekommen kann, die bei Facebook auf seine Artikel gesetzt wurden — auch Shares genannt.

Einen Code-Schnippsel warf ihm sein Leser Andi vor die Füße, den ich aufnahm und daraus eine WordPress-Funktion samt Caching zu basteln. Martin hat bereits eine Anleitung dazu im Netz, hier nun meine Version.

(weiterlesen …)

Abgeheftet in: Website | Tags: , , | 23:05 Uhr | 0

TopUp Plus

11
Mai

Vor einer digitalen halben Ewigkeit habe ich das WordPress Plugin Lightview Plus erstellt. Lightview Plus macht nichts anderes als jeder andere Lightbox Clone. Es zeigt Bilder in einem Overlay an, nur in einer etwas netteren Art und Weise, wie ich finde. Das Plus am Plugin ist, das man die Links zu den Bildern nicht manuell ändern muss. Das übernimmt das Plugin. Weiter ist es möglich, Videos von YouTube, Vimeo und Blip.TV auch in dem Overlay abzuspielen.

Ein Nachteil für einige ist es aber, dass Lightview zwingend das Protoype Javascript Framework voraussetzt. Prototype will aber in vielen Fällen nicht so richtig mit jQuery, was aber auch viele Plugins nutzen. Gut, es gibt einen Kompatibilitätsmodus von jQuery. Aber die wenigstens Plugins machen davon gebrauch. Und da immer mehr User sich wegen der genannten Inkompatibilität beschwerten, habe ich Lightview Plus soweit umgebaut, dass es nun als Overlay TopUp nutzt. Und der Name? Klar — ich bin unkreativ — TopUp Plus.

TopUp hat den gleichen Funktionsumfang wie Lightview, sieht genauso gut aus, nutzt aber jQuery.

Abgeheftet in: Website | Tags: , | 21:02 Uhr | 0

Smarte Archiv Seite

9
Februar

Als ich im Januar 2008 von dem Blog-System Sunlog auf WordPress umstieg, gefiel mir die Archive-Seite, die WordPress mitlieferte, überhaupt nicht. Mit dem Plugin Smart Archive von Justin Blaton kam ich aber ungefähr zu dem zurück, was ich vorher hatte.

Was mir aber nie wirklich passte war, dass bei jedem Aufruf der Archiv-Seite weit über 600 Datenbankabfragen gemacht wurden. 50 Datenbankabfragen (auch Queries genannt) durch die sehr ineffektive Programmierung des Plugin. Alle weiteren kommen durch einen zwingenden Aufruf der WordPress-Funktion get_permalink().

Mir fiel keine andere Lösung ein, als das alles zu cachen. Darum habe ich auch mir auch etwas zusammenprogammiert, was jeder gerne auch nutzen kann, dem es gefällt. Mir ist erst im nachhinein aufgefallen, dass die neue Version von Smart Archive auch Caching behinhaltet. Ich finde meine Version aber smarter ;-) . Smart Archive cached in einer eigenen Textdatei. Bei mir wird nach jedem erstellen eines neuen Artikels das Archiv neu erstellt und als Post direkt in WordPress gespeichert.

Als erstes muss folgender Code in die Datei function.php in eurem Template kopiert werden.

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
31
32
33
34
35
36
37
38
39
40
41
42
// Archive Seite
function my_archive()
{
   // set locale
   setlocale(LC_ALL,‚de_DE.UTF-8′);
   
   global $wpdb;
    $now = gmdate(„Y-m-d H:i:s“,(time()+((get_settings(‚gmt_offset‘))*3600)));  // get the current GMT date

   $allPosts = $wpdb->get_results(
       SELECT ID AS id, post_title AS title, post_name AS name, UNIX_TIMESTAMP(post_date) AS date
       FROM $wpdb->posts
       WHERE post_type = ‚post‘
       AND post_status = ‚publish‘  
       ORDER BY post_date DESC“
);
   
   $lastdate = ;
   
   foreach ($allPosts as $post) {
   
      if($lastdate != date(‚Ym‘, $post->date) ) {
         if(!empty($lastdate)) $archive .= ;
         $archive .= ‚<h2><a href=„‚ . get_month_link(date(‚Y‘, $post->date), date(‚m‘, $post->date)) . ‘“>‘ . strftime(‘%B %Y‘, $post->date) . ‚</a></h2>‘;
         $archive .= ‚<ul style=„list-style: none;“>‘;
         
         $lastdate = date(‚Ym‘, $post->date);
      }
     
      $archive .= ‚<li><a href=„‚ . get_permalink($post->id) . ‘“>‘ . $post->title . ‚</a></li>‘;
     
   }
   $archive .= ‚</ul>‘;
   
   $my_post = array();
   $my_post[‚ID‘] = 171;
   $my_post[‚post_content‘] = $archive;

   // Update the post into the database
   wp_update_post( $my_post );

}
add_action(‚publish_post‘, ‚my_archive‘); // generate archives after a new post

In Zeile 41 muss die Zeile muss die ID (hier 171) durch die ID des Archiv-Posts ersetzt werden. Am einfachsten ist dies herauszufinden, wenn man im Admin-Menu die Archiv Seite editiert. In der Adress-Zeile findest man die ID hinter post= .

Nun muss das Archiv Template in der Datei archives.php angepasst werden. Hierfür wird alles um wp_get_archives() und wp_list_categories() durch folgendes ersetzt:

1
2
3
   <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
      <?php the_content(‘<p class=„serif“>Weiterlesen &raquo;‘); ?>
   <?php endwhile; endif; ?>

Damit das Archiv angelegt wird, muss einmal ein Beitrag geschrieben werden.

Abgeheftet in: Website | Tags: , , | 13:01 Uhr | 1

Feed URL Umleitung

14
Januar

Ich wundere mich seit knapp zwei Wochen, warum meine eigenen Beiträge in meinem Feed Reader nicht mehr auftauchen. Heute habe ich dann auch das Problem gefunden.

Ich bin ja Anfang 2008 von Sunlog mit vielen eigenen gestrickten Sachen auf WordPress umgestiegen. Dadurch änderte sich auf die Feed-URL. Damit nun die paar Leser die ich schon hatte nicht die neue URL in ihren Feed Reader eintragen müssen, habe ich mit dem WordPress Plugin eine transparente Umleitung von der alten Feed URL auf die neue eingerichtet. Transparent heisst, das es weiter so aussah, dass die alte Feed URL vorhanden ist.

Und aus mir unerklärlichen Gründen funktionierte diese Umleitung seit dem 30.12.2008 nicht mehr. Mir ist dies aber heute erst aufgefallen. Den Fehler habe ich soweit es möglich war behoben. Jetzt sollte auch in allen Feed Readern wieder mein Content ankommen!

Abgeheftet in: Website | Tags: , | 10:12 Uhr | 0

Platz 171 der WordPress Plugins

31
Dezember

Was man so nicht alles erfährt. Nach dieser Liste, welche nach Anzahl der Downloads sortiert ist, ist mein Lightview Plus Plugin auf Platz 171 aller WordPress Plugins.

Wer hätte das gedacht…

Hanging Monk
Beam me up!