通过搜索支持论坛和博客,我发现除了我自己之外,很少有人在使用自定义帖子类型和永久链接方面遇到困难。
我的自定义帖子类型(日记)注册正常,所有在管理员方面都显示正常。如果您在前端搜索它,它将显示在搜索结果中。但是当我点击日记帖子时,我得到了404。
我的代码:
register_post_type( 'diary_post',
array(
'labels' => array(
'name' => __( 'Diary Post' ),
'singular_name' => __( 'Diary Post' ),
'add_new' => _x('Add New'),
'add_new_item' => __('Add New Diary Post'),
'edit_item' => __('Edit Diary Post'),
'new_item' => __('New Diary Post'),
'view_item' => __('View Diary Post'),
'search_items' => __('Search Diary Posts'),
'not_found' => __('No Diary posts found'),
'not_found_in_trash' => __('No Diary posts found in Trash'),
'parent_item_colon' => ''
),
'description' => __( 'Posts to appear on the Diary page' ),
'public' => true,
'publicly_queryable' => false,
'exclude_from_search' => false,
'query_var' => true,
'menu_position' => 4,
'supports' => array('title','editor','author','excerpt','thumbnail', 'custom-fields','comments','trackbacks','revisions'),
'taxonomies' => array( 'diary_post_type','post_tag'),
'has_archive' => true,
'rewrite' => array( 'slug' => 'diary','with_front' => false)
)
);
我已尝试过各种帖子中的以下建议解决方案,但没有取得任何成功:
即使我尝试通过默认永久链接结构(例如http://localhost/?diary_post=my-title-here)访问帖子,我也没有成功。
我网站的永久链接结构目前为/%year%/%postname%
- 将其更改为默认设置也无济于事。
任何线索?我的智慧结束了。
答案 0 :(得分:3)
publicly_queryable
需要成立,但如果您设置exclude_from_search
,则可能不需要它(或public
)。请参阅codex:http://codex.wordpress.org/Function_Reference/register_post_type#Arguments
答案 1 :(得分:2)
这是帮助那些可能遇到与我相同问题的人的另一个答案......
如果您最近创建了新的CPT,则可能需要进入设置>永久链接,然后再次点击保存更改。这允许任何新的重写规则生效。
答案 2 :(得分:0)
您应该为参数添加“_builtin”属性。
function rw_portfolio_register(){
$args = array(
'label' => __('Portfolio'),
'singular_label' => __('Portfolio'),
'public' => true,
'show_ui' => true,
'_builtin' => false,
'capability_type' => 'post',
'hierarchical' => false,
'rewrite' => array("slug" => "project"),
'supports' => array('title', 'editor')//Boxes will be showed in the panel
);
register_post_type( 'rw_portfolio' , $args );
}