【问题标题】:Custom taxonomy template is not selected by default默认不选择自定义分类模板
【发布时间】:2015-08-19 07:23:03
【问题描述】:

我已经注册了一个自定义帖子类型 faq 和一个名为 cat_faqfaq 分类。我创建了一个名为taxonomy-cat_faq.php 的模板,但默认没有选中它。它始终显示 404 页面。我不明白为什么会这样?我读出了Template Hierarchy 并按如下方式工作,但未能找出错误。我附上了下面的代码

add_action('init', 'register_faq');
function register_faq(){
    $post_type = 'faq';
    $label = array(
        'name'          => _x('FAQ', 'FAQ', 'faq'),
        'singular_name' => _x('FAQ', 'FAQ', 'faq'),
        'menu_name'     => _x('FAQ', 'admin menu', 'faq')
        );
    $args = array(
        'labels'        => $label,
        'public'    => true,
        'rewrite'   => array('slug' => 'faq'),
        'capability'    => 'post',
        'supports'      => array('title', 'editor', 'thumbnail'),
    );
    register_post_type($post_type, $args);
}

// create taxonomies for the post type "faq"
add_action( 'init', 'create_faq_taxonomies', 0 );
function create_faq_taxonomies() {
    $labels = array(
        'name'              => _x( 'FAQ', 'taxonomy general name' ),
        'singular_name'     => _x( 'FAQ', 'taxonomy singular name' ),
        'search_items'      => __( 'Search FAQ' ),
        'edit_item'         => __( 'Edit FAQ' ),
        'update_item'       => __( 'Update FAQ' ),
        'add_new_item'      => __( 'Add New FAQ' ),
        'new_item_name'     => __( 'New FAQ' ),
        'menu_name'         => __( 'Category FAQ' ),
    );

    $args = array(
        'hierarchical'      => true,
        'labels'            => $labels,
        'show_ui'           => true,
        'show_admin_column' => true,
        'query_var'         => true,
        'rewrite'           => array( 'slug' => 'cat_faq' ),
    );

    register_taxonomy( 'cat_faq', array( 'faq' ), $args );
}   

【问题讨论】:

  • 尝试刷新重写规则

标签: php wordpress


【解决方案1】:

最好以这种方式制作您的自定义帖子类型。 flush_rewrite_rules() 将治愈 404。见The Codex 此示例用于在激活插件时创建新的自定义帖子类型。

add_action( 'init', 'my_cpt_init' );
function my_cpt_init() {
    register_post_type( ... );
}

function my_rewrite_flush() {
    // First, we "add" the custom post type via the above written function.
    // Note: "add" is written with quotes, as CPTs don't get added to the DB,
    // They are only referenced in the post_type column with a post entry, 
    // when you add a post of this CPT.
    my_cpt_init();

    // ATTENTION: This is *only* done during plugin activation hook in this example!
    // You should *NEVER EVER* do this on every page load!!
    flush_rewrite_rules();
}
register_activation_hook( __FILE__, 'my_rewrite_flush' );

【讨论】:

  • 我已经通过重置永久链接找到了解决方案。你的回答也是正确的。谢谢兄弟。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-27
  • 2014-01-12
  • 1970-01-01
  • 2019-08-01
相关资源
最近更新 更多