Wordpress:自定义帖子类型单页显示索引页面而不是

时间:2016-09-28 09:19:59

标签: php wordpress custom-post-type

我已经尝试制作我的第一个wordpress主题,但我的博客单页有些麻烦。 [我的博客页面] [1]

这是我创建的一个名为blog_post的自定义帖子类型。 奇怪的是,这似乎只发生在我的网站ex的子层上。 {url} / blog_post /这里的页面看起来就像我的索引页面。

但是在我的工作页面上,我的单​​个页面没有任何问题,而且他们的固定链接没有{url} / work_post / attach。 [我的工作页面] [2]

我使用functions.php文件

创建了单页的特殊样式
define(SINGLE_PATH, TEMPLATEPATH . '/single');

/**
* Filter the single_template with our custom function
*/
add_filter('single_template', 'my_single_template');

/**
* Single template function which will choose our template
*/
function my_single_template($single) {
global $wp_query, $post;

/**
* Checks for single template by category
* Check by category slug and ID
*/
foreach((array)get_the_category() as $cat) :

if(file_exists(SINGLE_PATH . '/single-cat-' . $cat->slug . '.php'))
return SINGLE_PATH . '/single-cat-' . $cat->slug . '.php';

elseif(file_exists(SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php'))
return SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php';
/*                                                                                                                              <-------- if no single-cat page is found the return the single.php file 
*/
elseif(file_exists(SINGLE_PATH . '/single.php'))
return SINGLE_PATH . '/single.php';

endforeach;
}

我希望有人能理解我的混乱:D

3 个答案:

答案 0 :(得分:0)

我自己找到了答案,只需删除functions.php的附加内容,然后为我的工作页面制作自定义帖子。

然后我为我想要的每个slu make制作单{slug} .php页面:D 大家都很开心

答案 1 :(得分:0)

您需要在自定义帖子类型中添加“ public => true”。同时创建单个{custom-post-type} .php文件

代码:

$args = array(
        'labels'            => $labels,
        'public'            => true,
        'show_ui'           => true,
        'show_in_menu'      => true,
        'capability_type'   => 'post',
        'heirachical'       => false,
        'menu_position'     => 26,
        'has_archive'       => true,
        'menu_icon'         => 'dashicons-products',
        'supports'          => array( 'title', 'editor','thumbnail' ),
        'query_var'         => true,
        'capability_type'   => 'post',
        'rewrite'           => true,
    ); 

例如:假设您已经创建了自定义帖子类型,例如“ product”,那么您需要在主题目录中创建single-product.php文件。

注意:保存永久链接设置。

答案 2 :(得分:0)

对我来说,它在注册post_type的参数中添加了'publicly_queryable' => true。我最初必须将设置设置为false