it-swarm-es.com

¿Usando plantillas personalizadas para tipos de publicaciones personalizadas para el marco del tema Genesis?

(Nota del moderador:El título original era "¿Cómo puedo crear, crear y usar una plantilla personalizada para tipos de mensajes personalizados en el marco del tema Genesis?")

Estoy usando el marco del tema Genesis, con un tema infantil casi completamente 'stock'. Tengo el WP Easy Post Types plugin instalado, y he creado un tipo de publicación personalizado ("Miembros"). Tengo dos campos personalizados creados para usar para el tipo de publicación "miembro" (número de teléfono y dirección). Estoy tratando de averiguar cómo mostrar la información de esos campos en dos lugares: example.com/members y example.com/members/bob. Genesis no admite el archivo single-posttype.php típico para crear una plantilla para el tipo de publicación personalizada, pero incluso si lo hiciera, eso no se ocupa de example.com/members. ¿Alguna sugerencia sobre cómo obtener la información deseada para mostrar?

2
Travis Northcutt

Resulta que estaba equivocado, Genesis admite el uso del método page_posttype.php para crear una plantilla personalizada. Resultó ser muy simple. Aquí está el contenido de mi archivo page_members.php (ubicado en la carpeta de temas secundarios):

<?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

¿Alguien podría aclarar el siguiente paso de este proceso? Tengo un tipo de publicación personalizada similar en un tema secundario de Genesis y necesito cambiar el bucle en las páginas de taxonomía de publicaciones múltiples, así como en las páginas de publicaciones personalizadas únicas. ¿A dónde va el código personalizado para el bucle en este caso? ¡Gracias!

0
Adam

Sin embargo, esta plantilla debe ir a la carpeta de temas secundarios, no a Génesis.

Edit:

Necesitará crear manualmente el $ posttype.php y agregarlo al tema secundario como se indicó anteriormente. Por favor, eche un vistazo a Jerarquía de plantillas de WordPress . No hace falta decir que cualquier cosa que agregue a un tema secundario anulará los archivos del tema principal.

0
Marna

Eche un vistazo a cómo lo hace Matt Wiebe en su plugin "Smarter Custom Post Types":

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

La función relevante está aquí:

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