首页 > 解决方案 > 第二个自定义帖子类型没有显示在前端

问题描述

WP 的 post-type 代码正在工作并显示在前端。但是当复制它并将“合作”替换为“电影”时,它在管理端工作,但在前端返回 404。

我删除了“电影”代码并尝试了一些在网上找到的示例,但同样的问题仍然存在。它适用于 1 种帖子类型,但不超过 1 种。有什么原因吗?

“协作”代码转到“www.website.com/collaborations”,这是正确的,但第二个代码转到“www.website.com/movies/movies/”。我在下面添加了“电影”代码。

协作代码

function create_collaborations()
{
    register_post_type('collaborations',
        array('labels' => array('name' => __('collaborations'),'singular_name' => __('Collaborations')),'public' => true,'has_archive' => false,'rewrite' => array('slug' => 'collaborations'))
    );
}
add_action('init','create_collaborations');

function cw_post_type_collaborations()
{
    $supports = array('title', 'editor', 'thumbnail', 'revisions');

    $labels = array(
        'name'          => _x('Collaborations', 'plural'),
        'singular_name' => _x('Collaborations', 'singular'),
        'menu_name'     => _x('Collaborations', 'admin menu'),
        'name_admin_bar'=> _x('Collaborations', 'admin bar'),
        'add_new'       => _x('Add New', 'add new'),
        'add_new_item'  => __('Add New Collaborations'),
        'new_item'      => __('New Collaborations'),
        'edit_item'     => __('Edit Collaborations'),
        'view_item'     => __('View Collaborations'),
        'all_items'     => __('View Collaborations'),
        'search_items'  => __('Search Collaborations'),
        'not_found'     => __('No Collaborations found.')
    );

    $args = array(
        'supports'      => $supports,
        'labels'        => $labels,
        'public'        => true,
        'query_var'     => true,
        'rewrite'       => array('slug' => 'collaborations'),
        'has_archive'   => true,
        'hierarchical'  => false
    );

    register_post_type('collaborations', $args);
}
add_action('init', 'cw_post_type_collaborations');

电影代码

function create_movies()
{
    register_post_type('movies',
        array('labels' => array('name' => __('movies'),'singular_name' => __('Movies')),'public' => true,'has_archive' => false,'rewrite' => array('slug' => 'movies'))
    );
}
add_action('init','create_movies');

function cw_post_type_movies()
{
    $supports = array('title', 'editor', 'thumbnail', 'revisions');

    $labels = array(
        'name'          => _x('Movies', 'plural'),
        'singular_name' => _x('Movies', 'singular'),
        'menu_name'     => _x('Movies', 'admin menu'),
        'name_admin_bar'=> _x('Movies', 'admin bar'),
        'add_new'       => _x('Add New', 'add new'),
        'add_new_item'  => __('Add New Movies'),
        'new_item'      => __('New Movies'),
        'edit_item'     => __('Edit Movies'),
        'view_item'     => __('View Movies'),
        'all_items'     => __('View Movies'),
        'search_items'  => __('Search Movies'),
        'not_found'     => __('No Movies found.')
    );

    $args = array(
        'supports'      => $supports,
        'labels'        => $labels,
        'public'        => true,
        'query_var'     => true,
        'rewrite'       => array('slug' => 'movies'),
        'has_archive'   => true,
        'hierarchical'  => false
    );

    register_post_type('movies', $args);
}
add_action('init', 'cw_post_type_movies');

标签: wordpresswordpress-plugin-creation

解决方案


为什么要两次制作相同的帖子类型?

也许我错了,但我认为您只需要第二个功能。

1.) function cw_post_type_movies() 
2.) function cw_post_type_collaborations()

对于电影,只需使用:

function cw_post_type_movies(){
$supports = array('title', 'editor', 'thumbnail', 'revisions');

$labels = array(
    'name'          => _x('Movies', 'plural'),
    'singular_name' => _x('Movies', 'singular'),
    'menu_name'     => _x('Movies', 'admin menu'),
    'name_admin_bar'=> _x('Movies', 'admin bar'),
    'add_new'       => _x('Add New', 'add new'),
    'add_new_item'  => __('Add New Movies'),
    'new_item'      => __('New Movies'),
    'edit_item'     => __('Edit Movies'),
    'view_item'     => __('View Movies'),
    'all_items'     => __('View Movies'),
    'search_items'  => __('Search Movies'),
    'not_found'     => __('No Movies found.')
);

$args = array(
    'supports'      => $supports,
    'labels'        => $labels,
    'public'        => true,
    'query_var'     => true,
    'rewrite'       => array('slug' => 'movies'),
    'has_archive'   => true,
    'hierarchical'  => false
);

register_post_type('movies', $args);
}
add_action('init', 'cw_post_type_movies');

对于协作使用:

function cw_post_type_collaborations(){
$supports = array('title', 'editor', 'thumbnail', 'revisions');

$labels = array(
    'name'          => _x('Collaborations', 'plural'),
    'singular_name' => _x('Collaborations', 'singular'),
    'menu_name'     => _x('Collaborations', 'admin menu'),
    'name_admin_bar'=> _x('Collaborations', 'admin bar'),
    'add_new'       => _x('Add New', 'add new'),
    'add_new_item'  => __('Add New Collaborations'),
    'new_item'      => __('New Collaborations'),
    'edit_item'     => __('Edit Collaborations'),
    'view_item'     => __('View Collaborations'),
    'all_items'     => __('View Collaborations'),
    'search_items'  => __('Search Collaborations'),
    'not_found'     => __('No Collaborations found.')
);

$args = array(
    'supports'      => $supports,
    'labels'        => $labels,
    'public'        => true,
    'query_var'     => true,
    'rewrite'       => array('slug' => 'collaborations'),
    'has_archive'   => true,
    'hierarchical'  => false
);

register_post_type('collaborations', $args);
}
add_action('init', 'cw_post_type_collaborations'); 

创建两个自定义帖子类型后,请转到:

你的域/wp-admin

设置 > 固定链接 > 保存更改

=> 固定链接被刷新


推荐阅读