我正在尝试“批量”更新wp\\u posts表中我的post\\u父字段中的值。我可以使用以下SQL查询在phpmyadmin中执行此操作:
UPDATE wp_posts SET post_parent = \'8\' WHERE post_type = \'the_name_of_my_post-type_here\';
但我无法从wordpress内部实现它。有什么想法吗?
我正在尝试“批量”更新wp\\u posts表中我的post\\u父字段中的值。我可以使用以下SQL查询在phpmyadmin中执行此操作:
UPDATE wp_posts SET post_parent = \'8\' WHERE post_type = \'the_name_of_my_post-type_here\';
但我无法从wordpress内部实现它。有什么想法吗?
您需要的功能是wp_update_post()
.
您可能希望有您想要更新的帖子,然后设置一个循环来分别更新每个帖子。
// However you get your posts, ID\'s, etc.
$posts = get_posts( array( \'post_type\' => \'post\' ) );
for ( $posts as $post ) {
wp_update_post( array( \'ID\' => $post->ID, \'post_parent\' => 8 ) );
}
对于一般的SQL调用,请查看$wpdb
对象prepare
和query
功能:global $wpdb;
$query = $wpdb->prepare( \'UPDATE wp_posts SET post_parent = %d WHERE post_type = %s\', 8, \'my-post-type\' );
$wpdb->query( $query );
你也可以调查$wpdb->update
- 它将来可能更适合你的需要。我创建了一个短代码,显示用户上次登录后创建的帖子。这个短代码工作得很好,但我不知道为什么,但我得到了7个重复的帖子。就像测试一样,我创建了一个名为“示例文章”的帖子,当我呼出帖子的标题时,我得到了这个结果。Sample Article Sample Article Sample Article Sample Article Sample Article Sample Article Sample Article Sample ArticleShortcodefunction latest_posts_af