Поддержка Проблемы и решения Новый тип страниц

  • Здравствуйте.
    Требуется создать новый тип страниц без использования плагинов.
    Каталог товаров.
    .ru/catalog/ — все товары и фильтр (поиск) по товарам
    .ru/catalog/чпу — отдельный товар
    Нужна так же пагинация.

    Правильно ли я понимаю, что нужно зарегистрировать новый тип страниц через register_post_type а затем добавить дополнительные поля (их будет порядка 15, в т.ч. фото)?

    Я недавно начал разбираться с WP, подскажите пожалуйста алгоритм работы для реализации задачи. Спасибо!

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Правильно ли я понимаю, что нужно зарегистрировать новый тип страниц через register_post_type а затем добавить дополнительные поля (их будет порядка 15, в т.ч. фото)?

    Можно и так (ИМХО лучший способ)

    Вот тут есть относительно доступные мануалы на русском. Надеюсь, помогут.

    Спасибо за ответ, а что касается поиска?

    SeVlad, подскажите пожалуйста. Разбираюсь с мануалом по ссылке, сделал так:

    add_action( 'init', 'create_catalog_post_type' );
    
    function create_catalog_post_type()
    {
    	register_post_type('catalog',
    		array(
    			'label' => 'Каталог Объектов',
    			'public' => TRUE,
    			'rewrite' => array( 'slug' => 'catalog', 'with_front' => true ), //вместе с параметром 'has_archive' необходим для архива постов
    			'has_archive' => true, //вместе с параметром 'rewrite' необходим для архива постов
    			'labels'=> array(
    				'name'=>'Объект', //Переопределяет название в меню, а также, если есть таксономия, то отображается на странице таксономии как заголовок к графе с количеством постов в терме таксономии
    				'singular_name'=>'Объект', //Название одного экземпляра этого поста
    				'add_new'=>'Добавить объект', //Название меню для добавления нового поста данного типа
    				'add_new_item'=>'Страница добавления нового объекта', //Заголовок страницы, на которой добавляются новые посты
    				'edit_item'=>'Редактировать объект', //Заголовок страницы, на которой посты редактируются
    				'new_item'=>'Новый объект', //Не найдено
    				'view_item'=>'Смотреть объект', //При редактировании записи вверху есть кнопка, позволяющая посмотреть её на сайте. Это текст кнопки.
    				'search_items'=>'Искать объект', //Текст кнопки на странице просмотра записей, расположенной вверху справа. Обычно там текст "Поиск записей"
    				'not_found'=>'Объектов не найдено', //Текст на странице с постами, когда не найдено ни одного поста
    				'not_found_in_trash'=>'Объектов в корзине не найдено' //Текст в корзине в случае, если не найдено ни одного поста
    				),
    				'supports'=>array('title', 'editor', 'author', 'thumbnail', 'custom-fields', 'page-attributes', 'post-formats')
    		)
    	);
    	flush_rewrite_rules(false); //Специальная функция, которая сделает так, чтобы изменения вступили в силу сразу же (не нужно было обновлять настройки с постоянными ссылками)
    }
    
    add_filter('manage_catalog_posts_columns', 'set_edit_catalog_columns');
    function set_edit_catalog_columns($columns)
    {
    	$columns['color']='Color';
    	$columns['size']='Size';
    	return $columns;
    }
    
    add_action( 'manage_catalog_posts_custom_column', 'custom_columns_catalog');
    function custom_columns_catalog($column)
    {
    	global $post;
    	switch($column)
    	{
    		case 'color':
    		echo $post->ID; //Что-то выводится в этой колонке для каждого поста
    		break;
    		case 'size':
    		echo $post->post_title; //Что-то выводится в этой колонке для каждого поста
    		break;
    	}
    }

    т.е. все по ману. Как я понял manage_catalog_posts_columns должно было добавить дополнительные колонки — поля для ввода информации — цвет и и размер, но ничего не изменилось. Я не прав ?

    up. проблема не решена

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «Новый тип страниц» закрыта для новых ответов.