Как разделить заголовок Wordpress на & ndash; в PHP? - PullRequest
1 голос
/ 06 февраля 2012

Я работаю над своим блогом Wordpress, и мне нужно получить заголовок сообщения и разделить его на "-".Дело в том, что это не работает, потому что в источнике это & ​​ndash; и когда я смотрю на результат на сайте, это "длинный минус" (-).Копирование и вставка этого длинного минуса в некоторый редактор делает его обычным минусом (-).Я не могу разделить ни на «-», ни на & ndash, но каким-то образом это должно быть возможно.Когда я создавал статью, я просто набрал «-» (минус), но где-то она конвертируется в - автоматически.

Есть идеи?

Спасибо!

Ответы [ 2 ]

1 голос
/ 06 февраля 2012

Я думаю, что нашел это.Я помню, что у меня возникла похожая проблема: когда я вставляю код в свой пост, кавычка преобразуется в em-quad, когда отображается для читателей.

Я обнаружил, что он находится в / wp-include / formatting.php строка 56 (wordpress ver 3.3.1), она определяет некоторые символы, которые нужно заменить

$static_characters = array_merge( array('---', ' -- ', '--', ' - ', 'xn–', '...', '``', '\'\'', ' (tm)'), $cockney );
$static_replacements = array_merge( array($em_dash, ' ' . $em_dash . ' ', $en_dash, ' ' . $en_dash . ' ', 'xn--', '…', $opening_quote, $closing_quote, ' ™'), $cockneyreplace );

, а в строке 85 она делает замену

// This is not a tag, nor is the texturization disabled static strings
$curl = str_replace($static_characters, $static_replacements, $curl);
0 голосов
/ 06 февраля 2012

Если вы хотите разбить строку на символе «-», в основном вы должны заменить «-» на пробел.

Попробуйте это:

$string_to_be_stripped = "my-word-test";
$chars = array('-');
$new_string = str_replace($chars, ' ', $string_to_be_stripped);
echo $new_string;

Эти строки разбиваютСтрока в «-».Например, если у вас есть my-word-test, он будет повторять «my word test».Надеюсь, это поможет.

Для получения дополнительной информации о функции str_replace нажмите здесь .

Если вы хотите сделать это в стиле WordPress, попробуйте использовать фильтры .Я предлагаю разместить эти строки в вашем файле functions.php:

add_filter('the_title', function($title) { 

$string_to_be_stripped = $title;
$chars = array('-');
$new_string = str_replace($chars, ' ', $string_to_be_stripped);
return $new_string;

}) 

Теперь, каждый раз, когда вы используете the_title в цикле, заголовок будет экранирован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...