我正在使用通过CRON加载的脚本将帖子插入wordpress。在插入每篇帖子之前,我会检查是否存在标题相同的帖子。下面是我正在使用的代码片段:
if( is_null(get_page_by_title( $page_title, \'OBJECT\', $post_type )) ) {
// Create post object
$my_post = array(
\'post_title\' => "Food & Wine", // this is example and it actually inserts $page_title.
\'post_content\' => \'Dummy content\',
\'post_status\' => \'draft\',
\'post_author\' => 1,
\'post_type\' => $post_type,
);
// Insert the post into the database
wp_insert_post( $my_post );
} else {
echo \'Post already exists.\';
}
现在,这个插入部件工作得很好,但它存储了“&;”作为html实体(
&
) 在数据库中。因此,在数据库中,帖子标题看起来像“食物和葡萄酒”。在“帖子列表管理”屏幕中,标题与“&;一起看起来很好”一旦我进入编辑屏幕,它就会显示
&
.
这会导致第一个“if”条件返回TRUE,并插入一个重复的post。我的数据库排序规则类型是“utf8\\U general\\U ci”。这在本地MAMP安装上有效,但在共享主机上失败。
我想知道代码中有什么错误,以及应该如何处理这种情况。是否建议对“post\\u内容”的html实体进行转义?
谢谢