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
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.
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
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();
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/