Archiv für das Tag 'Wordpress'

WordPress 2.8.3

4. August 2009

Wordpres Logo

Und wieder ist ein kleines aber wichtiges Update für WordPress erschienen. So, wie es beschrieben wird, liegt in der älteren Version ein schwerwiegender Fehler in der Rechteverwaltung vor.

Ich habe die Aktualisierung heute mal nicht über die automatische Updatefunktion genutzt sondern mir das Upgrade-Paket direkt von WordPress Deutschland herunter geladen. Das funktionierte binnen Sekunden und auch ohne weitere Probleme.

WordPress-Plugin Thread Twitter

17. Juli 2009

Der liebe Luigi bat mich vor einigen Tagen, mal das o.g. Plugin näher vorzustellen und gerne möchte ich nun seiner Bitte nachkommen.

Wer das Plugin gleich in Action sehen möchte, der kann sich das vorab auf meiner Seite Twitter bei mir ansehen. Im Prinzip ist es nichts anderes, als dass es die letzten Aktionen bei Twitter in recht hübscher Darstellung aufbereitet.

Für mich als Administrator ändert sich auf der Seite lediglich eine Kleinigkeit: Ich kann von dort auch direkt via Eingabefeld twittern:
thread_twitter_input

Das kann ich zwar auch im Backend, aber so direkt auf der eigenen Seite macht es einfach wesentlich mehr Laune.

Warum ich mich aber letztlich für dieses Plugin entschied, war, dass es mir vollkommen frei in die Hände legt, es so zu gestalten, wie es mir gefällt. Das heißt, es gibt auf der Plugin-Seite eine kleine Hilfe, welche CSS-Anweisungen in die eigene style.css einzutragen sind, damit es einigermaßen gut aussieht.

Nach der Installation und Aktivierung des Plugins sollte man sich wieder eine eigene Template-Datei erstellen. Ich habe das zwar vor einigen Tagen für die Links-Seite erklärt, aber gerne zeige ich den vollständigen Code für die Twitter-Seite:

<?php
/*
Template Name: Threaded Twitter
*/
?>
<?php get_header(); ?>    
<div id="content">
<div id="primarycontainer">
<div id="primarycontent">
<div id="contentarea"><!-- Primary content area start -->
<div class="post">
<h4><a href="&lt;?php the_permalink() ?>" rel="bookmark" title="Permanenter Link: <?php the_title(); ?>"><?php the_title(); ?></a></h4>
<div class="contentarea">
    <div class="twitter-tweedles">
    <h4><a href="http://twitter.com/habir" title="Folge mir bei Twitter" target="_blank">Folge mir</a></h4>
    <?php
    if (function_exists('thread_twitter')) {
    thread_twitter();
    }
    ?>
    </div>
</div>
</div>
</div><!-- primarycontent end -->
</div><!-- primarycontainer end -->
</div><!--content end -->
<?php get_sidebar(); ?>
<?php get_footer();?>

Die wichtigste Funktion habe ich etwas eingerückt, damit zu sehen ist, wie ich das ganze eingebunden habe.

Meine CSS-Anweisungen in der style.css sehen nun wie folgt aus:

/* Thread Twitter Start */

.post .twitter-tweedles {
background : #e2f2fb;
border : 1px dashed #3fcdeb;
padding : 10px 0 0;
}
.post .twitter-tweedles h4 {
background-image : none;
}
.post .twitter-tweedles h4 a {
background : url('images/twitterme.png') no-repeat;
padding-left : 22px;
padding-right : 50px;
height : 128px;
line-height : 128px;
display : block;
font-size : 11px;
float : right;
}
#thread_twitter ul {
margin : 0 12px 0 10px !important ;
margin : 0 10px;
}
#thread_twitter ul li {
background : #fcfcfc;
padding : 0;
float : left;
list-style-type : none;
border : solid #ccc;
border-width : 1px !important ;
border-width : 1px 0;
width : 100%;
padding-top : 10px;
margin-bottom : 10px;
}
#thread_twitter img {
float : left;
padding : 0 10px 0 0;
margin : 0 0 10px 10px;
}
#thread_twitter .twitter_source {
color : #999;
font-family : georgia;
font-style : italic;
font-size : 10px;
}
#thread_twitter .twitter_source a {
color : #999;
}
#thread_twitter .twitter_text {
margin-bottom : 5px;
display : block;
padding-left : 70px;
padding-right : 10px;
}
#thread_twitter .twitter_reply {
background : url('images/icons.gif') no-repeat 0 -112px;
padding-left : 22px;
padding-right : 10px;
height : 16px;
line-height : 16px;
display : block;
font-size : 11px;
float : right;
}
#thread_twitter .loading {
padding : 0 10px;
font-size : 11px;
}
#thread_twitter textarea {
height : 15px;
width : 70%;
}

