使用CPT保存帖子重置我的CF.

时间:2015-09-14 08:30:00

标签: php wordpress function

我的wordpress有问题

我创建了CPT(自定义帖子类型),用于创建产品。 对于每个CPT我都与另一个CPT相关,它允许我添加图片库和CF(自定义字段),让我列出应该在勾选复选框上显示的图标。

在save_post函数上讨论我的函数应该是post_parent ID,用于特定的帖子和保存数据。 第一眼看上去还不错,但是在我试图在保存帖子上添加相关CPT图像的时候,它会重置我带有图标列表的自定义字段(slug produkt-icons)。

所以,下面的样本

1)我添加帖子,勾选图标,不添加任何带图像的CPT =保存帖子和图标(但我没有图像:()

2)我添加帖子,勾选图标,添加来自CPT的图像=勾选复选框重置其值,但是帖子和图像显示:(

有什么想法吗?感谢您的帮助:)

以下功能

add_action( 'save_post', 'parent_page_for_post_type', 10, 3 );

function parent_page_for_post_type( $post_id ) {

    $post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'];
    $current_post_type = get_post_type();

    // save posts for parent_page IDs
    if ( $current_post_type == 'post' ) {

    set_parent_for_post_func( $post_id, 7);
    }
    elseif ( $current_post_type == 'produkt' ) {
        set_parent_for_post_func( $post_id, 32);
    }
}

function set_parent_for_post_func($post_id, $my_post_id) {
// If this isn't a 'post' post, don't update it.
    foreach((array)get_post_type($post_id) as $post_type) {

    remove_action( 'save_post', 'parent_page_for_post_type' );
    // update the post, which calls save_post again

    $my_post = array ();
    $my_post['ID'] = $post_id;

    $my_post['post_parent'] = $my_post_id;

    wp_update_post( $my_post );
    // re-hook this function

    add_action( 'save_post', 'parent_page_for_post_type' );
    }
}

0 个答案:

没有答案