2016-05-13 141 views
0

我创建了自定义帖子类型“意见”插件。我的代码如下:自定义帖子类型插件的单张视图

function create_post_type_opinion() { 
register_post_type('opinion', 
    array(
     'labels' => array(
      'name' => __('Opinions'), 
        'singular_name' => __('Opinion'), 
      'add_new' => __('Add New Opinion'), 
      'add_new_item' => __('Add New Opinion'), 
      'edit' => __('Edit Opinion'), 
       'edit_item' => __('Edit Opinion'), 
       'new_item' => __('New Opinion'), 
       'view' => __('View Opinion'), 
       'view_item' => __('View Opinion'), 
       'search_items' => __('Search Opinions'), 
       'not_found' => __('No Opinions found'), 
       'not_found_in_trash' => __('No Opinions found in Trash') 
        ), 
    'public' => true, 
    'menu_position' => 5, 
    'menu_icon' => plugins_url('images/opinion-20x20.png', __FILE__), 
    'rewrite' => array(
     'slug' => __('opinion') 
    ), 
    'supports' => array('title','editor', 'excerpt', 'comments', 'revisions', 'thumbnail'))); 
} 
add_action('init', 'create_post_type_opinion'); 

但我无法预览我的自定义帖子。它正在调用index.php的内容。我在我的主题文件夹中创建了single-opinion.php。我仍然无法预览我的“意见”帖子类型的内容(通过上面的自定义插件代码引入)。

请有人帮我解决这个问题。

+0

您是否在'设置>固定链接'下刷新了您的固定链接,然后按'保存更改'? – kindisch

回答

0

其作为一个插件,需要使用功能register_activation_hook:

function create_post_type_opinion(){ 
register_post_type('opinion', 
array(
    'labels' => array(
     'name' => __('Opinions'), 
       'singular_name' => __('Opinion'), 
     'add_new' => __('Add New Opinion'), 
     'add_new_item' => __('Add New Opinion'), 
     'edit' => __('Edit Opinion'), 
      'edit_item' => __('Edit Opinion'), 
      'new_item' => __('New Opinion'), 
      'view' => __('View Opinion'), 
      'view_item' => __('View Opinion'), 
      'search_items' => __('Search Opinions'), 
      'not_found' => __('No Opinions found'), 
      'not_found_in_trash' => __('No Opinions found in Trash') 
       ), 
'public' => true, 
'menu_position' => 5, 
'menu_icon' => plugins_url('images/opinion-20x20.png', __FILE__), 
'rewrite' => array(
    'slug' => __('opinion') 
), 
'supports' => array('title','editor', 'excerpt', 'comments', 'revisions', 'thumbnail'))); 
} 
//runs only when the theme is set up 
function custom_flush_rules(){ 
//defines the post type so the rules can be flushed. 
create_post_type_opinion(); 

//and flush the rules. 
flush_rewrite_rules(); 
} 
register_activation_hook(__FILE__, 'custom_flush_rules'); 
add_action('init', 'create_post_type_opinion'); 

ucheng的建议适用于主题内的自定义帖子类型。

0

从WordPress的codex

WordPress的保留所有的自定义重写规则高速缓存。有时候,插件 或主题会对这些规则进行修改,但WordPress将 在重新生成缓存之前不会实际识别这些更改。

转到'设置 - >固定链接'并检查'发布名称'作为网站的网址结构并保存设置以刷新重写规则。

如果上面的方法不起作用,尝试通过下面的代码来刷新重写规则:

function mytheme_rewrite_flush() { 
    flush_rewrite_rules(); 
} 
add_action('after_switch_theme', 'mytheme_rewrite_flush'); 

https://codex.wordpress.org/Function_Reference/flush_rewrite_rules

相关问题