php - 函数 wp_update_post() 为某些帖子返回 0
问题描述
我正在使用该wp_update_post()
功能来更新某些帖子。https://developer.wordpress.org/reference/functions/wp_update_post/
该功能更新了很多帖子,但有时会失败。我做了一个var_dump()
看看它在失败时返回了什么并得到了int(0)
.
我阅读了该函数的文档,它包含以下代码:
// First, get all of the original fields.
$post = get_post( $update_post['ID'], ARRAY_A );
if ( is_null( $post ) ) {
if ( $wp_error ) {
return new WP_Error( 'invalid_post', __( 'Invalid post ID.' ) );
}
return 0;
}
因此,如果$post
为空,则返回 0。但是,$post
当我运行var_dump()
.
这是我的$update_post
数组代码。
$update_post = array(
'ID' => $post_id,
'post_title' => $post_title,
'post_content' => $post_content,
'post_excerpt' => $post_excerpt,
'tags_input' => $post_tags,
'post_status' => 'publish'
);
帖子 ID 的有效值为2084
(存在具有此 ID 的已发布帖子)。所有其他字段也被填充。我怎样才能让这个功能工作?
我想再次提一下,我仍然可以更新许多其他帖子。该问题仅发生在 ID 2084 后(据我所知)。
根据@CBroe 的建议,我将函数更改为wp_update_post($update_post, true)
.
这给了我以下输出:
object(WP_Error)#1639 (2) { ["errors"]=> array(1) { ["db_update_error"]=> array(1) { [0]=> string(37) "Could not update post in the database" } } ["error_data"]=> array(0) { } }
解决方案
https://developer.wordpress.org/reference/functions/wp_update_post/:
$wp_error
(bool) (可选)允许在失败时返回 WP_Error。
默认值:假
您需要true
作为第二个参数传递给wp_update_post
,以便它返回WP_Error
失败时的实例。
如果您不这样做……那么0
如果出现问题,它只会返回。
所以添加那个参数,然后var_dump 那个调用的结果,这样WP_Error
对象就可以告诉你到底出了什么问题。
推荐阅读
- nested - 包括多个嵌套关系的联盟分形
- peoplesoft - 为什么要在 AWE 中使用 Route Controls 而不是 Steps
- oracle - 如何使用 DBMS_STATS.set_table_prefs 将具有相同所有者的多个表的 Incemental 设置为 true?
- babeljs - 在 Ubuntu 16.0.4 上安装 Babel
- bash - 如何回显某些内容并读取用户输入,然后在同一行上回显某些内容?
- android - Android NDK突然很慢
- c++ - 使用宏定义打印格式参数
- php - 首先是什么:Wordpress 中的 wp_head 或 the_content 挂钩?
- html - svg 内联中断页面
- php - 使用什么:ROR 中的类或模块