• Создал новый тип постов и таксономии к нему. Создаю новый тип поста, присваиваю ему рубрику. Хочу выбрать все посты из этой рубрики а мне выдает что там ничего нет, хотя рубрика присвоена записи.

    Думал что я что то не так сделал… Поставил плагин More Tupe, и для нового типа постов присвоил метки и рубрики от стандартных записей. Делаю выборку из рубрики, стандартные записи есть, нового типа поста нет.

    Что я делаю не правильно?

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Версия WP 3.0.5
    Плагинов нет, или один.
    Шаблон стандартный.

    Код создания нового типа постов через функции шаблона:

    <?php
    // Новый тип записей + рубрки и метки
    function post_type_products() {
    register_post_type(
    'products',
    array(
    	'labels' => array(
    		'name' => __( 'Товары' ),
    		'edit_item' => __('Редактировать товары'),
    		'add_new_item' => __('Добавить товар'),
    		'view_item' => __('Просморт товаров'),
    		'singular_name' => __( 'Каталог товаров' )
    		),
    	'singular_label' => __('Товар'),
    	'rewrite' => array("slug" => "products"),
    
    '_builtin' => false,
    'public' => true,
    'capability_type' => 'post',
    'hierarchical' => false,
    'rewrite' => false,
    'query_var' => false,
    'show_ui' => true,
    
    'supports' => array(
    		'title',
    		'editor',
    		'author',
    		'custom-fields',
            'thumbnail',
            'excerpt'),
    )
    );
    
    register_taxonomy( 'product', 'products',
    array(
    'hierarchical' => true,
    'label' => __('Рубрики товаров') ) );
    
    register_taxonomy( 'tagproducts', 'products',
    array(
    'hierarchical' => false,
    'label' => __('Метки твоаров'),
    'query_var' => 'tagproducts',
    'rewrite' => array('slug' => 'tagproducts' )
    )
    );
    }
    add_action('init', 'post_type_products');
    ?>

    Нужно добавить в шаблоне loop.php

    <?php
    //	Какие записы выбрать для отображения?
    $args['post_type'] = array('post', 'products');
    query_posts($args);
    ?>

    перед или в самом наале файла
    <?php if(!have_posts()) : ?>

    Тогда лучше вот так:

    global $query_string;
    parse_str( $query_string, $args );
    $args[post_type] = array( 'post', 'products' );
    query_posts( $args );

    При таком раскладе не глючит навигация. Но тогда я не понимаю почему в single-(post-tupe).php не надо делать такую выборку, а все работает стандартно.

    Почитал кодекс и расстроился:

    Archive or loop template

    As of version 3.1 the theme system supports archive for post types, in the form of the archive-type template. In the same way that posts are shown on their own archive with archive.php, custom post types will use archive-{posttype}.php if it’s available. So for the above example, you could create a archive-acme_product.php file and the product posts would be shown using that template.

    Note: The ability to show a listing of your custom post type is missing from version 3.0 and is coming in version 3.1 (trac ticket) In the meantime plugins are available to solve this problem.

    Плагины для создания шаблона архива произвольного типа записи работают только по ЧПУ. У меня с ним возникли проблемы, когда его включаешь перестает работать single-(post-tupe).php а кидает на index.php

    В общем сыро все еще. Попробую RC4, может уже что то сделано…

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Попробую RC4, может уже что то сделано…

    Было сделано ещё в Beta 1 🙂

    coming in version 3.1 (trac ticket)

    Описание на русском: «Страницы списков для произвольных типов записей».

    В RC4 archive-{posttype}.php не работает.
    Вышел из положения временно с помощью category-{slug}.php или category-{id}.php

    Ура товарищи! Шаблон taxonomy.php работает, не знаю как насчет 3.0.5 но в RC4 точно.

    Люди, кто нить проверял archive-{posttype}.php в версии 3.1?

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