Problem med shortcode

Jens1986

Medlem
Hei,

Når jeg prøver å legge inn koden under i en shortcode blir hele siden "ødelagt" (jeg må laste opp original functions fila via ftp igjen). Hva er galt? Er det pga javascript? I så fall, finnes det en workaround?

Og ja, jeg har dobbeltsjekket at det jeg gjør i functions.php er likt som med alle andre shortcodes jeg har lagt inn. :) på forhånd takk for hjelp!
Kode:
<div id="facebook_share">
<div id="fbone"><iframe src="//www.facebook.com/plugins/like.php?href=https%3A%2F%2Fdevelopers.facebook.com%2Fdocs%2Fplugins%2F&amp;width&amp;layout=button_count&amp;action=like&amp;show_faces=false&amp;share=false&amp;height=21&amp;appId=705195916267776" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:21px;" allowTransparency="true"></iframe></div>
<div id="two">
<script type="text/javascript">// <![CDATA[
function fbs_click() {u=location.href;t=document.title;window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');return false;}
// ]]&gt;</script><img src="images/facebook.png">&nbsp;&nbsp;<a class="button facebook" onclick="return fbs_click()" href="http://www.facebook.com/share.php?u=<url>" target="_blank">Del p� facebook!</a></div>
</div>
 

adeneo

Medlem
Og hvor er koden som legger dette inn i en shortcode?

Det er jo begge typer quotes osv. i den koden, du er sikker på at du escaper dette skikkelig
 

adeneo

Medlem
Hvis

PHP:
'KODE';

er den teksten ovenfor, så får du jo
PHP:
return '<div id="face .... function fbs_click() { ... window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer', ....;

legg merke til at single quotes i javascriptet åpner og lukker de i PHP'en, de må escapes ?
 

adeneo

Medlem
Uten at jeg har testet det, så kan du vel prøve

PHP:
return '<div id="face ... window.open(\'http://www.facebook.com/sharer.php?u=\'+encodeURIComponent(u)+\'&t=\'+encodeURIComponent(t),\'sharer\', ....;

altså putt en "\" foran alle single quotes slik at de ikke lukker PHP stringen
 

Jens1986

Medlem
Prøvd dette nå, og det går ikke :(

Kode:
function facebook(){
return '<div id="facebook_share">
<div id="two">
<script type="text/javascript">// <![CDATA[
function fbs_click() {u=location.href;t=document.title;window.open(\'http://www.facebook.com/sharer.php?u=\'+encodeURIComponent(u)+\'&t=\'+encodeURIComponent(t),\'sharer\',\'toolbar=0,status=0,width=626,height=436\');return false;}
// ]]&gt;</script><img src="images/facebook.png">&nbsp;&nbsp;<a class="button facebook" onclick="return fbs_click()" href="http://www.facebook.com/share.php?u=<url>" target="_blank">Del på facebook!</a></div>
</div>';
}
add_shortcode('FACE', 'facebook');
 

Jens1986

Medlem
Det dukket opp en rar bug etter at jeg ordnet dette.

Det skjedde rett etter at jeg la inn koden, jeg har ikke installert noen plugins el. som kan ha forårsaket det. Problemet er følgende:

Når jeg lager en post, oppdaterer noen innstillinger el. lastes det bare en blank side. Endringene/innlegget blir lagret, men jeg må refreshe siden/gå tilbake. Noen som kan ha noen forklaring på dette? Har aldri opplevd noe liknende. Når jeg fjerner koden fra functions.php fungerer alt igjen.
 
Topp