最近我在wordpress中创建了一个自定义帖子类型,并添加了名为category和tags的分类法。好吧,新创建的自定义帖子类型显示在我的wordpress的管理面板中。它还允许我添加帖子并从数据库中获取它们并执行默认wordpress帖子提供的所有内容。只有我不能做的事情是每当我从自定义帖子类型查看我新创建的类别时,它会将我重定向到找不到任何内容的页面。
然而,几个月前我在同一个问题上找到了一个解决方案,我在 wordpress.org 论坛中找到了一个解决方案,其中有人建议将flush_rewrite_rules()
放在register_post_type();
语句的正下方。我试图实现它以解决我的问题,但它没有用。
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
让我用例子解释:
在function.php中创建职业名称的自定义帖子
function career() {
$args = array( 'public' => true, 'label' => 'Career', 'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'thumbnail' => true,
'supports' => array( 'title', 'editor','thumbnail', 'excerpt','revisions', 'custom-fields')
);
register_post_type( 'career', $args );
}
add_action('init', 'career');
现在创建该帖子的版权
//create two taxonomies, genres and writers for the post type "book"
function create_career_taxonomies()
{
// Add new taxonomy, make it hierarchical (like categories)
register_taxonomy('career_cat',array('career'), array(
'hierarchical' => true,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'career_cat' ),
));
}
//hook into the init action and call create_book_taxonomies when it fires
add_action( 'init', 'create_career_taxonomies', 0 );
让我们用它的帖子调用动态类别。 确保您的类别至少包含一个帖子。
<?php
$taxonomy = 'career_cat';
$tax_terms = get_terms($taxonomy);
foreach ($tax_terms as $tax_term) { ?>
<ul>
<li>
<?php $query = query_posts("post_type=career&career_cat=".$tax_term->name);
if ( have_posts() ) { while ( have_posts() ) { the_post(); $post = get_post(); ?>
<ul><li class="fl tr">
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li></ul>
<?php }} ?>
</li>
</ul>
<?php } ?>