san_jorich
@san_jorich
Творческий кодер

Call to undefined function add_meta_box(). Как?

В десятый\пятидесятый раз создаю метабокс в админке.. и тут WordPress радостно сообщает что не знает он такую штуку.
Я что-то упустил? Как так случилось?
Или где-то ошибка?
function sso_dictors_lib_post_type() {

        $dictors_labels = array(
            'name'                  => _x( 'База Дикторов', 'sso_dictors_lib' ),
            'singular_name'         => _x( 'База Дикторов', 'sso_dictors_lib' ),
            'menu_name'             => __( 'База Дикторов', 'sso_dictors_lib' ),
            'name_admin_bar'        => __( 'Диктора', 'sso_dictors_lib' ),
            'attributes'            => __( 'Аттрибуты диктора', 'sso_dictors_lib' ),
            'all_items'             => __( 'Все Дикторы', 'sso_dictors_lib' ),
            'add_new_item'          => __( 'Добавить Нового Диктора', 'sso_dictors_lib' ),
            'add_new'               => __( 'Добавить Диктора', 'sso_dictors_lib' ),
            'new_item'              => __( 'Новый Диктор', 'sso_dictors_lib' ),
            'edit_item'             => __( 'Редактировать Диктора', 'sso_dictors_lib' ),
            'update_item'           => __( 'Обновиить Диктора', 'sso_dictors_lib' ),
            'view_item'             => __( 'Просмотеть Диктора', 'sso_dictors_lib' ),
            'view_items'            => __( 'Просмотреть Диктора', 'sso_dictors_lib' ),
            'search_items'          => __( 'Найти Диктора', 'sso_dictors_lib' ),
            'not_found'             => __( 'Дикторов не найдено', 'sso_dictors_lib' ),
            'not_found_in_trash'    => __( 'Здесь Дикторов нет', 'sso_dictors_lib' ),
            'featured_image'        => __( 'Фотография Диктора', 'sso_dictors_lib' ),
            'set_featured_image'    => __( 'Установить фотографию Диктора', 'sso_dictors_lib' ),
            'remove_featured_image' => __( 'Удалить фотографию Диктора', 'sso_dictors_lib' ),
            'use_featured_image'    => __( 'Все фотографии Диктора', 'sso_dictors_lib' ),
            'insert_into_item'      => __( 'Добавить в анкету', 'sso_dictors_lib' ),
            'uploaded_to_this_item' => __( 'Прикрепить к этой анкете', 'sso_dictors_lib' ),
            'items_list'            => __( 'Список Дикторов', 'sso_dictors_lib' ),
            'items_list_navigation' => __( 'Список Дикторов', 'sso_dictors_lib' ),
            'filter_items_list'     => __( 'Фильтр Дикторов', 'sso_dictors_lib' ),
        );

        $rewrite = array(
        'slug'                  => 'sso_dictors_lib',
        'with_front'            => true,
        'pages'                 => true,
        'feeds'                 => true,
        );
        $dictors_args = array(
            'label'                 => __( 'База Дикторов', 'sso_dictors_lib' ),
            'description'           => __( 'База Дикторов и Актеров озвучки.', 'sso_dictors_lib' ),
            'labels'                => $dictors_labels,
            'supports'              => array('revisions', 'thumbnail' ),
            'taxonomies'            => array( 'sso_dictor_type'),
            'hierarchical'          => false,
            'public'                => true,
            'show_ui'               => true,
            'show_in_menu'          => true,
            'menu_position'         => 5,
            'menu_icon'             => 'dashicons-admin-users',
            'show_in_admin_bar'     => true,
            'show_in_nav_menus'     => true,
            'can_export'            => true,
            'has_archive'           => true,
            'exclude_from_search'   => true,
            'publicly_queryable'    => true,
            'query_var'             => 'post_type',
            'rewrite'               => $rewrite,
            'capability_type'       => 'post', 
        );
        register_post_type( 'sso_dictors_lib', $dictors_args );

    }
    add_action( 'init', 'sso_dictors_lib_post_type', 0 );
}


function add_dictor_data(){ ?>
    <div class="form-row">   
     <div class="form-group row" id="new_proprietor_data">        
         <div class="form-group col-3">
          <label for="dictor__surname">Фамилия:</label>
          <input type="text" needed="true" class="form-control" id="dictor__surname" value="" >
         </div>

         <div class="form-group col-3">
          <label for="dictor__name">Имя:</label>
          <input type="text" needed="true" class="form-control" id="dictor__name" value="" >
         </div>

         <div class="form-group col">
          <label for="dictor_phone">Телефон:</label>
          <input type="text" class="form-control" needed="true" id="dictor_phone" value="" > 
         </div>        

         <div class="form-group col">
          <label for="dictor_mail">E-Mail:</label>
          <input type="text" class="form-control" needed="true" id="dictor_mail" value="" >
         </div>
     </div>
    </div>

<?php 
}

add_meta_box('dictordatas', 'Личные Данные Диктора', 'add_dictor_data', 'sso_dictors_lib', 'normal', 'high');
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
V_A_B
@V_A_B
¯\_(ツ)_/¯
Пример(перепишите под свой тип постов и разметку):
add_action('add_meta_boxes','VAB_short_for_posts_meta_box');
if(!function_exists('VAB_short_for_posts_meta_box')){
	function VAB_short_for_posts_meta_box(){
		$screens=array('post');
		add_meta_box('post_meta',__('Шорткод Поста','VAB'),'post_meta_box_callback',$screens,'side','high');
		}
	}
	if(!function_exists('post_meta_box_callback')){
		function post_meta_box_callback($post,$meta){
			$screens=$meta['args'];
			echo __('Скопируйте Шорткод ниже для размещения этого поста в виджетах, постах и страницах:','VAB'),'<div class="VAB_ShortCode" style="background:#FF0000;color:#FFF;padding:4px;border-radius:4px;">[VAB_post_show id="'.$post->ID.'"]</div>',__('Для вывода миниатюр используйте шорткод ниже:','VAB'),'<div class="VAB_ShortCode" style="background:#FF0000;color:#FFF;padding:4px;border-radius:4px;">[VAB_min_post_show id="'.$post->ID.'"]</div>';
		}
	}


