it-swarm.xyz

Использование пользовательских шаблонов для пользовательских типов публикаций в Genesis Theme Framework?

( Примечание модератора: Первоначальное название было "Как я могу создать и использовать собственный шаблон для пользовательских типов сообщений в структуре темы Genesis?")

Я использую фреймворк Genesis с почти полностью "стандартной" дочерней темой. У меня установлен WP Easy Post Types плагин, и я создал один пользовательский тип записи ("Участники"). У меня есть два настраиваемых поля, которые можно использовать для типа сообщения "участник" (номер телефона и адрес). Я пытаюсь выяснить, как отображать информацию из этих полей в двух местах: example.com/members и example.com/members/bob. Genesis не поддерживает типичный файл single-posttype.php для создания шаблона для пользовательского типа записи, но даже если он это сделал, он не заботится о example.com/members. Любые предложения о том, как получить нужную информацию для отображения?

2
Travis Northcutt

Оказывается, я был не прав, Genesis поддерживает использование метода page_posttype.php для создания собственного шаблона. Это оказалось очень просто. Вот содержимое моего файла page_members.php (находится в папке дочерней темы):

<?php
/*
Template Name: Members
*/

remove_action('genesis_loop', 'genesis_do_loop');
add_action('genesis_loop', 'custom_loop');
function custom_loop() {

    global $paged;
    $args = array('post_type' => 'members');

    genesis_custom_loop( $args );

}

genesis();
1
Travis Northcutt

Может ли кто-нибудь уточнить следующий шаг этого процесса? У меня есть аналогичный пользовательский тип записи в дочерней теме Genesis, и мне нужно изменить цикл на страницах таксономии с несколькими постами, а также на отдельных страницах постов. Куда идет пользовательский код для цикла в этом случае? Спасибо!

0
Adam

Этот шаблон должен находиться в папке дочерней темы, но не в Genesis.

Редактировать:

Вам нужно будет вручную создать файл single- $ posttype.php и добавить его в дочернюю тему, как отмечено выше. Пожалуйста, взгляните на Иерархия шаблонов WordPress . Само собой разумеется, что все, что вы добавляете в дочернюю тему, переопределит файлы родительской темы.

0
Marna

Посмотрите, как Мэтт Уибе делает это в своем плагине "Smarter Custom Post Types":

http://somadesign.ca/projects/smarter-custom-post-types/

Соответствующая функция здесь:

function my_custom_template_include( $template ) {
    if ( get_query_var('post_type') == 'members' ) {

        if ( is_single() ) {
            if ( $single = locate_template( array( 'members/single.php') ) )
                return $single;
        }
        else { // loop
            return locate_template( array(
                'members/index.php',
                'members.php', 
                'index.php' 
            ));
        }

    }
    return $template;
}

add_filter( 'template_include', 'my_custom_template_include' );
0
John P Bloch