it-swarm.com.de

Benutzerdefinierte Vorlage für das Archiv einer benutzerdefinierten Taxonomie

Ich habe eine benutzerdefinierte Taxonomie mit dem Namen activities erstellt, die Elemente mit dem Namen local , member und national enthält:

<?php
function add_custom_taxonomies() {
    register_taxonomy('Activities', 'post', array(
        'has_archive' => true,
        'hierarchical' => true,
        'labels' => array(
            // labels goes here
        ),
        'rewrite' => array(
            'slug' => 'activities',
            'with_front' => true, 
            'hierarchical' => true
        ),
    ));
}
add_action( 'init', 'add_custom_taxonomies, 0 );

Und ich habe für jedes Taxonomieelement eine Seite erstellt, die aus taxonomy-activities-local.php, taxonomy-activities-member.php und taxonomy-activities-national.php besteht.

Der Zugriff auf mydomain.com/activities/local/ ist in Ordnung. Der Zugriff auf mydomain.com/activities/ selbst leitet jedoch zu einer 404-Seite weiter. Ich verstehe voll und ganz, dass dies normalerweise nicht funktionieren sollte. Es ist wie beim Zugriff auf mydomain.com/tag/, der auch zu einer 404-Seite umleitet.

Gibt es eine Möglichkeit, eine von mir erstellte Vorlage PHP zu verwenden? Wenn Sie also auf mydomain.com/activities/ zugreifen, wird diese PHP -Datei anstelle der 404-Seite verwendet, ohne dass Plugins verwendet werden.

2
Nicky Logan

Ich denke, der beste Weg, dies zu tun, besteht darin, eine benutzerdefinierte Vorlagenseite zu erstellen und die Liste der Begriffe (oder was auch immer Sie benötigen) für diese Vorlage abzurufen.

template-activities-taxonomy.php

<?php
/* Template Name: Activities Taxonomy */

get_header(); ?>

<?
$terms = get_terms( 'activities' );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ): ?>
    <ul>
    <?php foreach ( $terms as $term ): ?>
        <li><a href="<?php echo esc_url( get_term_link( $term ) ); ?>"><?php echo $term->name; ?></a></li>    
    <?php endforeach; ?>
    </ul>
<?php endif; ?>

<?php get_footer(); ?>

Und dann erstellen Sie einfach eine Seite mit der gewünschten URL (/ activities), die diese Vorlage verwendet.

1
dbeja