/* Thread Twitter Ende */

Damit sieht es dann so aus:

thread_twitter_threaded

Das geht weit über das hinaus, was der Programmierer als Grundkonfiguration vorschlägt, aber genau das wollte ich ja auch aufzeigen, wie viel Potenzial das Plugin beim Styling hat.

So, nun hoffe ich, dass ich wieder zur allgemeinen Verwirrung beigetragen habe. Ich werf den Brocken mal in die Runde. Wer fragen hat, der soll sie stellen oder für immer schweigen. :)

Wortstatistiken

2. Juli 2009

wordcount Aufgrund meines gestrigen, etwas längeren Artikels, kam mir mal in den Sinn, die Anzahl aller Worte, die je hier im Blog in den Artikeln und den statischen Seiten geschrieben wurden, durchzuzählen.

Dabei stieß ich auf das etwas ältere Plugin TD Word Count. Nach dessen Installation muss man einmal einen bestehenden Artikel aktualisieren und schon zählt es die komplette Datenbank der WordPress-Installation nach Worten durch. Was dabei herauskam, habe ich als Screenshot mal angefügt. Wie zu sehen ist, habe ich aktuell (also bis gestern) 438544 Worte produziert.

Nun konnte ich mit solch einer Zahl von Worten nicht viel anfangen und wollte mal wissen, wie viel Buchseiten denn diese Anzahl bedeutet. Nach etwas googeln wurde ich fündig: Eine Seite in einem Worddokument mit Schriftgröße 12 Arial entspricht in etwa einer Romanseite. Also fügte ich meinen gestrigen Artikel mal so repräsentativ für alle (wegen seiner Absätze) ein und sah, dass 465 Worte auf eine Wordseite passen.
Also würde in etwa der gesamte Inhalt meiner bisherigen Texte ein Buch mit  943 Seiten ergeben. Das finde ich ja doch schon ziemlich beeindruckend.

Um das alles mal in Relation zu bringen, über welchen Zeitraum dieser “Roman des Lebens” entstanden ist, habe ich die Tage vom ersten Bloggen (zumindest dem, was erhalten ist) vom 22.01.2007 bis einschl. 01.07.2009 berechnet, das sind 890 Tage. Grob gerechnet habe ich damit jeden Tag mehr als eine Seite (1,06) geschrieben.
Insgesamt im Blog sind 1238 Artikel und 61 statische Seiten, also insgesamt 1299 Beiträge, von mir veröffentlicht worden – auch wieder auf die Tage des Blogalters verteilt, entspricht das 1,45 Beiträgen pro Tag.

Nicht ganz in diese Statistik passen die Kommentare, weil sie weder wortmäßig gezählt noch alle von mir sind (sondern “nur” 961). Nichts desto trotz sind es zum Zeitpunkt dieses Artikels 3254, was einem Tagesdurchschnitt von 3,6 entspricht.

Blogroll und CSS3

29. Juni 2009

Durch den tollen Artikel beim plerzelwupp bin auch ich ins Grübeln gekommen, was ich mit meiner mehr als sträflich vernachlässigten Blogrolle so veranstalten sollte. Ich habe sie schon aus dem Grunde nie so recht gepflegt, weil sie mir einfach auf der Seitenleiste zu lang wurde.

Die zufällige Ausgabe von Links mag ich auch nicht so besonders, denn ich bin schon einer, der gerne bei anderen guckt, ob ich nicht einen Link auf deren Blog-Liste habe und manchmal ja und manchmal nein, gefällt mir irgendwie nicht.
Was mich auch gegen die reine Blogrolle auf der Seitenleiste trieb, ist dieses hübsche Plugin, welches die Top-Kommentatoren anzeigt. Irgendwie doppelt gemoppelt finde ich, denn die meisten sind ja auch meine Link-Tipps.
Also habe ich mich für die Seitenleiste für die Variante der Blog-Vorstellung mittels des Plugins blogintroduction via Websnapr entschieden.

