开发者

How to list all items in custom taxonomy with a permalink in WordPress

开发者 https://www.devze.com 2023-02-03 20:58 出处:网络
Not sure how to word this. I\'ve set up a custom post type in WordPress called Products. I also have two taxonomies linked to Products called Brands and Categories. When you create a product you can s

Not sure how to word this. I've set up a custom post type in WordPress called Products. I also have two taxonomies linked to Products called Brands and Categories. When you create a product you can set to which Brand and Category the product belongs. It works perfectly when using the type as permalink to list everything within a type

http://sitename.com/products

but I can't seem to get the taxonomies working in the same way, ie. list all the items within a taxonomy (like an archive, I suppose):

http://sitename.com/brands

http://sitename.com/categories

Is this possible, and if so, what could I possibly be doing wrong? I would try and set up some rewrite rules in functions.php, but I don't know what the query string looks like if you want to list it开发者_运维百科ems in a taxonomy, and if this is even possible. If it helps, I'm using the plugins More Types and Ultimate Taxonomy Manager to create the types and taxonomies.


There's not really a way to do this yet. WP is moving this direction and with 3.1 is setting up a top-level for custom post types, but still nothing for taxonomies. It's klunky but I added a page called page-products.php and then put my list in there.

$toplevelterms = get_terms($taxonomyname, 'hide_empty=0&hierarchical=0&parent=0');
$termchildren = array();
foreach ($toplevelterms as $toplevelterm) {
    $termchildren[] = $toplevelterm->term_id;
}
foreach ($termchildren as $child) {
    $term = get_term_by('id', $child, $taxonomyname);
    $write .= '<li>';
    $write .= '<a href="' . get_term_link($term->name, $taxonomyname) . '">' . $term->name . '</a>';
    if ($term->description) $write .= apply_filters('the_content', $term->description);
    $write .= '</li>';
}
if ($write) echo '<ul class="clearfix">' . $write . '</ul>';


FYI the correct link for that plugin (I'm the author) is now http://www.get10up.com/plugins/simple-custom-post-type-archives-wordpress/

And it should really be done using the built in archives feature in 3.1 - the plugin was built for 3.0.


There is a Trac ticket for this, but it's not clear what would the most obvious thing to show on this page:

  1. a list of all posts attached to any term of that taxonomy, or
  2. a list of all terms of this taxonomy?

A similar question on the WordPress Stack Exchange asked for option 2, and your question can be interpreted both ways: when you say all items within a taxonomy, do you mean all terms of this taxonomy, or all posts that are linked to a term of this taxonomy?

Currently the main query (the Loop) that you can control with the query vars will always return posts, not terms. As said in the ticket, option 2 would require the Loop to return terms for this query, possibly causing compatibility issues for themes that don't have a template for it. Until that is implemented, David's answer is probably the way to go.


Thanks for the answers! I've found a plugin that does exactly what I wanted - after manually coding everything :/

http://www.thinkoomph.com/plugins-modules/wordpress-custom-post-type-archives/


Use the WP htaccess Control Plugin http://wordpress.org/extend/plugins/wp-htaccess-control/

In the options , you can remove the base of taxonomies you select. Worked for me, hope It works for you as well :)

0

精彩评论

暂无评论...
验证码 换一张
取 消