php's Strip_tags () не будет работать
Вопрос
Я пытаюсь немного изменить WordPress, но я на уровне 0 в PHP, поэтому я вроде отстой:/
Я хочу добавить пользовательскую кнопку «Твитнуть эту» (я знаю, что их уже есть, я просто хотел сделать это самостоятельно, для удовольствия)
Итак, я пробую это:
<a href="http://twitter.com/home?status=<?php strip_tags(the_excerpt()) ?>" >tweet this</a>
the_excerpt () возвращает "<p> ... excerpt ... </p>"
и функция Strip_tags не лишает их <p>
Теги!
Что мне сделать не так?
Спасибо, и извините, если это очевидно.
Решение
Ваша проблема в том, что the_excerpt()
не возвращает свое содержимое в strip_tags()
, но выводит его напрямую, используя echo
. Анкет Так strip_tags()
(что потребуется предыдущим echo
Кстати, выполнять какую -либо работу) ничего не может сделать.
Использовать get_the_excerpt () Вместо этого (разрыв линии вставлен для ясности, удалите при использовании):
<a href="http://twitter.com/home?status=
<?php echo strip_tags(get_the_excerpt()); ?>" >tweet this</a>
Кстати, я бы тоже urlencode()
Выдержка, вы обязательно столкнетесь с проблемами, если он содержит "
Двойные цитаты или другие забавные персонажи.
Другие советы
Это не выглядит правильно по здравому смыслу: <?php strip_tags(the_excerpt()) ?>
, тогда WP DOC объяснил, The_excerpt's API DOC, он сказал, что эхо вместо того, чтобы вернуть его. Ну, используйте ob_start
к обходному пути.
ob_start("callback");
the_excerpt();
$excerpt = ob_get_contents();
?>
<a href="http://twitter.com/home?status=<?php echo strip_tags($excerpt) ?>" >tweet this</a>
<?php
Примечание: у меня нет опыта WordPress API.