正在用火车采集器为我的一个英文站采集数据,站是用WP搭建的,其中的Permalinks选项:我是/%category%/%postname%.htm的方式,发现采集过去后,不能自己生成路径,每个文章路径都是清一色的.htm,只有一个后缀,打都打不开,只能手动一个个再到后台去更新,很影响效率。
看了那个火车采集器的接口文件,发现那个post_name没有赋值,所以造成了上面的情况。如果能把post_title转成post_name的话,估计能解决。
想到WP本来就有这个功能,找了一下,发现利用sanitize_title_with_dashes()就能把post_title变成我所需要的post_name,sanitize_title_with_dashes()可以把标题字符串全都小写,删除一些不必要的字符,同时把中间的空格用破折符"-"替代。
$title=""Lenovo <b>ThinkPad</b> T40" Windows XP Driver";
echo sanitize_title_with_dashes($title);
按上面,如果标题字符串是""Lenovo <b>ThinkPad</b> T500" Windows XP Driver",经过转化就变成这个形式: lenovo-thinkpad-t40-windows-xp-driver。
我测试了一下,在接口文件里加入包含 sanitize_title_with_dashes 函数的WP文件" include('formatting.php');” 的内容后,但老是发布失败,连类别都不能刷出来了,后来索性不加入这个文件,直接调用sanitize_title_with_dashes()反而是可以的,有点纳闷,难道是接口文件里的 include('wp-config.php'); 在起作用?
昨天,在用火车时还发现,发布内容时,如果碰到内容有"’” 等这些特殊字符,就会自动截断,字符后面的内容就发不出去,一开始,我用替换大法来解决这些特殊字符,后来在发布内容设置里,只要把“数据发布时进行UrlEncode处理”打上勾就可以轻易解决问题了。


