{"id":402,"date":"2017-05-05T18:40:54","date_gmt":"2017-05-05T16:40:54","guid":{"rendered":"http:\/\/evileu.de\/zum-schwarzen-pinguin\/?p=402"},"modified":"2017-05-05T18:45:03","modified_gmt":"2017-05-05T16:45:03","slug":"mein-freund-der-shortcode-auch-auf-knopfdruck-mit-button","status":"publish","type":"post","link":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/2017\/05\/05\/mein-freund-der-shortcode-auch-auf-knopfdruck-mit-button\/","title":{"rendered":"Mein Freund, der Shortcode &#8211; auch auf Knopfdruck mit Button"},"content":{"rendered":"<h2>Warum ich Shortcodes so n\u00fctzlich finde<\/h2>\n<p>Ganz einfach, weil sie die volle Funktionalit\u00e4t von PHP mit all den vielf\u00e4ltigen M\u00f6glichkeiten von WordPress vereinen. Ich glaube, da\u00df Shortcodes eins der meistuntersch\u00e4tzten programmiertechnischen Werkzeuge von WordPress sind. Alle Welt schreit immer nach Plugins, aber die sind nicht immer der Weisheit letzter Schlu\u00df. Gerade wenn man Ausgaben und Ereignisse auf der f\u00fcr den Benutzer sichtbaren Oberfl\u00e4che einer Webseite steuern will, sind Shortcodes ein m\u00e4chtiges Werkzeug und nahezu universell einsetzbar. Sie erlauben durch das wpdb-Objekt vollen Datenbankzugriff (\u00fcbrigens auf jede beliebige Datenbank, f\u00fcr die man den Connect hat), sie erlauben einem das Einsetzen von Formularen mit all den ausgefuchsten Feinheiten von PHP, sie erlauben die Abfrage der Eigenschaften und die Manipulation nahezu aller WordPress-Objekte, und vieles mehr. Kurz gesagt, sie sind das geniale Universal-Schweizermesser wenn man WordPress programmiererisch zuleibe r\u00fccken m\u00f6chte. Jetzt aber genug der Lobeshymne, heute Abend hab ich noch ein nettes Zuckerl:<\/p>\n<h2>Shortcodes auf Knopfdruck mit Buttons<\/h2>\n<p>Manchmal w\u00e4re es ganz nett, wenn ein Shortcode auf einer Seite oder in einem Beitrag nicht sofort beim Aufruf loslegen w\u00fcrde, besonders dann nicht, wenn man mehrere Shortcodes im selben Objekt einsetzen m\u00f6chte, das wird schnell un\u00fcbersichtlich. Dann w\u00e4re es ganz n\u00fctzlich, wenn man erst einmal auf ein entsprechend beschriftetes Kn\u00f6pfchen dr\u00fccken k\u00f6nnte, und der Shortcode erst dann ausgef\u00fchrt wird. Das ist nicht schwer zu realisieren, und die L\u00f6sung ist (wie k\u00f6nnte es anders sein) selbst ein Shortcode.<\/p>\n<h2>Formular f\u00fcr den Button<\/h2>\n<p>Um einen klickbaren Button zu erhalten, lege ich ein kleines Formular an, das nichts ausser einem submit-Button enth\u00e4lt, das sieht so aus:<\/p>\n<p><em>echo &#8218;&lt;form method=&#8220;post&#8220;&gt;&#8216;;<\/em><br \/>\n<em> echo &#8218;&lt;input type=&#8220;submit&#8220; name = &#8222;senden&#8220; value=&#8220;Shortcode abrufen&#8220;\/&gt;&#8216;;<\/em><br \/>\n<em> echo &#8222;&lt;\/form&gt;&#8220;;<\/em><\/p>\n<p>Was passieren soll, wenn auf den Button geklickt wird, wird wie \u00fcblich mit ISSET bestimmt, und hier kommt auch gleich der Witz an der ganzen Sache:<\/p>\n<p><em>if (isset($_POST[&#8217;senden&#8216;]))<\/em><br \/>\n<em> {<\/em><br \/>\n<em> \u00a0\u00a0\u00a0 \/\/Hier Shortcode einsetzen, wichtig: einfache Hochkommas<\/em><br \/>\n<em> \u00a0\u00a0\u00a0 $inhalt = &#8222;[form id=&#8217;26&#8216; title=&#8217;Anmeldung&#8216;]&#8220;;<\/em><br \/>\n<em> \u00a0\u00a0\u00a0 echo do_shortcode($inhalt);<\/em><br \/>\n}<\/p>\n<p>Die Variable $inhalt wird einfach mit dem String des aufzurufenden Shortcodes belegt, und das kann wirklich ein x-beliebiger Shortcode sein, ob selbst definiert, oder der Shortcode eines Contact-Form-7-Formulars, oder ein MetaSlider-Shortcode oder was einem sonst gerade einf\u00e4llt. Wichtig ist nur, dass man die doppelten Anf\u00fchrungszeichen in den Shortcode-Parametern durch einfache Hochkommas ersetzt. Mehr ist nicht dran, so sieht das Ganze am St\u00fcck aus:<br \/>\n<em> function button_shortcode(){<\/em><br \/>\n<em> \u00a0\u00a0\u00a0 <\/em><br \/>\n<em> \/\/Begin Formular<\/em><br \/>\n<em> echo &#8218;&lt;form method=&#8220;post&#8220;&gt;&#8216;;<\/em><br \/>\n<em> echo &#8218;&lt;input type=&#8220;submit&#8220; name = &#8222;senden&#8220; value=&#8220;Shortcode abrufen&#8220;\/&gt;&#8216;.&#8220;&lt;br&gt;&#8220;;<\/em><br \/>\n<em> echo &#8222;&lt;\/form&gt;&#8220;;<\/em><br \/>\n<em> \/\/ End Formular<\/em><\/p>\n<p><em> if (isset($_POST[&#8217;senden&#8216;]))<\/em><br \/>\n<em> {<\/em><br \/>\n<em> \u00a0\u00a0\u00a0 \/\/Hier Shortcode einsetzen, wichtig: einfache Hochkommas<\/em><br \/>\n<em> \u00a0\u00a0\u00a0 $inhalt = &#8222;[form id=&#8217;26&#8216; title=&#8217;Anmeldung&#8216;]&#8220;;<\/em><br \/>\n<em> \u00a0\u00a0\u00a0 echo do_shortcode($inhalt);<\/em><br \/>\n<em> } <\/em><br \/>\n<em> \u00a0\u00a0\u00a0 <\/em><br \/>\n<em> }<\/em><br \/>\n<em> add_shortcode(&#8218;button&#8216;, &#8218;button_shortcode&#8216;);<\/em><\/p>\n<p>An der gew\u00fcnschten Stelle im Beitrag oder auf einer Seite den Shortcode [button] einsetzen, und voila, sie haben ihren Shortcode auf Knopfdruck!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Warum ich Shortcodes so n\u00fctzlich finde Ganz einfach, weil sie die volle Funktionalit\u00e4t von PHP mit all den vielf\u00e4ltigen M\u00f6glichkeiten von WordPress vereinen. Ich glaube, da\u00df Shortcodes eins der meistuntersch\u00e4tzten programmiertechnischen Werkzeuge von WordPress sind. Alle Welt schreit immer nach Plugins, aber die sind nicht immer der Weisheit letzter Schlu\u00df. Gerade wenn man Ausgaben und [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[21,11,4,14],"tags":[],"_links":{"self":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/402"}],"collection":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/comments?post=402"}],"version-history":[{"count":3,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/402\/revisions"}],"predecessor-version":[{"id":405,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/402\/revisions\/405"}],"wp:attachment":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/media?parent=402"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/categories?post=402"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/tags?post=402"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}