Ваш вариант в спойлере
spoiler

function sso_dictors_lib_post_type() {

        $dictors_labels = array(
            'name'                  => _x( 'База Дикторов', 'sso_dictors_lib' ),
            'singular_name'         => _x( 'База Дикторов', 'sso_dictors_lib' ),
            'menu_name'             => __( 'База Дикторов', 'sso_dictors_lib' ),
            'name_admin_bar'        => __( 'Диктора', 'sso_dictors_lib' ),
            'attributes'            => __( 'Аттрибуты диктора', 'sso_dictors_lib' ),
            'all_items'             => __( 'Все Дикторы', 'sso_dictors_lib' ),
            'add_new_item'          => __( 'Добавить Нового Диктора', 'sso_dictors_lib' ),
            'add_new'               => __( 'Добавить Диктора', 'sso_dictors_lib' ),
            'new_item'              => __( 'Новый Диктор', 'sso_dictors_lib' ),
            'edit_item'             => __( 'Редактировать Диктора', 'sso_dictors_lib' ),
            'update_item'           => __( 'Обновиить Диктора', 'sso_dictors_lib' ),
            'view_item'             => __( 'Просмотеть Диктора', 'sso_dictors_lib' ),
            'view_items'            => __( 'Просмотреть Диктора', 'sso_dictors_lib' ),
            'search_items'          => __( 'Найти Диктора', 'sso_dictors_lib' ),
            'not_found'             => __( 'Дикторов не найдено', 'sso_dictors_lib' ),
            'not_found_in_trash'    => __( 'Здесь Дикторов нет', 'sso_dictors_lib' ),
            'featured_image'        => __( 'Фотография Диктора', 'sso_dictors_lib' ),
            'set_featured_image'    => __( 'Установить фотографию Диктора', 'sso_dictors_lib' ),
            'remove_featured_image' => __( 'Удалить фотографию Диктора', 'sso_dictors_lib' ),
            'use_featured_image'    => __( 'Все фотографии Диктора', 'sso_dictors_lib' ),
            'insert_into_item'      => __( 'Добавить в анкету', 'sso_dictors_lib' ),
            'uploaded_to_this_item' => __( 'Прикрепить к этой анкете', 'sso_dictors_lib' ),
            'items_list'            => __( 'Список Дикторов', 'sso_dictors_lib' ),
            'items_list_navigation' => __( 'Список Дикторов', 'sso_dictors_lib' ),
            'filter_items_list'     => __( 'Фильтр Дикторов', 'sso_dictors_lib' ),
        );

        $rewrite = array(
        'slug'                  => 'sso_dictors_lib',
        'with_front'            => true,
        'pages'                 => true,
        'feeds'                 => true,
        );
        $dictors_args = array(
            'label'                 => __( 'База Дикторов', 'sso_dictors_lib' ),
            'description'           => __( 'База Дикторов и Актеров озвучки.', 'sso_dictors_lib' ),
            'labels'                => $dictors_labels,
            'supports'              => array('revisions', 'thumbnail' ),
            'taxonomies'            => array( 'sso_dictor_type'),
            'hierarchical'          => false,
            'public'                => true,
            'show_ui'               => true,
            'show_in_menu'          => true,
            'menu_position'         => 5,
            'menu_icon'             => 'dashicons-admin-users',
            'show_in_admin_bar'     => true,
            'show_in_nav_menus'     => true,
            'can_export'            => true,
            'has_archive'           => true,
            'exclude_from_search'   => true,
            'publicly_queryable'    => true,
            'query_var'             => 'post_type',
            'rewrite'               => $rewrite,
            'capability_type'       => 'post', 
        );
        register_post_type( 'sso_dictors_lib', $dictors_args );

    }
    add_action( 'init', 'sso_dictors_lib_post_type', 0 );




function add_dictor_data(){ ?>
    <div class="form-row">   
     <div class="form-group row" id="new_proprietor_data">        
         <div class="form-group col-3">
          <label for="dictor__surname">Фамилия:</label>
          <input type="text" needed="true" class="form-control" id="dictor__surname" value="" >
         </div>

         <div class="form-group col-3">
          <label for="dictor__name">Имя:</label>
          <input type="text" needed="true" class="form-control" id="dictor__name" value="" >
         </div>

         <div class="form-group col">
          <label for="dictor_phone">Телефон:</label>
          <input type="text" class="form-control" needed="true" id="dictor_phone" value="" > 
         </div>        

         <div class="form-group col">
          <label for="dictor_mail">E-Mail:</label>
          <input type="text" class="form-control" needed="true" id="dictor_mail" value="" >
         </div>
     </div>
    </div>

<?php 
}
add_action('add_meta_boxes','VAB_short_for_posts_meta_box');
if(!function_exists('VAB_short_for_posts_meta_box')){
  function VAB_short_for_posts_meta_box(){
    $screens=array('sso_dictors_lib');
		add_meta_box('dictordatas', 'Личные Данные Диктора', 'add_dictor_data', $screens, 'normal', 'high');
    }
  }

Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы