全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 439|回复: 2

Wordpress 大佬请进。

[复制链接]
发表于 2019-1-15 13:06:42 | 显示全部楼层 |阅读模式
本帖最后由 yaoruisheng 于 2019-1-15 16:16 编辑

开门见山,我首先引用wp-load.php

  1. include_once("../wp-load.php");
复制代码


然后用wp_insert_post 这个函数直接发表一篇文章
  1. $post_id = wp_insert_post( $post , $error);
复制代码


其中$post这个变量,我打印出来的结果是

  1. array(8) {
  2.   ["post_author"]=>
  3.   int(1)
  4.   ["post_content"]=>
  5.   string(115) "<iframe src="https://www.google.com/" frameborder="0" allowfullscreen="allowfullscreen"></iframe>"
  6.   ["post_title"]=>
  7.   string(93) "谷歌,搜你所搜!"
  8.   ["post_status"]=>
  9.   string(7) "publish"
  10.   ["post_type"]=>
  11.   string(4) "post"
  12.   ["post_category"]=>
  13.   array(1) {
  14.     [0]=>
  15.     int(3)
  16.   }
  17.   ["tax_input"]=>
  18.   array(1) {
  19.     ["post_format"]=>
  20.     string(5) "video"
  21.   }
  22.   ["meta_input"]=>
  23.   array(1) {
  24.     ["gg_auto_id"]=>
  25.     string(11) "1VQbu3FcNHU"
  26.   }
  27. }
复制代码


问:为什么最终结果是文章发布了,但是只有标题,没有内容,并且文章分类也不对?



经过折腾,发现是权限问题,内容为空是wordpress过滤掉内容里的iframe标签,需要用kses_remove_filters()函数关闭过滤器。

文章的类别无法通过tax_input进行设置,由函数wp_insert_post源码https://developer.wordpress.org/reference/functions/wp_insert_post/  可见:


  1.             if ( current_user_can( $taxonomy_obj->cap->assign_terms ) ) {
  2.                 wp_set_post_terms( $post_ID, $tags, $taxonomy );
  3.             }
复制代码


只有登陆用户才可以wp_set_post_terms。
发表于 2019-1-15 13:42:37 | 显示全部楼层
我怎么没用到 include 和 wp_insert_post ???
你不用循环吗?
 楼主| 发表于 2019-1-15 13:57:02 | 显示全部楼层
yonlee 发表于 2019-1-15 13:42
我怎么没用到 include 和 wp_insert_post ???
你不用循环吗?

不是插件和主题,是调用wordpress发表日志。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-11-29 11:27 , Processed in 0.061154 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表