it-swarm-eu.dev

Jak vytvořit vlastní šablonu pro vlastní taxonomii?

Dále jsem použil (a) následující postup pro vytvoření vlastního typu příspěvku a vlastní taxonomie.

V sekci produktů jsem vytvořil kategorie "monitory" a "spotřební materiál".

Pak jsem vytvořil šablonu taxonomie-monitors.php, je to správně pojmenované pro kategorii monitorů? Také co je to url, kterou potřebuji navštívit, abych viděl pouze kategorii monitorů pomocí této šablony?

add_action( 'init', 'create_post_type' );
function create_post_type() {
    register_post_type( 'products',
        array(
            'labels' => array(
                'name' => __( 'Products' ),
                'singular_name' => __( 'Product' )
            ),
        'capability_type' => 'post',
        'supports' => array('title','editor','comments'),   
        'public' => true,
        'has_archive' => true,
        'rewrite' => array( 'slug' => 'products' ),
        )
    );
}

function news_init() {
    // create a new taxonomy
    register_taxonomy(
        'products',
        'products',
        array(
            'label' => __( 'Product Categories' ),
            'sort' => true,
            'hierarchical' => true,
            'args' => array( 'orderby' => 'term_order' ),
            'rewrite' => array( 'slug' => 'products-category' )
        )
    );      
}
add_action( 'init', 'news_init' );

AKTUALIZACE enter image description here

5
Rob

Šablony

Viz šablona Hiearchy pro podrobnější rozebrat, jak WordPress vybere šablonu.

Pro termín taxonomieslug ('sleduje' váš příklad) v taxonomii taxonomy (např. 'Produkty') WordPress bude try používat následující šablony (v tomto pořadí)

taxonomy-{taxonomy}-{slug}.php
taxonomy-{taxonomy}.php
taxonomy.php
archive.php
index.php

Pro stránku s názvem taxonomie „monitorů“ použije WordPress

taxonomy-products-monitors.php

pokud existuje. Pokud tomu tak není, pak se na tuto taxonomii vrátí

taxonomy-products.php

a tak dále.

Permalinks

Následující adresa URL by měla ukazovat na stránku produktů „monitorů“:

 www.example.com?products=monitors

Také jste zadali přepsání adresy URL, takže za předpokladu, že pravidla pro přepsání byla vyprázdněna a že se nejedná o střet, mělo by také fungovat následující

 www.example.com/products-category/monitors
12
Stephen Harris

Odkaz: https://stackoverflow.com/questions/33888951/wordpress-custom-post-type-taxonomy-template

 <?php 
get_header();


do_action('genesis_before_content_sidebar_wrap'); ?>

<div id="content-sidebar-wrap">
<?php do_action('genesis_before_content'); ?>

    <div class="wrap">
        <main class="content"> 
            <?php
                $case_study_cat_slug = get_queried_object()->slug;
                $case_study_cat_name = get_queried_object()->name;
            ?>
                <h2><?php echo $case_study_cat_name; ?></h2>
            <?php
                $al_tax_post_args = array(
                    'post_type' => 'success_stories', // Your Post type Name that You Registered
                    'posts_per_page' => 999,
                    'order' => 'ASC',
                    'tax_query' => array(
                        array(
                            'taxonomy' => 'success_stories_category',
                            'field' => 'slug',
                            'terms' => $case_study_cat_slug
                        )
                    )
                );
                $al_tax_post_qry = new WP_Query($al_tax_post_args);

                if($al_tax_post_qry->have_posts()) :
                   while($al_tax_post_qry->have_posts()) :
                        $al_tax_post_qry->the_post();
                        echo '<div class="post-excerpt">'; 
            ?>
                        <h2 class="entry-title" itemprop="headline"><a href="<?php the_permalink(); ?>" class="entry-title-link"><?php  the_title(); ?></a></h2>
                        <div class="entry-content"> <?php echo excerpt(35);  ?> </div>

                        </div>
            <?php
                    endwhile;
                    endif;

            ?>
        </main>         

    </div>  
</div>          

<?php

do_action('genesis_after_content_sidebar_wrap');
get_footer();
2
Rathna

K tomu přidejte následující kód do function.php (umístěného ve složce motivu):

add_action( 'init', 'create_cw_hierarchical_taxonomy', 0 );
//create a custom taxonomy name
function create_cw_hierarchical_taxonomy() {
$labels = array(
'name' => _x( 'Topics', 'taxonomy general name' ),
'singular_name' => _x( 'Topic', 'taxonomy singular name' ),
'search_items' => __( 'Search Topics' ),
'all_items' => __( 'All Topics' ),
'parent_item' => __( 'Parent Topic' ),
'parent_item_colon' => __( 'Parent Topic:' ),
'edit_item' => __( 'Edit Topic' ),
'update_item' => __( 'Update Topic' ),
'add_new_item' => __( 'Add New Topic' ),
'new_item_name' => __( 'New Topic Name' ),
'menu_name' => __( 'Topics' ),
);
// taxonomy register
register_taxonomy('topics',array('post'), array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'topic' ),
));
}

Našel jsem to tady a tady jsem našel, jak vytvořit Non-hierarchické Taxonomy https://www.wpblog.com/create-custom-taxonomies-in-wordpress/

0
Owais Alam