Nichts desto trotz will ich auch eine gepflegte Link-Liste anbieten. Diese befindet sich jetzt in der oberen Seitennavigation mit Namen Links.
Ich wollte mit Absicht kein Plugin hierfür installieren, um mich an den von WordPress zur Verfügung gestellten Conditional Tags zu probieren.
Die dort aufgeführte Blogroll ist wegen der besseren Übersicht in tabellarischer Form aufgelistet.
Das Styling dieser Liste habe ich zum Teil mit neuen CSS3-Befehlen versehen. So ist diese Liste in jeder Zeile verschiedenfarbig, was aber nur im Firefox und in Opera dargestellt wird. Der IE8 spielt da überhaupt nicht mit und zeigt die Liste weiterhin einfarbig an. Der 3D-Effekt mit runden Ecken und Schatten wird einzig allein vom Firefox dargestellt.

Jetzt stellt sich für mich die große Frage, wie und wo erkläre ich diese Veränderungen für den interessierten Leser im Einzelnen.
Am besten von vorne, oder?

1. Ein Seiten-Template erstellen

Um lediglich die Liste darzustellen, wird eine neue Seite benötigt. Diese sollte aber keine Standard-Seite sein sondern ein sog. Template. Eine Vorlage also, die alles beinhaltet, was dargestellt werden soll.
Jedes Seiten-Template befindet sich im Theme-Ordner. Meines nennt sich page-links.php. So eine Vorlage beginnt immer mit folgender Syntax:

<?php
/*
Template Name: Links
*/
?>

Wichtig ist hierbei der Template Name. Dieser wird später beim Erstellen einer neuen Seite im Backend von WordPress bei den Seiteneigenschaften genau so angezeigt. Den Rest des Inhalts der Vorlage sollte man sich seiner – sofern vorhanden page.php – oder der index.php entnehmen. Im Prinzip muss alles zwischen den beiden DIV-Tags, die für das übrige Seitenlayout stehen, eingefügt werden. Als Beispiel hier mal mein komplettes Link-Template:

<?php
/*
Template Name: Links
*/
?>
<?php get_header(); ?>    
<div id="content">        
<div id="primarycontainer">
<div id="primarycontent">
<div id="contentarea"><!-- Primary content area start -->
<div class="post">
<h4><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanenter Link: <?php the_title(); ?>"><?php the_title(); ?></a></h4>                
<p><?php edit_post_link(); ?></p>
<div class="contentarea">
XXXXXX    
</div>
</div>
</div><!-- primarycontent end -->
</div><!-- primarycontainer end -->
</div><!--content end -->
<?php get_sidebar(); ?>
<?php get_footer();?>

 

Natürlich funktioniert der obige Code nur in meinem Theme. Jeder muss schauen, wie sich sein Inhaltsbereich im Theme strukturiert. Wichtig ist nur, dass beachtet wird, dass der Kopfbereich mit get_header, die Seitenleiste mit get_sidebar (bzw. manche Themes arbeiten mit include) und ggf. sofern vorhanden der Fußbereich mit get_footer eingebunden werden.

2. Der Inhalt des Templates

Mit Absicht habe ich im obigen Code-Schnipsel den Inhalt herausgelassen. Weil erst mal das Grundgerüst der Vorlage stehen sollte, um alle eventuellen Darstellungsprobleme zu beseitigen.

Wie ich oben schon erwähnte, wollte ich eine Tabelle haben. Und CSS3 probieren. Daher habe ich mir dort, wo im Code XXXXXX steht, einen weiteren DIV-Container gebaut, damit ich ihn nachher beim Stylen ansprechen kann. Dann beginnt die Tabelle und dann der Conditional Tag für die Darstellung der Links.

Hier kurz mein Code als Beispiel:

<div id="linkpage">
<br />
<table>
<tr><td class="linkhead">Weblinks</td><td class="linkhead">Beschreibung</td></tr>
<tr>
<?php wp_list_bookmarks('between=</td><td>&title_li=&categorize=0&show_description=1&before=<td>&after=</td></tr><tr>'); ?>
</tr>
</table>
<br />
</div>

