0

我有一个自定义帖子类型的博客,如:

register_post_type( 'type',
    array(
        'labels' => array(
            'name' => __( 'Types' ),
            'singular_name' => __( 'Type' )
        ),
        'public' => true,
        'has_archive' => true,
    )
);

显然,这包含在一个由 init 操作调用的函数中。问题是这个帖子类型充满了帖子,超过 1K,但在存档页面 (domain.com/type) 上没有显示任何内容。我试图验证查询,但查询显示为 NULL。有人有可靠的解决方案吗?

PS - 这就是我讨厌 wordpress 的原因。永远不能正常工作。

标签:wordpress-broken-again, wordpress-sucks, wordpress-i-hate-you

全文摘录:

function cp_init_types() {
    register_post_type( 'nursing-home',
        array(
            'labels' => array(
                'name' => __( 'Nursing Homes' ),
                'singular_name' => __( 'Nursing Home' )
            ),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array( 'slug' => 'nursing-homes', 'with_front' => true ),
            /*'supports' => array( 'title', 'editor', 'custom-fields', 'thumbnail' ),
            'publicly_queryable' => true,
            'exclude_from_search'=> false,
            'taxonomies' => array('category','post_tag'),*/
        )
    );

    flush_rewrite_rules( false );
}

function add_my_post_types_to_query( $query ) {
    if(is_category() || is_tag() || is_home() && empty( $query->query_vars['suppress_filters'] ) ) {
        $post_type = get_query_var('post_type');
        if($post_type) {
            $post_type = $post_type;
        }
        else {
            $post_type = array('post','nursing-home','nav_menu_item');
        }
        $query->set('post_type', $post_type);
        return $query;
    }

    return $query;
} 

// Show posts of 'post', 'page' and 'movie' post types on home page
add_action( 'pre_get_posts', 'add_my_post_types_to_query' );
add_action("init", "cp_init_types");
4

2 回答 2

0

您是否从手册中注意到这一点:

以同样的方式,可以分别使用 single.php 和 archive.php 模板文件显示单个帖子及其档案,

自定义帖子类型的单个帖子将使用 single-{post_type}.php 并且它们的档案将使用 archive-{post_type}.php 其中 {post_type} 是 register_post_type() 函数的 $post_type 参数。

http://codex.wordpress.org/Post_Types

于 2013-08-09T04:15:47.463 回答
0

您明确表示您只想要重写规则的软刷新。要获得自定义帖子类型以显示您需要.htaccess文件中的一些重写规则。使用硬刷新,您可以让 WordPress 为您添加这些内容。false从调用中删除参数。

flush_rewrite_rules(); // pass no parameters and it defaults to true
于 2013-10-03T13:40:13.130 回答