shanguiyao 发表于 2013-7-9 10:58:26

wordpress批量更新category的方法

wordpress在线写英文有些慢,我是在本地写了一个简单的录入系统.写好后批量导入进去.这牵涉到一些category或者tag的导入.为了批量导入.写了一个存储过程.然后批量调用存储过程,可以把category导入进去.分享一下.


CREATEPROCEDURE `p_add_article_category`(in v_term VARCHAR(300),in v_title varchar(2000))
BEGIN
set @wp_post_id=IFNULL((select id from wp_posts where post_title=v_title limit 0,1),0);
if (@wp_post_id>0) then
   set @term_id=IFNULL((select term_id from wp_terms where name=v_term limit 0,1),0);
   if (@term_id=0) then
       insert into wp_terms(name,slug, term_group) values(v_term,v_term,0);
       set @term_id=(select term_id from wp_terms where name=v_term limit 0,1);
   end if;
   set @term_taxonomy_id=IFNULL((select term_taxonomy_id from wp_term_taxonomy where taxonomy='category' and term_id=@term_id limit 0,1),0);
   if (@term_taxonomy_id =0) then
         insert into wp_term_taxonomy(term_id,taxonomy,description,parent,count) values(@term_id,'category','',0,0);
         set @term_taxonomy_id=(select term_taxonomy_id from wp_term_taxonomy where taxonomy='category' and term_id=@term_id limit 0,1);
   end if;

   if(not EXISTS(select 1 from wp_term_relationships where object_id=@wp_post_id and term_taxonomy_id=@term_taxonomy_id)) then
         insert into wp_term_relationships(object_id,term_taxonomy_id,term_order) values(@wp_post_id,@term_taxonomy_id,0);
         update wp_term_taxonomy set count=count+1 where taxonomy='category' and term_id=@term_id;
   end if;
end if;
END

调用方法:

callp_add_article_category('scenery','this is the title about scenery');


sophieqd 发表于 2013-7-9 11:19:57

火车必用,谢谢分享。好东西

fox598 发表于 2013-7-9 21:11:13

好东西,谢谢分享!爱疯!

有鱼不换酒 发表于 2013-7-10 02:41:54

能详细说下怎么用吗?
我是不是建一个php文件,把这个句子写进去
比如
callp_add_article_category('scenery','this is the title about scenery');
callp_add_article_category('scenery','this is the title about scenery 2');
callp_add_article_category('scenery','this is the title about scenery 3');
这样是添加3个文章到目录了.
如果一次改n条,是不是就要写n条.
可以用关键字匹配分类吗,比如标题有scenery的都一次分类到scenery去

312 发表于 2013-7-10 10:00:03

还在搞自动阿,太佩服了。

shanguiyao 发表于 2013-7-11 08:58:33

有鱼不换酒 发表于 2013-7-10 02:41 static/image/common/back.gif
能详细说下怎么用吗?
我是不是建一个php文件,把这个句子写进去
比如


先把存储过程通过phpmyadmin注册进去,然后批量调用就行了.一次可以弄几千个.一下执行.

有鱼不换酒 发表于 2013-7-11 16:03:57

shanguiyao 发表于 2013-7-11 08:58 static/image/common/back.gif
先把存储过程通过phpmyadmin注册进去,然后批量调用就行了.一次可以弄几千个.一下执行.

...

每一个post的标题都是不一样的呀.这样不是要为每一个post文章调用一次你这个存储过程吗?
批量调用一次,不所有包含某个关键字标题的文章都添加一个分类去.这样如何实现呢

shanguiyao 发表于 2013-7-11 20:20:41

对,每一个post标题调用一次.可以批量生成的吧?写个sql都拼出来要执行的一堆存储过程语句了.应该不太难吧.
页: [1]
查看完整版本: wordpress批量更新category的方法