Wordpress

Заменить title в админке WordPress

By 28.10.2018 No Comments

Встречаются задачи, когда требуется создать пользовательский тип постов с пользовательскими мета полями, а мета поле выводить вместо стандартного заголовка (title) в столбике «Название» в админке сайта.

Для решения данной задачи вам поможет фильтр следующего вида: 

add_filter('the_title', 'custom_meta_title_for_admin', 10, 2);

А сама функция:

function custom_meta_title_for_admin( $title, $id ) {
    if ( get_post_type( $id ) == 'my_type_post' ){
        return get_post_meta($id, 'key', true);
    } else {
        return $title;
    }
}

Всё будет работать, но при сохранении изменений в публикации или при создании новой у вас будет появляться ошибка 500. Чтобы этого избежать добавьте пару проверок в функцию:

function custom_meta_title_for_admin( $title, $id = NULL ) {
    if ($id) {
        if ( get_post_type( $id ) == 'my_type_post' ){
            return get_post_meta($id, 'key', true);
        } else {
            return $title;
        }
    } else {
        return $title;
    };
}

На этом всё. Сам использую данную доработку почему и делюсь ею с вами

Leave a Reply