Как очистить значение post_name перед вставкой в ​​WordPress? - PullRequest
1 голос
/ 18 августа 2010

Как очистить значение post_name перед вставкой в ​​WordPress?

Ответы [ 3 ]

0 голосов
/ 18 августа 2010

Simple:

$post_title = sanitize_title_with_dashes($post_title);

Но WordPress уже делает это для вас. Я полагаю, вам это нужно для чего-то другого?

0 голосов
/ 21 августа 2010

Полагаю, вы дезинфицируете путем прямой вставки SQL. Вместо этого рассмотрите возможность использования wp_post_insert () в вашем скрипте вставки.

$new_post_id = wp_insert_post(array(
  'post_title' => "This <open_tag insane title thing<b>LOL!;drop table `bobby`;"
));

На данный момент, вы просто беспокоитесь о своем заголовке, а не о слаге, имени сообщения и т. Д. WP позаботится об остальной и (по крайней мере, безопасности) дезинфекции. Пуля, как показано на скриншоте, становится вполне пригодной для использования.

alt text

Эту функцию можно использовать, просто выполнив include( "wp-config.php" ); и занимаясь своими делами без каких-либо других накладных расходов PHP.

Если вы имеете дело с какими-то прикольными заголовками, для начала может пригодиться простой strip_tags (trim ()). В противном случае у вас есть другие проблемы для решения; -)

0 голосов
/ 18 августа 2010

Некоторое решение может быть найдено в http://postedpost.com/2008/06/23/ultimate-wordpress-post-name-url-sanitize-solution/

Кроме того, вы можете сделать это следующим образом:

$special_chars = array("?", "[", "]", "/", "\\", "=", "<", ">", ":", ";", ",", "'", "\"", "&", "$", "#", "*", "(", ")", "|", "~", "`", "!", "{", "}");
$post_name = str_replace(' ', '-', str_replace($special_chars, '', strtolower($post_name)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...