在WP中更改帖子作者的标准或更明显的方法是使用wp_update_post() 功能,如所示this question.
但我有一个问题,描述如下:
// Inside the save_post attached callback
$arg = array(
\'ID\' => $post_id,
\'post_author\' => $whoever,
);
wp_update_post($arg); --> This fires the save_post hook --> Infinite loop
这是一种特殊情况,我需要在save\\u post回调中进行更新。这将导致无限循环。(参见this similar case)我想知道是否有另一种方法可以更新不触发save\\u post挂钩的帖子作者。
我知道我可以使用内置的author元数据库来实现这一点,但需求迫使我不要使用内置的author元数据库,我必须使用自定义元数据库来更新文章作者。
一种可能的解决方案是直接使用SQL:
UPDATE `wp_posts`
SET `post_author` = 2
WHERE `ID` = 1
可通过以下方式实现:global $wpdb;
$wpdb->get_results("UPDATE `wp_posts` SET `post_author` = " . $int_author . " WHERE `ID` = " . $int_ID);
当然,之前要确保两个变量都包含数字。有人知道更好的解决方案吗?