Trädvy Permalänk
Medlem
Registrerad
Mar 2014

Shortcodes button

Hej på er!

Jag ska skapa en shortcode till min hemsida, men har aldrig jobbat med detta innan. Jag vill att admin ska kunna ange en egen url och text på sin knapp. I nuläget har jag dock bara fått till att de kan ange en egen text. Jag vill använda <button> pga att knappen ska få de färger som admin ställer den till i temat (jag gör ett child theme). Hur ska jag göra? Ska jag använda mig av href?

<?php
add_shortcode('button', 'funcButton');

function funcButton($attr) {
return '<button>' . $attr["text"] . '</button>';
}
?>

Tacksam för tips!

Trädvy Permalänk
Medlem
Registrerad
Mar 2014
Skrivet av Märta:

Hej på er!

Jag ska skapa en shortcode till min hemsida, men har aldrig jobbat med detta innan. Jag vill att admin ska kunna ange en egen url och text på sin knapp. I nuläget har jag dock bara fått till att de kan ange en egen text. Jag vill använda <button> pga att knappen ska få de färger som admin ställer den till i temat (jag gör ett child theme). Hur ska jag göra? Ska jag använda mig av href?

<?php
add_shortcode('button', 'funcButton');

function funcButton($attr) {
return '<button>' . $attr["text"] . '</button>';
}
?>

Tacksam för tips!

Eller är det kanske javascript jag får använda då? href och <button> fungerar väl inte ihop....

Trädvy Permalänk
Medlem
Plats
KTH, Datateknik
Registrerad
Jun 2011

Provat att Googla innan du frågade här? Fick upp detta som 2:a alternativet: http://diythemes.com/thesis/wordpress-shortcodes/

Citera för svar!

Stationär: Fractal Design Arc | Asus P8P67 Pro B3 | Intel i5 2500k @ 3.3 Ghz | Corsair Vengeance 8GB CL9 @ 1600 Mhz | Asus GTX580 Direct CU II | Antec Kühler H20 620 | 5 TB HDD | 128 GB SSD (Crucial M4) | Corsair HX 850W | W7
Bärbar: Sony Vaio Pro 13.3" | i7-4500U | 8GB RAM | 256GB SSD | W8

Trädvy Permalänk
Medlem
Registrerad
Mar 2014
Skrivet av RedRetro:

Provat att Googla innan du frågade här? Fick upp detta som 2:a alternativet: http://diythemes.com/thesis/wordpress-shortcodes/

Jo jag har googlat och jag har läst artiklen som du länkar till, men han använder ju a-taggen.

function sButton($atts, $content = null) {
extract(shortcode_atts(array('link' => '#'), $atts));
return '<a class="button" href="'.$link.'"><span>' . do_shortcode($content) . '</span></a>';
}
add_shortcode('button', 'sButton');

Trädvy Permalänk
Medlem
Plats
KTH, Datateknik
Registrerad
Jun 2011
Skrivet av Märta:

Jo jag har googlat och jag har läst artiklen som du länkar till, men han använder ju a-taggen.

function sButton($atts, $content = null) {
extract(shortcode_atts(array('link' => '#'), $atts));
return '<a class="button" href="'.$link.'"><span>' . do_shortcode($content) . '</span></a>';
}
add_shortcode('button', 'sButton');

Ja, precis. Och du kan inte använda a-taggen därför?

Citera för svar!

Stationär: Fractal Design Arc | Asus P8P67 Pro B3 | Intel i5 2500k @ 3.3 Ghz | Corsair Vengeance 8GB CL9 @ 1600 Mhz | Asus GTX580 Direct CU II | Antec Kühler H20 620 | 5 TB HDD | 128 GB SSD (Crucial M4) | Corsair HX 850W | W7
Bärbar: Sony Vaio Pro 13.3" | i7-4500U | 8GB RAM | 256GB SSD | W8

Trädvy Permalänk
Medlem
Registrerad
Mar 2014
Skrivet av RedRetro:

Ja, precis. Och du kan inte använda a-taggen därför?

