文章Tag 标签的创建关键在于必须先判断该标签是否存在,如果已经存在是无法添加成功的。另外该标签的 ID 是必须的。
// ==== 建立连接 ==== var client = new WordPressClient(new WordPressSiteConfig { BaseUrl = "http://www.guihet.com/", Username = "123456", Password = "123456", BlogId = 1 }); // ==== 处理Tag标签 ==== List<Term> termList = new List<Term>();//定义一个集合用于暂时存放Term var t = new Term() { Taxonomy = "post_tag", //post_tag表示标签,category表示分类 Name = "test" // }; var terms = client.GetTerms("post_tag", new TermFilter() { Search = t.Name }); if (terms == null) { var term_id = client.NewTerm(t); t.Id = term_id; } else { foreach (var term in terms) { if (term.Name == t.Name) { t.Id = term.Id; // 如果标签存在,取同名标签的ID } } if (t.Id == null) { t.Name = t.Name; var term_id = client.NewTerm(t); t.Id = term_id; } } termList.Add(t);//添加到集合中,可以添加多个 // ==== 发布 ==== Post post = new Post { Title = "标题", PostType = "post", PublishDateTime = DateTime.Now, Content = "黑鸟博客成立于2018年 ..", Terms = termList.ToArray(), //Terms = new Term[] { t, client.GetTerm("category", 8) }, Status = "publish", }; MessageBox.Show(client.NewPost(post));
Term中可以添加Slug,即别名,但不是必须的参数。一般用于显示网址会好看点,不会因为中文转码后一堆符号看不懂,例如Slug = “testTag”
文章分类category一般情况只有固定的几个,发布文章的时候选一个就好,添加分类跟添加Tag的方法是一样的,都是 Term 对象。
var tf = new Term { Id = 8, Taxonomy = "category", };//只要ID就可以了 //或者var tf = client.GetTerm("category", 8) termList.Add(tf);
分类的 ID 号可以在Wordpress后台查看。
好久没用C#了,感觉还是很亲切