проблема амперсанда с категориями WordPress - PullRequest
0 голосов
/ 01 мая 2010

У меня есть множество категорий, некоторые с событиями и развлечениями. Мой скрипт импортирует эти категории и получает идентификатор каждой, используя ее имя. т.е.: $cat_id = array(get_cat_id($linearray[0]),get_cat_id($linearray[1]),get_cat_id($linearray[2]),get_cat_id($linearray[3])); Затем мой сценарий добавляет сообщение в wp, используя эти идентификаторы категории. Моя проблема в том, что категории из моего импорта с & не импортируются. Эти же категории (при отправке уведомления по электронной почте) разбивают электронную почту на &. Есть ли простой способ обойти это?

Ответы [ 2 ]

0 голосов
/ 15 августа 2018

Я думаю, что для некоторых обстоятельств я использовал свою собственную функцию медленной работы для Wordpress:

function sluggify($text) {
   $text = strtolower(htmlentities($text));
   $text = str_replace("&", "and", $text);
   $text = str_replace("andamp;", "and", $text);
   $text = str_replace(get_html_translation_table(), "-", $text);
   $text = str_replace(" ", "-", $text);
   $text = preg_replace("/[-]+/i", "-", $text);
   return $text;
}

Обратите внимание на две повторяющиеся строки:

$text = str_replace("&", "and", $text);
$text = str_replace("andamp;", "and", $text);

Хотя повторяется, это совершенно необходимо!

Для невежественного комментария ниже - это функция многократного использования, в которой вы можете передать любое строковое значение, и оно будет добавлено Таким образом, выполнимо для вышеупомянутого случая.

0 голосов
/ 01 мая 2010

Когда вы пишете сообщение, вместо & вы можете написать & там, и оно будет без проблем переведено на &.

Также вы можете использовать функцию str_replace для преобразования в &, например:

$new_text = str_replace('&', '&', $your_string);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...