如何在带有分类自定义字段的函数中检索类别名称而不是ID?

时间:2020-07-10 作者:L. core

我正在尝试通过自定义字段更改特定帖子类型的帖子标题(后端和前端)。我使用的自定义字段是一个分类字段,我可以在其中从不同的类别(汽车)中进行选择。我正在使用以下代码:

    //Save ACF field as post_content for back-end
add_action(\'save_post\', \'change_title_cars\');

function change_title_cars($post_id) {
    global $_POST;
    if(\'cars\'== get_post_type())
    {
        $post_custom_title = get_post_meta($post_id,\'car_name\',true);
        $my_post = array();
                $my_post[\'ID\'] = $post_id;
                $my_post[\'post_title\'] = $post_custom_title;
remove_action(\'save_post\', \'change_title_cars\');
                    wp_update_post( $my_post );
add_action(\'save_post\', \'change_title_cars\');
    }
   }

//Save ACF field as post_content for front-end
add_action(\'acf/save_post\', \'change_title_frontend_cars\');

function change_title_frontend_cars($post_id) {
    global $_POST;
    if(\'cars\'== get_post_type())
    {
        $post_custom_title = get_post_meta($post_id,\'car_name\',true);
        $my_post = array();
                $my_post[\'ID\'] = $post_id;
                $my_post[\'post_title\'] = $post_custom_title;
remove_action(\'acf/save_post\', \'change_title_frontend_cars\');
                    wp_update_post( $my_post );
add_action(\'acf/save_post\', \'change_title_frontend_cars\');
    } 
}
它工作正常,只是在标题中显示类别ID(编号),而不是名称。

我尝试将自定义字段设置中的返回值从术语ID更改为术语对象,但没有成功。

注意:(taxonomy自定义字段)的值也是帖子类别。

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

您需要首先获取术语对象。

//Your meta field
$post_custom_title = get_post_meta($post_id,\'car_name\',true);

//Get the term object by id. change taxonomy_slug to the taxonomy you intend to use
$term = get_term_by( \'id\', $post_custom_title, \'taxonomy_slug\' );

//Retrive the term name and use it as post title
$term_name = $term->name;

//call the wp_update_post function setting $term_name as the post title.  
只是好奇,为什么你想为所有属于同一任期的职位设置一个共同的头衔?