2010-08-18 67 views

回答

0

簡單:

$post_title = sanitize_title_with_dashes($post_title); 

但WordPress的做到這一點已經爲你。我假設你需要它來做一些不同的事情?

+0

sanitize_title($ post_title);作品也是如此 – Anraiki 2010-08-18 15:08:54

+0

@Araraiki:但它不會使用*破折號*。 ;-) 儘管如此,'sanitize_title()'留下了'post_name'中不需要的空格。 – MikeSchinkel 2010-08-19 05:19:15

+0

這很奇怪。 http://codex.wordpress.org/Function_Reference/sanitize_title除非,我讀到它錯誤的例子,他們在那裏顯示。 '這個長標題是我的帖子或頁面可能' - >'這個長標題是什麼我的帖子或頁面可能是' – Anraiki 2010-08-19 15:31:50

0

我猜你正在通過直接插入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會照顧其餘的和(至少安全)消毒。如屏幕截圖所示,slu becomes變得相當有用。

alt text

此功能可以通過簡單地做include("wp-config.php");和去了解您的業務沒有任何其他的PHP開銷中。

如果你正在處理一些時髦的標題開始,一個簡單的strip_tags(trim())可能會伎倆。否則,您還有其他問題需要處理;-)