it-swarm.dev

Verwenden von benutzerdefinierten Vorlagen für benutzerdefinierte Beitragstypen für das Genesis-Themenframework?

( Anmerkung des Moderators: Der ursprüngliche Titel lautete "Wie kann ich eine benutzerdefinierte Vorlage für benutzerdefinierte Beitragstypen im Genesis-Themen-Framework erstellen und verwenden?")

Ich verwende das Genesis-Theme-Framework, mit einem fast vollständigen "stock" Child-Theme. Ich habe das WP Easy Post Types Plugin installiert und einen benutzerdefinierten Beitragstyp ("Mitglieder") erstellt. Ich habe zwei benutzerdefinierte Felder für den Beitragstyp "Mitglied" (Telefonnummer und Adresse) erstellt. Ich versuche herauszufinden, wie die Informationen aus diesen Feldern an zwei Stellen angezeigt werden: example.com/members und example.com/members/bob. Genesis unterstützt nicht die typische single-posttype.php-Datei, um eine Vorlage für den benutzerdefinierten Beitragstyp zu erstellen, aber selbst wenn dies der Fall ist, kümmert sich das nicht um example.com/members. Irgendwelche Vorschläge, wie Sie die gewünschten Informationen anzeigen lassen können?

2

Es stellte sich heraus, dass ich falsch lag. Genesis unterstützt die page_posttype.php-Methode zum Erstellen einer benutzerdefinierten Vorlage. Es stellte sich als sehr einfach heraus. Hier ist der Inhalt meiner page_members.php-Datei (im Ordner für untergeordnete Themen):

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

Könnte jemand den nächsten Schritt dieses Prozesses klären? Ich habe einen ähnlichen benutzerdefinierten Beitragstyp in einem untergeordneten Genesis-Thema und muss die Schleife auf Taxonomieseiten mit mehreren Beiträgen sowie auf einzelnen benutzerdefinierten Beitragsseiten ändern. Wohin geht in diesem Fall der benutzerdefinierte Code für die Schleife? Vielen Dank!

0
Adam

Diese Vorlage muss sich jedoch im untergeordneten Themenordner befinden, nicht in Genesis.

Bearbeiten:

Sie müssen das single- $ posttype.php manuell erstellen und es wie oben beschrieben zum untergeordneten Thema hinzufügen. Bitte werfen Sie einen Blick auf WordPress Template Hierarchy . Es versteht sich von selbst, dass alles, was Sie einem untergeordneten Thema hinzufügen, die übergeordneten Themendateien überschreibt.

0
Marna

Schauen Sie sich an, wie es Matt Wiebe in seinem Plugin "Smarter Custom Post Types" macht:

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

Die relevante Funktion ist hier:

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