jeff
  • 0
Учитель

Как создать фильтры для пользовательских типов сообщений?

  • 0

Извините, вопрос может не иметь смысла. В основном у меня есть настраиваемый тип сообщения под названием «Проекты», и мне нужно создать способ фильтрации атрибутов проекта, таких как «имя», «тип» и т. д.

Например, если у меня есть тип проекта под названием «самолет» и другой тип проекта под названием «самолет». Я хотел бы иметь возможность искать все проекты с именем самолета и отображать их в цикле.

Я изучил таксономии, но не знаю, как их эффективно использовать.

Спасибо

Share
  1. Вот как я это сделал. Если у вас есть собственный тип сообщения как «проекты» и ваша категория как «самолет».

    Если вы не планируете использовать цикл предварительной сборки, создайте еще один цикл с именем loop-projects.php. Однако в этом нет необходимости.

                   <?php
                    $args = array(
                        'numberposts'    => 5,
                        'post_type'      => 'projects',
                        'category_name'  => 'airplane');
                    query_posts( $args );
                    get_template_part( 'loop', 'projects' );
                    wp_reset_query();
                  ?>
    
    • 0
  2. Если я правильно понимаю ваше описание, структура выглядит следующим образом:

    • custom post type Проект ;
    • Тип связан taxonomy с Project CPT ;
    • Самолет находится term в типе taxonomy .

    В текущей версии WP вы можете запросить это как (но это будет изменено в WP 3.1):

    query_posts( array( 'post_type' => 'project','type' => 'airplane' ) );
    

    См. Параметры таксономии в Кодексе.

    • 0
  3. Просто так:

    // default filter:  
    apply_filters( 'your_filter_name', $val_to_filter );  
    // or, make it more specific:   
    apply_filters( 'your_filter_name_'.$val_to_filter, $val_to_filter );
    

    Вы можете добавить это где-нибудь перед вызовом register_post_type, чтобы это выглядело так:

    // assuming, you got an $args array to make it easy to handle:  
    $args['name'] = apply_filters('your_name_filter', $args['name'] );  
    $args['name'] = apply_filters('your_name_filter_'.$args['name'], $args['name']);  
    $args['type'] = apply_filters('your_type_filter', $args['type']);  
    $args['type'] = apply_filters('your_type_filter_'.$args['type'], $args['type']);    
    $name = $args['name'];    
    unset($args['name']);  
    register_post_type( $name, $args );
    
    • 0

Оставить ответ

You must login to add an answer.