Habe kürzlich ein lustiges kleines Gadget für meine Tagline, zu Deutsch auch Unterüberschrift, geschrieben. Die Idee kam ursprünglich vom Omploader, der immer lustige Sätze anzeigt wie “powered by 867 ugly vaginas”. Die Funktionsweise dahinter ist recht einfach – man hat eine Liste von bestimmten Wörtern die an bestimmten Positionen zufällig angezeigt werden. Um die Funktionsweise zu verdeutlichen, nehme ich mal vier Wörter – zwei Adjektive und zwei Substantive:

“fat” und “american”
sowie
“ugly” und “russian”

Position 1 definiert ein Adjektiv und Position 2 ein Substantiv. Nun kann Position 1 zufällig und Position 2 zufällig ausgewählt werden. Als Resultat könnte man erhalten:

fat american
ugly russian
ugly american
fat russian

Erweitert man den Pool an Adjektiven und Substantiven nun, wird die Sache noch viel lustiger und umfangreicher.
Den Code schreibe ich hier im nachfolgenden Artikel. Wo und wie ihr die Phrase in euer WordPress einfügt kann ich nicht pauschalisieren, das hängt von eurem Geschmack und eurem verwendeten Theme ab. Ich erkläre die Sache nur kurz für meinen Bigblue-Fork.

Ersteinmal erstellen wir in unserem Theme-Verzeichnis eine Datei, der wir einen beliebigen Namen (beispielsweise randomtagline.php) geben. In diese Datei schrieben wir folgenden Inhalt (in den Kommentaren der Datei erkläre ich die Funktionsweise der einzelnen Gruppierungen):

<?php
//Generieren einer Zufallszahl zwischen -5 und +100
$zahl_randomized = rand(-5, 100);

//Liste aller Adjektive
$adjektiv = array(
'fucked',
'offensive',
'upset',
'angry',
'lazy',
'stupid',
'worthless',
'disgusting',
'stinky',
'crazy',
'fat',
'small',
'tall',
'swearing',
'screaming',
'weird',
'assburger',
'butthurt',
'gay',
);

//Liste aller Substantive
$substantiv = array(
'housewives',
'callboys',
'germans',
'swedes',
'maxists',
'communists',
'bernds',
'russians',
'belarusians',
'dentists',
);

//Randomisierung der unterschiedlichen Wortarten und zuweisen der Variablen fuer Anzeige in anderer Datei
$adjektiv_randomized = $adjektiv[mt_rand(0,count($adjektiv)-1)];
$adjektiv_randomized2 = $adjektiv[mt_rand(0,count($adjektiv)-1)];
$substantiv_randomized = $substantiv[mt_rand(0,count($substantiv)-1)];

?>

“$adjektiv_randomized” gibt uns nun ein zufälliges Adjektiv aus.
“$adjektiv_randomized2” gibt uns nun ein weiteres zufälliges Adjektiv aus.
“$substantiv_randomized” gibt uns nun ein zufälliges Substantiv aus.
“$zahl_randomized” gibt uns nun eine zufällige Zahl zwischen -5 und +100 aus.

Nun öffnen wir die header.php unseres Themes und suchen dort nach etwas das in etwa lautet:

<p class="desc"><?php bloginfo('description'); ?>

Das kann nun ersetzt werden mit:

<p class="desc">Powered by <?php
include("randomtagline.php");
echo "$zahl_randomized ";
echo "$adjektiv_randomized & ";
echo "$adjektiv_randomized2 ";
echo "$substantiv_randomized";?>.</p>

Dies fügt die zufälligen Wörter nacheinander ein, sodass ein (einigermaßen) sinnvoller Satz daraus entsteht, der mit Leerzeichen und dem & bestückt ist. Die Zeile, welche mit “include” beginnt, sorgt dafür, dass die zuvor erstellte Datei “randomtagline.php” hinzugefügt wird und die zufälligen Wörter aus ihr “geholt” werden können.

Wenn noch jemand Ideen hat, so melde er diese bitte per Kommentarfunktion an. Bin für jeden Spaß zu haben. :D

13 thoughts on “Unterüberschrift in WordPress randomisieren

  1. \n macht nicht ein Leerzeichen, es macht einen Zeilenumbruch. Ein Leerzeichen macht ein Leerzeichen ;-) Nimm das \n einfach überall raus.

  2. Das ist ja lustig. Wenn ich das \n rausnehme pappen alle Woerter zusammen. Egal wie viele Leerzeichen ich setze. ;)

  3. Interessant, du hattest absolut recht! Aber das Leezeichen muss sich hierzu in den “” befinden. Logisch. Wird gleich im Artikel geaendert.

  4. Außerdem ist es so um ein paar Millisekunden performanter:

    Powered by .

    Powered by

    \n ist ein Zeilenumbruch, wird von modernen Browsern aber auch als Leerzeichen anerkannt. Das Problem ist hier allerdings, dass es überhaupt nicht RFC-Konform ist und daher verwende ich es seitdem ich programmieren kann nicht mehr. :D

  5. Also es kann zwar sein das ich jetzt der dumme bin, aber ist es vlt. nicht bisschen sinnlos 98 Mal eine Zufallszahl erzeugen zu lassen und die 99. zu nehmen?
    Also ich würde

    for($i = 0; $i < 100; $i++)
    {
    $zahl_randomized = rand(-5, 100);
    }

    mit

    $zahl_randomized = rand(-5, 100);

    ersetzen.

    LG

  6. Kann vermutlich jeder machen wie er will. Hauptsache es kommt eine Zahl raus.

    Danke fuer den Tipp, damit spart man ja ein paar Zeichen.

  7. Das kann jeder machen wie er will ohne Begruendungen abzugeben. Ich kann meinen Kaffee auch tuerkisch trinken ohne dies begruenden zu muessen, waehrend du deinen eben lieber gefiltert trinkst.

    Wie J0$14$ bereits schrieb ist die kuerzere Methode ein bisschen sparsamer und erfuellt den gleichen Zweck.

    Wenn du jetzt eine Begruendung verlangst, dafuer das man das nicht so macht wie du es machen wuerdest, dann musst du auch von den Amerikanern eine Begruendung liefern warum sie ihre Autos aus Stahl statt Alu fertigen und somit fuer mehr Gewicht und somit Spritverbrauch sorgen. Oder warum ein Bekannter eine Pizza mit dickem Boden mag, waehrend du lieber Pizza mit duennem Boden isst.

    Ich muss mich dafuer nicht rechtfertigen, deal with it.

    @Fusl: Aufgenommen. :3

Leave a Reply

Your email address will not be published. Required fields are marked *