@denism300

Почему не добавляется новый тип записей?

Пишу небольшой плагин, регистрирую новый тип записей и таксу к нему, однако, после активации в админке нового типа записей нет.
В чем ошибка?
class EC24_Simple_Youtube_Video_Gallery
	{
		public $data = array();

		function __construct()
		{
			DEFINE('EC24_SIMPLE_YOUTUBE_VIDEO_GALLERY', true);

			$this->plugin_name = plugin_basename(__FILE__);
			$this->plugin_url = trailingslashit(WP_PLUGIN_URL . '/' . dirname(plugin_basename(__FILE__)));

			// Функция которая исполняется при активации плагина
			register_activation_hook($this->plugin_name, array(&$this, 'sytvg_activate'));

		}

		public function sytvg_activate()
		{
			add_action('init', array(&$this, 'sytvg_register_post_type'));
			add_action('init', array(&$this, 'sytvg_register_taxonomy'));
		}

		function sytvg_register_post_type()
		{
			register_post_type(
				'sytvg_videos',
				array(
					'labels' => array(
						'name'               => 'YouTube видео',
						'singular_name'      => 'YouTube видео',
						'add_new'            => 'Добавить YouTube видео',
						'add_new_item'       => 'Добавление YouTube видео',
						'edit_item'          => 'Редактирование YouTube видео',
						'new_item'           => 'Новое YouTube видео',
						'view_item'          => 'Смотреть YouTube видео',
						'search_items'       => 'Искать YouTube видео',
						'parent_item_colon'  => '',
						'menu_name'          => 'YouTube видео',
					),
					'public' => false,
					'show_ui' => true,
					'has_archive' => false,
					'menu_position' => 10,
					'menu_icon' => 'dashicons-video-alt3',
					'supports' => array(
						'title',
						'excerpt',
						'thumbnail',
						'custom-fields',
					),
					'taxonomies' => array('sytvg-video-category'),
				)
			);
		}

		function sytvg_register_taxonomy()
		{
			register_taxonomy(
				'sytvg-video-category',
				'sytvg_videos',
				array(
					'labels' => array(
						'name' => 'Видеокатегории',
						'singular_name' => 'Видеокатегория',
						'search_items' => 'Поиск видеокатегорий',
						'all_items' => 'Все Видеокатегории',
						'parent_item' => 'Родительская видеокатегория',
						'parent_item_colon' => 'Родительская видеокатегория:',
						'edit_item' => 'Редактировать видеокатегорию',
						'update_item' => 'Обновить видеокатегорию',
						'add_new_item' => 'Добавить новую видеокатегорию',
						'new_item_name' => 'Имя новой видеокатегории',
						'menu_name' => 'Видеокатегории',
					),
					'hierarchical' => true,
					'query_var' => 'true',
					'rewrite' => 'true',
					'show_admin_column' => 'true',
				)
			);
		}
	}

global $sytvg;
$sytvg = new EC24_Simple_Youtube_Video_Gallery();
  • Вопрос задан
  • 27 просмотров
Решения вопроса 1
dimovich85
@dimovich85
https://u-academy.net/
Регистрация типов записи у Вас подвешена по сути на хук активации плагина, а этот код срабатывает один раз - когда плагин активировали, чтоб тип записи был всегда, надо чтоб этот код работал при каждой загрузке ядра и плагинов.
Надо вынести код где add_action('init'...) из класса, или вызывать эти функции внутри конструктора.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы