Я пытаюсь создать кнопку общего доступа к facebook в каждом из моих сообщений, а общий контент будет динамическим, что означает, что я смогу настроить его миниатюру, название и описание для каждого сообщения.Ошибка Facebook share
ниже код, который я использую (я использую заранее плагин пользовательского поля в WordPress, кстати):
<a onClick="window.open('http://www.facebook.com/sharer.php?s=100&p[title]=<?php the_field(videotitle); ?>&p[summary]=<?php the_field(video_description); ?>&p[url]=<?php echo get_permalink(); ?>&p[images][0]=http://img.youtube.com/vi/<?php the_field(youtube_thumb); ?>/maxresdefault.jpg','sharer','toolbar=0,status=0,width=548,height=325');" href="javascript: void(0)" rel="nofollow"></a>
//////////////// ////////////////////////////////////////////////// /////////////////////////////////////
Ниже приведена php, которая будет выводить мои содержание из моей CMS:
<?php the_field(videotitle); ?>
<?php the_field(video_description); ?>
<?php echo get_permalink(); ?>
код работает отлично, но я заметил, когда я ввожу название/убыв ription слишком долго или использовать специальные символы в моем посте, кнопка перестает работать.
Как мне преодолеть это? Я все еще очень новичок в php, пожалуйста, объясните, если это возможно, в случае непрофессионала и заранее заблаговременно.
addslashes на самом деле не является правильным способом для этого - кроме контекста «текстовый текст JavaScript», какие правила должны здесь соблюдать, есть и другой контекст, контекст URL. После того, как данные содержат '&', это нарушит этот контекст, потому что это будет означать конец одного значения параметра GET и начало следующей пары _name = value_. Поэтому, прежде всего, нужно использовать «urlencode». (И так как это не оставляет символов '' 'в результате, позаботьтесь об этом больше не нужно после этого.) – CBroe
@CBroe - Хороший звонок. Вместо этого я включил urlencode в свой ответ. – Axel