Das Beispiel soll verdeutlichen, dass es statt einer ungeordneten Liste durchaus möglich ist, eine Darstellung in Tabellenform zu erzeugen. Das ganze sieht kompliziert aus und ein wenig muss man sich halt mit dem Conditional Tag von wp_list_bookmarks beschäftigen.

3. Das CSS-Styling

Wie gesagt, mein Anliegen war es, dass bei den Webkrauts vorgestellte CSS3 zu probieren. Zunächst die CSS-Anweisung, die ich in die style.css meines Themes eingetragen habe:

#linkpage {
padding: 0px;
margin: 0px;
background-color: lightyellow;
border: 2px solid #333;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
-moz-box-shadow: 2px 2px 10px #666;
-webkit-box-shadow: 2px 2px 10px #666;
}
#linkpage table {
border-collapse: collapse;
width: 100%;
}
#linkpage .linkhead {
font-weight:bold;
text-decoration: underline;
padding: 0 10px;
background-color: rgba(255,255,255,.7);
}
#linkpage tr:nth-child(odd) {
background-color: #bbf;
}
#linkpage tr:nth-child(even) {
background-color: #fbb;
}

Das CSS3 beinhaltet bei #linkpage die letzten 4 Zeilen und sorgt für einen Rahmen mit runden Ecken und Schatten beim Firefox. Wie gesagt, leider nur bei dem Browser. Letztlich kann dieser Rahmen aber – ohne, dass das Layout sich insgesamt verändert, um jeden Container mit Rahmen gelegt werden. Ich z.B. habe diesen gleich um die gesamte Webseite hier gelegt. Mit der Rahmenstärke und den Farben sowie der Lage des Schattens kann man lustig herumexperimentieren.

Die unterschiedlichen Farben in den einzelnen Tabellenzeilen werden mit den in CSS3 neu eingeführten Pseudoklassen odd und even dargestellt. Auch hier gilt es, einfach mal zu probieren.

Stopp!

So, ich denke, dass ist harter Tobak. Das war er auch für mich, aber es macht einfach Spaß, es mal zu probieren und wenn es gelingt, ist es ein toller Mehrwert.

Wer Fragen hat, immer her damit!

Dynamisches Copyright im Footer

25. Juni 2009

Äußerst unbefriedigend fand ich die Antworten, nach denen ich bei Google deswegen suchte. Ich will kein Copyright, das mir NUR das aktuelle Datum des Jahres anzeigt, ich will eines, welches dynamisch die Daten aus der Datenbank generiert. Der Beginn des Bloggens plus das Ende meines Bloggens. Gut, beides kann ich manuell immer wieder nachtragen. Aber damit entfällt ja die Dynamik!

Lange Rede, gar kein Sinn! Hier das Script, unten im Fußbereich, bei mir links:

<?php
    global $wpdb;
    $post_datetimes = $wpdb->get_results("SELECT YEAR(min(post_date_gmt))
        AS firstyear, YEAR(max(post_date_gmt)) 
        AS lastyear FROM $wpdb->posts WHERE post_date_gmt > 1970");
    if ($post_datetimes) {
        $firstpost_year = $post_datetimes[0]->firstyear;
        $lastpost_year = $post_datetimes[0]->lastyear;
        $copyright = __('&copy; ') . $firstpost_year;
    if ($firstpost_year != $lastpost_year) {
        $copyright .= '-'. $lastpost_year;
        }
        $copyright .= ' ';
        echo $copyright;
        }
?>
<strong><a href="" title="Dieser Blog!"><?php bloginfo('name') ?></a></strong>     

Auf Kommentare antworten

13. Juni 2009

Für einen Blogger sind Kommentare ein Segen, weil er sich freut, überhaupt mal einen zu bekommen und für den anderen sind sie fast schon ein Fluch, weil er so viele bekommt, dass er kaum noch den Überblick behält.

WordPress hat sich da mal überlegt, die sogenannten verschachtelten Kommentare (threaded comments) einzuführen. Ich finde, erstens zu spät und für mich persönlich, auch viel zu unübersichtlich. Die meisten kennen die Forenstrukturen, also einen Kommentar nach dem anderen. So mag ich es auch und so soll es sein.

Bei den meisten Bloggern hat sich daher die Idee durchgesetzt, auf einen Kommentar Bezug zu nehmen, indem er den Klammeraffen und anschließend den Kommentator benennt. Beispiel @Hartmut: BlaBla.

Nun ist ja das ständige Schreiben dieser Zeichenfolge eher lästig, daher musste ich mich mal der Sache annehmen. Und so präsentiere ich eine Idee, wie der geneigte Blogbetreiber und jeder andere Kommentierer auch mit relativ simplem Code – natürlich wie immer JavaScript vorausgesetzt – sein Kommentarfeld aufwerten kann, in dem er einfach auf die laufende Nummer des Kommentars klickt und die obige Zeichenfolge direkt im Kommentarfeld eingegeben ist.

Hier das JavaScript, welches ich direkt an den Anfang der comments.php gesetzt habe:

<script language="JavaScript">
<!--
function click_on_number(number, id, name)
{
    if (number_already_clicked)
        return false;
    chref = "#comment-" + id;
    etext = "<b>@" + name + ":</b> ";
    field = document.getElementById ('comment');
    field.value = etext + field.value;
    location.href = "#respond";
    field.focus (); // löschen, wenn nicht in Kommentarfeld gesprungen werden soll
    number_already_clicked = false; // setze true, wenn nur jeweils auf einen Kommentar Bezug genommen werden soll
    return false;
}
//-->
</script>

Jetzt sollte eine Funktion im Kommentar-Feld gesetzt sein, welches die laufende Nummer der Kommentierer anzeigt. Bei den meisten Themes ist das so, wer es nicht hat, für den gibt es die komplette Syntax. Weil der Aufruf simpel im Link per onclick-event aufgerufen wird.

<span class="commentmetadata">
    <a href="#comment-<?php comment_ID () ?>" 
    title="Auf Kommentar antworten" 
    onclick="return click_on_number <?php $comment_count++; echo $comment_count; ?>, <?php comment_ID (); ?>, '<?php comment_author (); ?>')">
    <?php echo $comment_count; ?></a>
</span>

Wichtig ist, dass also im Theme die comment_id aufgerufen wird. Bei den meisten Themes ist das der Fall, hat aber meistens keinen Link (a href). Dieser muss nicht sein, aber dann sollte das onclick-Event wenigstens wieder wie bei den Smileys per CSS entsprechend gekennzeichnet werden (Mauszeiger)

Die Nacht der Updates

12. Juni 2009

upd120609Keine Panik, wird kein großer Artikel!

Heute Nacht habe ich mal wieder ein paar neue Updates für Windows aufgespielt. Nachdem letzten Monat ja das Vista Servicepack 2 auf dem Rechner landete, staunte ich über die Menge und Größe der Updates des Patch-Days nicht schlecht. 

16 Pakete mit fast 140MB sind für einen kleinen Aktualisierungstag ja so schlecht nicht, aber alles verlief reibungslos wie immer. Ich bin auch kein Meckerkopf, wenn es um solche Dinge geht. Ich freue mich, wenn die Programmierer Sicherheitslücken schließen und ihr Produkt stetig verbessern. Bei Windows und Office allemal, zumal ja vermeintlich alle Kapazitäten in die kommenden Versionen gesteckt werden.

Natürlich verliere ich auch ein Wort zu WordPress. Auch hier habe ich den Blog auf die Version 2.8 aktualisiert. Ich hatte zuvor das ganze lokal am Rechner durchgespielt, habe dabei die Autoupdate-Funktion genutzt, bemerkte aber, dass teilweise einige Begriffe noch in Englisch waren. Also wird scheinbar von der englischen Version aktualisiert. Wer das getan hat und sich nun ärgert, dem empfehle ich, die deutschen Sprachdateien von dieser Seite herunter zu laden und sie mit den Dateien im Ordner wp-content/languages zu überschreiben. Dann klappt das auch wieder.

Ich habe mir lieber die komplette deutsche Version rüber kopiert und muss sagen, dass ich zufrieden bin. Alles funktioniert weiterhin, ALLE Plugins haben “überlebt”. Als Neuerung bietet WordPress jetzt die automatische Umstellung von Sommer‑ auf Winterzeit und umgekehrt an. Dazu muss die korrekte Zeitzone unter Einstellungen/Allgemein eingestellt werden.

Habe fertig. War doch gar nicht so schlimm, oder?

JQuery – Elemente ein‑/ausklappen

11. Juni 2009

Jetzt hat mich der liebe Sascha so dermaßen “motiviert”, dass ich es unbedingt loswerden muss, wie man denn hier im Kommentarfeld die lustigen Smileys ein‑ und ausklappen kann. Mittlerweile gibt es ja doch einige Blogs, die eine recht stattliche Anzahl von Smiley-Kollektionen anbieten.

Ich möchte das im Prinzip relativ simple Thema auch ein wenig einfacher erklären und nicht lange mit Code um mich werfen, andererseits soll diese kurze Erklärung ausreichend sein, alles, nicht nur Smileys ein‑ und ausblendbar zu machen.

Das ganze funktioniert über eine JavaScript-Bibliothek, die WordPress von Hause aus schon implementiert hat und die automatisch bereits geladen sein sollte. Wer das nicht weiß, sollte auf seiner Webseite mal mit dem Browser die rechte Maustaste drücken und sich den Quelltext anschauen. Dort sollte relativ weit oben eine Zeile stehen, die so aussieht:

<script type='text/javascript' src='http://www.deine-domain.de/wp-includes/js/jquery/jquery.js?ver=1.2.6'></script>


Wichtig ist, dass die jquery.js aus dem WordPress Ordner kommt, weil es eine für den Blog angepasste Version ist.

JQuery vereinfacht die Programmierung der sog. DOM-Bäume. Ich will darauf gar nicht eingehen und komme mal gleich zum Kommentarfeld und den Smileys. Die Smileys selbst werden durch das Plugin LMB^Box Smileys eingebunden. Der PHP-Befehl soll laut Anweisung an die Stelle, an der die Smileys erscheinen sollen mit dem Befehl

<?php if (function_exists('lmbbox_smileys_display')) { lmbbox_smileys_display(true); } ?>

erfolgen.

Um jetzt mittels JQuery einen klappbaren Bereich/Effekt einzurichten, bedarf es zweier Klassen oder IDs. Ich nutze lieber Klassen, weil ich diese ggf. noch an weiteren Stellen im Blog nutzen möchte. Für die Überschrift – also Smileys einklappen/ausklappen habe ich die Klasse smile_head und für den Bereich, um die Smileys, also die Box sozusagen, die dann ein‑ und ausklappt, habe ich die Klasse smile_body gewählt. Innerhalb dieser Klasse kommt dann der php-Befehl, um die Smileys darzustellen.

Das ganze sieht bei mir im Kommentarfeld so aus:

<!-- Smileys Anfang -->
<span class="smile_head"><b>Smilies anzeigen/verstecken</b></span>
<div class="smile_body">
<?php if (function_exists('lmbbox_smileys_display')) { lmbbox_smileys_display(true); } ?>
</div>
<!-- Smileys Ende –>
 

Natürlich lassen sich diese Klassen jetzt auch bequem per CSS anpassen, aber darauf gehe ich jetzt (noch) nicht ein, weil ich es hier auch nicht gemacht habe.

Jetzt bleibt eigentlich nur noch ein wenig JavaScript, um mittels JQuery die Smileys ein‑ und ausblenden zu lassen. Grundsätzlich sollen die lustigen Bildchen ja ausgeblendet sein, dafür müssen wir dem smile_body sagen, dass er zunächst einmal versteckt bleiben soll.

Eine Eigenart der WordPress jquery-Bibliothek ist, dass sich die von mir angesprochenen DOMs (das ist z.B. die Klasse smile_body) nicht mit einem $ ansprechen lassen sondern mit dem Befehl jquery.

Die Anweisung lautet somit ausgeschrieben:

jQuery('.smile_body').hide();
 

Jetzt ist sozusagen der Inhalt “versteckt”. Wer seine Smileys immer angezeigt bekommen haben und sie erst beim Mausklick ausblenden will, der nimmt statt .hide einfach .show.

Der nächste Schritt ist die Anweisung, dass bei einem Klick auf Smileys anzeigen, das versteckte Element angezeigt und bei einem erneuten Klick wieder ausgeblendet wird. Dafür gibt es erstens den sogenannten Event-Handler der auf den Mausklick reagiert. Nur muss bei einem Klick auf smile_head das nachfolgende Element smile_body angesprochen werden. Der Mausklick muss sozusagen weitergegeben werden. Zweitens gibt es den Effekt, in diesem Falle benutze ich SlideToggle. Um das ganze abzukürzen, schicke ich mal den kompletten Code, der eingebunden werden muss hier hinein:

<script language="JavaScript">
<!--
jQuery(document).ready(function()
{
  //Alle Elemente mit der Klasse smile_body verstecken
  jQuery('.smile_body').hide();
  //element mit Klasse smile_body ein/ausblenden
  jQuery('.smile_head').click(function()
  {
    jQuery(this).next('.smile_body').slideToggle(600);
  });
});
//-->
</script>
 

Im Prinzip ist alles eine große Funktion von JQuery und die muss am Anfang initialisiert werden. Aber mehr möchte ich dazu gar nicht sagen. Denn das war es schon.

Wo der Code übrigens steht, ob im Header, in der functions.php, im Footer ist zunächst einmal grundsätzlich egal. Ich selbst habe momentan den Code in der comments.php, weil hier wird er ja auch benötigt.

Kleine Anpassungen habe ich übrigens noch in der style.css vorgenommen. Da ja kein Link hinter dem Text “Smileys einklappen/ausklappen steht, verändert sich der Mauszeiger wie bei einem gewöhnlichen Link nicht, daher habe ich ins CSS noch

.smile_head {
cursor: pointer;
}

eingefügt.

So, ich hoffe, ich konnte viele Unklarheiten schaffen. Ansonsten scheue Dich nicht, einfach nachzufragen oder Verbesserungsvorschläge zu machen.

Im Prinzip lassen sich auf diese Art und Weise alle möglichen Elemente, sogar die Seitenleiste, Header oder was auch immer ein‑ und ausblenden. Einfach mal probieren. Wenn man erst mal anfängt, macht es wirklich Spaß.

Kleinere Anpassungen

8. Juni 2009

Ich habe heute irgendwie meine soziale Ader wieder entdeckt. Ich weiß ja auch nicht, ob das alles so richtig ist. In jedem Falle dachte ich mir heute, dass ich den Blog mal ein wenig den Kommentatoren widmen sollte und habe drei Kleinigkeiten geändert:

Fleißige Kommentatoren

Sollen auch entsprechend gewürdigt werden. Auf der Seitenleiste gibt es jetzt unter den letzten Kommentaren lustige kleine Bilder mit den Avataren der Top-Schreiberlinge im Blog entsprechend verlinkt zu seiner Homepage (standardmäßig ist das auf nofollow gesetzt (Meinungen?)). Wer noch kein Bildchen hat, der sollte sich ggf. doch mal überlegen, sich bei gravatar.com anzumelden.
Erledigt wird das ganze durch das Plugin GravatarGrid.

Smilies

Hachja, ich war wohl einer der letzten, der in seinem Blog die Smilies nicht in seinem Kommentar-Feld anbot. Nun habe ich das Plugin LMB Box Smilies endlich installiert. Noch nutze ich die dort vorhandenen Standard-Smilies. Mal gucken, ob ich mal hin und wieder was Neues heraussuche.

Editor-Funktionen

Ein wenig Hilfe sollte man seinem geneigten Kommentierer doch auch zur Hand geben. Ich merke es ja selbst, wenn ich bei jemand anderem schreibe und einen Link setzen, ein Wort markieren oder etwas zitieren möchte. Blöde HTML-Tags. Also gibt es jetzt da ein klein wenig Unterstützung. Das ganze ist kein Plugin sondern manuelle Programmierarbeit – JavaScript muss dazu aktiviert sein.

Ich hoffe, es gefällt und ist genehm.

PHP memory limit

14. Mai 2009

Mehr durch Zufall kam ich heute in den Optionen bei mir im WordPress Backend bei den Einstellungen des Google XML Sitemaps Plugins vorbei und stellte mit Erschrecken fest, dass dort eine rote Fehlermeldung prangerte, dass das Erstellen der für die Indexierung der Webseite bzw. der Artikel notwendigen Sitemap wegen Speichermangel (Allowed memory size exceeded) nur bedingt ausgeführt wurde. Auch nachdem ich das Plugin mehrfach manuell die Sitemap erstellen lassen wollte, bekam ich die gleiche Meldung. Es wurden etwa nur 400 Artikel in die Sitemap aufgenommen. Und das wohl schon über Wochen, gar Monate.

Zunächst deaktivierte ich alle anderen Plugins, aber es trat keine Besserung ein. Also musste ich mich komplett mit der Thematik befassen.

Was ist das überhaupt

Das memory limit ist die Menge an Speicher, die für das Ausführen eines PHP-Scriptes zur Verfügung steht. Nun, WordPress ist ein komplexes PHP-Script, hinzu kommt, dass jedes Plugin weitere PHP Anweisungen enthält, die den Speicherverbrauch enorm erhöhen können.
Das memory limit wird in der Regel vom Provider festgelegt, wenn man nicht einen eigenen Server hat oder – wie in meinem Falle – einen Provider hat, bei dem ich die php.ini selbst konfigurieren kann. Denn genau in dieser Datei ist dieses Limit festgelegt.

Die php.ini

Zunächst wollte ich wissen, wie hoch mein derzeitiges Limit war. Also musste ich dazu die klassische Methode der php Anweisung info() aufrufen. Kurz und schmerzlos erstellte ich diese Datei mit folgendem Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>PHP-Info</title>
</head>
<body>
<?php phpinfo(); ?>
</body>
</html>


Wie man sieht, ist es eine normale HTML-Seite. Diese speicherte ich auf meinem Webserver unter dem Namen php_info.php und rief sie auf. Wer das mal sehen möchte, wie es aussieht, der klicke hier auf den Link. Bei mir war unter dem Punkt memory_limit noch ein Wert von 24M eingetragen. Ich schaute bei meinem Provider auf der Webseite nach und sah, dass ich 60M zur Verfügung haben sollte und schrieb eine E-Mail. Keine 10 Minuten später erhielt ich die Antwort, was ich zu tun hatte. Ich sollte mich dort einloggen und den Wert memory_limit “60M” direkt in meine php.ini schreiben. Ich schaute wieder in die php_info und siehe da, der Wert war erhöht.

Die wp_config.php

Also wieder zurück zur Sitemap, gestartet, gleiche Fehlermeldung! Ich bekam jetzt eine Fehlermeldung, dass die Plugin-Size nicht ausreiche. Ich erinnerte mich an die Konfiguration von WordPress, sah in die wp_config.php und änderte dort ganz frech den Wert auf:

//PHP-Limit setzen

define(‘WP_MEMORY_LIMIT‘, ‚128M‘);

Den Tipp hatte mir mal Frank Bültge gegeben, dass hier durchaus ein höherer Wert eingetragen werden dürfe.

Das Plugin selbst

xml_sitemap Auch das funktionierte noch nicht. Konnte es auch gar nicht, weil in den Optionen vom XML Sitemap Plugin noch eine Einstellung fehlte: Dort stellte ich nämlich meinen neuen memory_limit Maximal-Wert auf 60M ein und siehe da, jetzt wurde die Sitemap endlich fehlerfrei generiert. Das bedeutet, dass sich mal eben die Artikel-Liste, die an Google gemeldet wird, sich von 400 auf die aktuell über 1100 Artikel erhöht hat.

Fazit und Aussichten

Nun weiß ich natürlich überhaupt nicht, ob und inwieweit sich Google für diese Liste überhaupt interessiert und ob sich jetzt der Index wirklich fast verdreifacht, aber um sicher zu gehen, dass sich Google dieser Liste bedient, habe ich mich bei den Google Webmaster Tools angemeldet. Dort habe ich dann den medioman als neue Webseite angemeldet und die Sitemap.xml bzw. die gepackte Version davon eingetragen. Google “crawlt” noch und ich weiß nicht, ob es nun den Effekt hat, dass jetzt wesentlich mehr Seiten im Google-Index stehen. Ein Schelm wär ich, wenn ich behauptete, dass sich jetzt die Besucherzahlen nahezu verdreifachen werden. Sicherlich fangen die alten Seiten komplett bei Null an.

Mir fällt nur ein, dass ich schon bei einigen anderen Plugins die Fehlermeldungen des memory exceeded bekam und werde die Mal wieder rauskramen. Allen voran das Snazzy Archives, aber dazu ggf. später mehr.

Für weitere Tipps, Anregungen und Kritik bin ich natürlich jederzeit dankbar!

Nächste Einträge »

SetTextSize SetPageWidth