Som jag skrev så vill jag inte använda a-taggen utan just taggen button. Mitt föräldratema använder taggen button för att styla alla knappar. Jag ville bara veta om det går annars får jag ju använda a-taggen, men då vet jag hur man gör och hade inte behövt skriva här.

Trädvy Permalänk
Medlem
Plats
i din garderob
Registrerad
Sep 2007
Skrivet av Märta:

Som jag skrev så vill jag inte använda a-taggen utan just taggen button. Mitt föräldratema använder taggen button för att styla alla knappar. Jag ville bara veta om det går annars får jag ju använda a-taggen, men då vet jag hur man gör och hade inte behövt skriva här.

Du måste använda javascript för att lägga funktionalitet på en knapp som inte tillhör ett formulär.

Bilanaloger är som Volvo — varenda svenne kör med dem

Trädvy Permalänk
Medlem
Registrerad
Mar 2014

@Teknocide: Jag kan inte så mycket Java script. Skulle du kunna visa skulle det vara jättesnällt! Hittar inte så mycket om det när jag googlar, men kanske inte söker på rätt saker.

Trädvy Permalänk
Medlem
Plats
i din garderob
Registrerad
Sep 2007
Skrivet av Märta:

@Teknocide: Jag kan inte så mycket Java script. Skulle du kunna visa skulle det vara jättesnällt! Hittar inte så mycket om det när jag googlar, men kanske inte söker på rätt saker.

I just ditt exempel, med PHP och allt, skulle jag gjort så här:

<?php add_shortcode('button', 'funcButton'); function funcButton($attr) { $action = "location.href='$attr[url]'"; $elem = "<button onclick='$action'>$attr[text]</button>"; return $elem; }

Bilanaloger är som Volvo — varenda svenne kör med dem

Trädvy Permalänk
Medlem
Registrerad
Mar 2014

@Teknocide: Tack så mycket! Dock får jag det fortfarande inte att fungera att man skriver in en egen url via shortcoden. Egen text fungerar bra. Så samma resultat som innan.

Trädvy Permalänk
Medlem
Plats
i din garderob
Registrerad
Sep 2007
Skrivet av Elly:

@Teknocide: Tack så mycket! Dock får jag det fortfarande inte att fungera att man skriver in en egen url via shortcoden. Egen text fungerar bra. Så samma resultat som innan.

Det säger inte så mycket tyvärr. Blir det ingen knapp? Länkar den fel? Får den inget onclick-attribut satt?

Tittar vi på guiden ovan som använder ett <a>-element så använder de flera andra funktioner från wordpress när de hämtar in sitt innehåll och argumenten. Det kanske måste göras på det sättet.

Bilanaloger är som Volvo — varenda svenne kör med dem

Trädvy Permalänk
Medlem
Registrerad
Mar 2014

@Teknocide: Förlåt för lite dålig information. Det blir en knapp och den får texten som jag ger den, men när man klickar på den händer inget trots att jag länkat den. Den går att klicka på och den markeras som en knapp ska men inget händer.

Trädvy Permalänk
Medlem
Plats
i din garderob
Registrerad
Sep 2007
Skrivet av Elly:

@Teknocide: Förlåt för lite dålig information. Det blir en knapp och den får texten som jag ger den, men när man klickar på den händer inget trots att jag länkat den. Den går att klicka på och den markeras som en knapp ska men inget händer.

Jag slarvade med citationstecknena i förra stycket. Det här ska fungera

function funcButton($attr) { $action = "location.href='$attr[url]'"; $elem = "<button onclick=\"$action\">$attr[text]</button>"; return $elem; }

Bilanaloger är som Volvo — varenda svenne kör med dem

Trädvy Permalänk
Medlem
Registrerad
Mar 2014
Skrivet av Teknocide:

Jag slarvade med citationstecknena i förra stycket. Det här ska fungera

function funcButton($attr) { $action = "location.href='$attr[url]'"; $elem = "<button onclick=\"$action\">$attr[text]</button>"; return $elem; }

Tack så mycket! Fungerade perfekt