如何将自定义域从用户的CPT复制到用户的普通帖子

时间:2015-09-22 作者:Pete

每个作者在CPT中都有一篇文章。在他们的CPT帖子中,他们有一个自定义字段。

每个作者也可以根据自己的喜好发布到普通的帖子类型。

如何将复制的用户CPT帖子的自定义字段复制到他们随后发布的所有正常帖子类型帖子中。

非常感谢您的帮助。

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

您可以使用wp_insert_post 用户创建/保存“普通”帖子,然后查找其自定义帖子并复制到所需的任何字段时的操作:

function wpse_203349_copy_post_meta( $post_ID, $post, $update ) {
    if ( $post->post_type !== \'post\' )
        return;

    $users_custom_posts = get_posts(
        array(
            \'posts_per_page\' => 1,
            \'post_author\' => $post->post_author,
            \'post_type\' => \'custom_post_type\',
        )
    );

    if ( ! $users_custom_posts )
        return; // This author doesn\'t currently have any custom posts

    $fields = get_post_custom( $users_custom_posts[0]->ID );

    foreach ( $fields as $field => $value ) {
        if ( $field[0] !== \'_\' && ( empty( $value[0] ) || ! is_array( $value[0] ) ) ) // Ignore "private" fields (prefixed with an underscore or serialized data)
            add_post_meta( $post_ID, $field, empty( $value[0] ) ? \'\' : $value[0], true /* Unique */ ); // If the field already exists, it won\'t be overwritten, unlike update_post_meta()
    }
}

add_action( \'wp_insert_post\', \'wpse_203349_copy_post_meta\', 10, 3 );

相关推荐

自定义Post-type未返回正确的Child_Of

Situation我正在使用高级自定义字段插件为自定义帖子类型设置一个复选框。如果选中此框,则此查询应返回该框。到目前为止,查询工作正常。The issue我希望它显示的页面都是一个页面的子页面。这个查询返回带有复选框的所有页面,而不是只返回带有复选框的当前页面的子页面。My code页面顶部<?php $tid = get_the_ID(); ?> 沿着页面进一步<?php $i == 0; global $post; $myposts =