在保存新帖子或已编辑帖子时编辑多个自定义帖子类型

时间:2011-06-07 作者:Alex

我有一个自定义的帖子类型,里面有一些自定义字段。

现在我要做的是,当我在该帖子类型中保存新帖子或编辑现有帖子时,要更改该自定义帖子类型中所有其他帖子的自定义字段。

我熟悉update\\u post\\u meta,但我不知道如何获取所有其他帖子的帖子ID来更新它们。

1 个回复
SO网友:Bainternet

我会这样做:

add_action(\'save_post\',\'update_all_meta\');

function update_all_meta($post_id){
    // verify if this is an auto save routine. 
    // If it is our form has not been submitted, so we dont want to do anything
    if ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE ) 
        return;
    //check for post type
    if ( $post->post_type != "YOUR_CUSTOM_TYPE" ) 
        return;
    global $post;
    $tmp_post = $post;
    $args = array( 
        \'posts_per_page\' => -1,
        \'post_type\' => \'YOUR_CUSTOM_TYPE\',
        \'post__not_in\' => (array)$post->ID //skip current post
        );

    $myposts = get_posts( $args );
    //loop over all custom posts and update the meta
    foreach( $myposts as $post ) {
        setup_postdata($post); 
        update_post_meta($post->ID,\'meta_key\',$meta_value);
    }
    $post = $tmp_post;
}
但如果存储的数据相同,可以使用options api,这样您只需更新一次,就可以将其用于所有帖子。

结束

相关推荐

‘Posts’的帖子类型说明

在我目前正在开发的网站上,我使用“自定义帖子类型UI”来管理我的自定义帖子类型。在此范围内,我可以管理我创建的任何新自定义帖子类型的描述。如何编辑默认“posts”帖子类型的描述?我将在每个部分的标题下输出此描述。谢谢