Moin moin!
Ich sitze gerade erstmals an PHP und stehe nun vor einem – für mich größeren – Problem. Dabei geht es um Folgendes:
Ich betreibe eine Wordpress-Website, über die sich mehrere Leute einloggen, um Beiträge zu erstellen. Bislang habe ich einfache Formatvorlagen mit HTML und CSS genutzt, durch die ich selbst immer gut durchblicken konnte. Die, die sich damit jedoch so gar nicht auskennen, zerschießen regelmäßig das Layout. Aus diesem Grund versuche ich es gerad idiotensicher zu machen und erstelle mit dem Plugin Advanced Custom Fields Pro umfangreiche Eingabemasken.
An einer Stelle geht es nun darum, dass ein Galerie-Shortcode eingegeben werden muss. Dieser hat folgende Gestalt:
[FinalTilesGallery id=‚ZAHL‘]
So weit, so gut. Nun möchte ich diesen nun in die PHP des Templates integrieren.
Wenn ich das manuell mit folgendem Befehl mache:
<?php
echo do_shortcode('[FinalTilesGallery id='149']');
?>
funktioniert das bereits nicht. Grund sind die einfachen Anführungszeichen um die Galerie-ID. Der Code
<?php
echo do_shortcode('[FinalTilesGallery id=149]');
?>
funktioniert. Ich muss also irgendwie die Benutzereingabe ohne Nutzung von einfachen oder doppelten Anführungszeichen in eben diesen Code integriert bekommen.
Eine Überlegung war, den Nutzer lediglich die ID selbst angeben zu lassen und dann via
<?php
echo do_shortcode('[FinalTilesGallery id=<?php the_field('galerie2017'); ?>]');
?>
einzubinden, wobei „galerie2017“ der Name des Feldes aus den Advanced Custom Fields Pro ist. Leider enthält aber der Befehl zum Holen des Wertes ebenfalls einfache Anführungszeichen, weshalb der Code nicht ausgeführt wird, bzw. die ganze Seite nur noch weiß erscheint. Gleiches gilt natürlich auch für den Versuch, den ganzen Shortcode als Feld einzulesen.
Der nächste Versuch war dann jener, dass ich erst die ID eingelesen und auf eine neue Variable gelegt habe, um diese weiterzunutzen:
<?php
$variable = get_field('galerie2017');
echo do_shortcode('[FinalTilesGallery id=$variable]');
?>
Leider hat auch das nicht funktioniert, auch nicht mit vorheriger Umwandlung des String in einen Integer.
Auch der letzte Versuch mit
<?php
$variable = get_field('galerie2017');
$variable = trim($variable, ''')
echo do_shortcode('[FinalTilesGallery id=$variable]');
?>
schlug fehl und bin nun wirklich mit sämtlichem Latein am Ende.
Hat von Euch jemand eine Lösung parat? Ich danke schon im Voraus für Eure Hilfe!
Ob nun der ganze Shortcode oder nur die ID eingegeben wird, ist für mich egal – wie es einfacher umzusetzen ist.
Beste Grüße
Jan