Wordpress自定义帖子类型未显示在类别模板中

时间:2014-07-10 17:47:45

标签: php wordpress templates categories custom-post-type

我在尝试在类别模板中显示自定义帖子类型列表时遇到了一些奇怪的问题。我有一个category- spettacoli .php模板,它应该列出给定类别的所有 spettacoli 自定义帖子,但根本没有显示任何结果。

这甚至更奇怪,因为我有另一个名为 corsi 的自定义帖子类型,它完美地工作(类别模板等),尽管两个自定义帖子类型类别模板几乎完全相同。

以下是代码:

functions.php(自定义帖子类型和类别创建部分)

add_action( 'init', 'create_post_type' );

//add custom post types
function create_post_type() {
    register_post_type( 'corsi',
        array(
            'labels' => array(
                'name' => __( 'Corsi' ),
                'singular_name' => __( 'Corso' )
            ),
        'public' => true,
        'has_archive' => true,
        'menu_position' => 20,
        'taxonomies' => array('category'), 
        'supports' => array('title', 'editor', 'thumbnail'),
        )
    );
    register_post_type( 'spettacoli',
        array(
            'labels' => array(
                'name' => __( 'Spettacoli' ),
                'singular_name' => __( 'Spettacolo' )
            ),
        'public' => true,
        'has_archive' => true,
        'menu_position' => 20,
        'taxonomies' => array('category'), 
        'supports' => array('title', 'editor', 'thumbnail'),
        )
    );
    flush_rewrite_rules();
}

// add custom post to category filter
function namespace_add_custom_types_spettacoli( $query ) {
    if( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) ) {
        $query->set( 'post_type', array(
            'post', 'spettacoli'
        ));
        return $query;
    }
}
add_filter( 'pre_get_posts', 'namespace_add_custom_types_spettacoli' );

function namespace_add_custom_types_corsi( $query ) {
    if( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) ) {
        $query->set( 'post_type', array(
            'post', 'corsi'
        ));
        return $query;
    }
}
add_filter( 'pre_get_posts', 'namespace_add_custom_types_corsi' );

category-spettacoli.php(不工作)

<?php 
/*
 *  Spettacoli base archive template
 */
get_header(); ?>

<?php
    $cat_name = get_category(get_query_var('cat'))->name;
?>

<h1><?php echo $cat_name; ?></h1>

<?php
   if ( have_posts() ) {
       while ( have_posts() ) {
            the_post(); 
            the_title();
            the_content();
       }
   }
?>

<?php get_footer(); ?>

category-corsi.php(工作)

<?php 
/*
 *  Corsi base archive template
 */
get_header(); ?>

<?php
    $cat_name = get_category(get_query_var('cat'))->name;
?>

<h1><?php echo $cat_name; ?></h1>

<?php
    if ( have_posts() ) {
        while ( have_posts() ) {
            the_post(); 
            the_title();
            the_content();
        }
    }
?>

<?php get_footer(); ?>

已正确创建类别并正确分配给所有自定义帖子类型,因此我猜测这不是问题。 也没有永久链接刷新解决任何问题..

任何帮助将不胜感激,谢谢!

0 个答案:

没有答案