使用meta框作为自定义帖子类型的标题

时间:2018-11-14 作者:MFWebMaster

我有一个自定义的帖子类型,在帖子类型中添加了一些元框。CPT元框的代码运行良好。然后,我添加了以下代码,以使用元框作为帖子的标题。问题是该代码适用于站点上的所有帖子、页面和其他CPT。

是否有人可以建议如何更改下面的代码,以便仅为CPT使用。

////////////////////////////////////////////////////////////////////
// Set post title //
////////////////////////////////////////////////////////////////////   
add_action( \'save_post\', \'post_updated\' );
function post_updated( $post_id ) {
$meta_box_one       = get_post_meta(get_the_ID(), \'meta_box_one\', true);
$meta_box_two       = get_post_meta(get_the_ID(), \'meta_box_two\', true);
$meta_bax_three     = get_post_meta(get_the_ID(), \'meta_bax_three\', true);
$post_name  = \'\' . $meta_box_one . \' \' . $meta_box_two  . \' \' . 
$meta_box_three . \'\';

   // verify post is not a revision & not an autosave
   if ( !wp_is_post_revision(  $post_id ) && !(defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE) ) {
    // set the new post title
    $post[\'ID\'] = $post_id;
    $post[\'post_title\'] =  $post_name; 

    // update the post, removing the action to prevent an infinite loop
    remove_action( \'save_post\', \'post_updated\' );
    wp_update_post($post);
    add_action( \'save_post\', \'post_updated\' );
}
}

1 个回复
SO网友:Milo

您可以使用get_post_type 要检查类型:

function post_updated( $post_id ) {
    $post_type = get_post_type($post_id);
    // If this isn\'t a \'book\' post, don\'t update it.
    if ( "book" != $post_type ) return;

    // the rest of your code...
}

结束

相关推荐

在自定义帖子类型的metabox中添加exta字段时出现问题

我正在尝试在metabox中添加一个新字段。有一个演示url字段工作正常。我创建了一个新字段,该字段没有存储或保存插入该字段的任何数据。这是我的大衣。// Adding meta box for freebie custom post type function demo_url_meta_box() { add_meta_box( \'demo_url_meta_box\', __( \'Freebie Details\'