Reicht es, wenn bei Erstellung der Webseite der Link zufällig generiert wird? Dann könntest du das mit diesem Code-Schnipsel in der functions.php
deines Child Themes (oder mit Code Snippets) umsetzen:
add_shortcode('random_link', 'random_link_shortcode');
function random_link_shortcode() {
$links = array(
'https://wordpress.org',
'https://de.wordpress.org',
'https://wordpress.com',
'https://mozilla.org',
'https://apache.org',
'https://gnu.org'
);
$random_link = array_rand( $links, 1 );
return '<a href="' . $links[ $random_link ] . '" class="button">Überraschung!</a>';
}
Du kannst dann an beliebiger Stelle in Beiträgen oder Seiten den Shortcode [random_link]
verwenden.
Bei dieser Lösung wird der Link aber nicht geändert, wenn er vom Besucher deiner Webseite angeklickt wurde, sondern erst, wenn die Seite/der Beitrag neu geladen wird. Wenn der Link bei Klick ausgetauscht werden soll, müsstest du das mit JavaScript umsetzen.
Thread-Starter
thaqy
(@thaqy)
Danke für den Vorschlag. Das ist ein sehr guter Ansatz. Leider soll aber genau zweiteres passieren, also mit jedem Klick ein neuer Link. Auch ohne die Seite neu zu laden.
Hast du auch dafür einen Lösungsansatz, den ich probieren kann? Viele Dank im Voraus.
Ich hab dir jetzt „auf die Schnelle“ ein Plugin geschrieben, dass du dir hier herunterladen kannst: https://github.com/pixolin/random_link/archive/master.zip.
Mit dem aktivierten Plugin kannst du einen Shortcode [random_link]
einfügen, der im Frontend einen Link mit CSS-Klasse .button
und einem zufällig gewählten Link einfügt. Der Link wird (was hinsichtlich Usability eigentlich nicht empfehlenswert ist) in einem neuen Tab/Fenster geöffnet und der Button bekommt nach dem Anklicken zufällig einen neuen Link zugewiesen.
Die Links sind allerdings in zwei Dateien (ramdom_link.php
und random_link.js
) fest hinterlegt, was natürlich alles andere als ideal ist. Hier sollte es eigentlich ein Menü geben, über das der Anwender Links hinzufügen, bearbeiten und löschen kann. Benutzermenü, Eingabe-Validierung, Santizing der Ausgabe … da wäre noch einiges zu tun.
Im Moment kannst du die vorgegebenen Links nur manuell mit einem Programmier-Editor austauschen, das Plugin-Verzeichnis neu als zip-Datei komprimieren und dann installieren. Vielleicht genügt dir das auch für den Anfang?
Du hast sicherlich Verständnis, dass ich der Sache nicht weiter nachgehen möchte; es sprengt hier für mich etwas den Rahmen und du wolltest ja eigentlich auch nur einen „Lösungsansatz“.
Thread-Starter
thaqy
(@thaqy)
Hi,
vielen Dank für deine ausführliche Hilfe. Ich werde es damit testen und hoffe, dass alles klappt. Das klingt aber wirklich sehr vielversprechend. Danke!