我很难正确实现自定义帖子类型。我已经寻找了很长时间的解决方案,但没有找到任何解决方案。以下是我所做的:
在本地wamp服务器中新安装的WordPress(首先启用apache rewrite\\u模块)。
使用默认主题(214)。没有安装插件。
将永久链接更改为“帖子名称”
在plugins文件夹中,创建了一个名为pr\\u custom\\u posts的文件夹,并在其中创建了一个名为pr\\u custom\\u posts的文件。php。在该文件中,我创建了一个自定义帖子类型。代码如下:
/*
* Plugin Name: PR Movies Custom Post
* Plugin URI: http://www.example.com
* Description: Learning Custom Posts
* Author: PR
* Author URI: http://www.example.com
* Version: 1.0
*/
class PR_Movies_Custom_Post {
public function __construct() {
$this->register_post_type();
//flush_rewrite_rules();
}
public function register_post_type () {
$args = array(
\'labels\' => array (
\'name\' => \'Movies\',
\'singular_name\' => \'Movie\',
\'add_new\' => \'Add New Movie\',
\'add_new_item\' => \'Add New Movie\',
\'edit_item\' => \'Edit Movie\',
\'new_item\' => \'Add New Movie\',
\'view_item\' => \'View Movie\',
\'search_items\' => \'Search Movies\',
\'not_found\' => \'No Movies Found\',
\'not_found_in_trash\' => \'No Movies Found in Trash\'
),
\'query_var\' => \'movies\',
\'rewrite\' => array (
\'slug\' => \'movies/\',
\'with_front\'=> false
),
\'public\' => true,
\'publicly_queryable\' => true,
\'has_archive\' => true,
\'menu_position\' => 10,
\'menu_icon\' => admin_url().\'/images/media-button-video.gif\',
\'supports\' => array (
\'title\',
\'thumbnail\',
\'editor\'
)
);
register_post_type(\'pr_movie\', $args);
//flush_rewrite_rules();
}
}
add_action(\'init\', function() {
new PR_Movies_Custom_Post();
//flush_rewrite_rules();
});
好消息:CPT显示在我的管理面板中,我可以在那里添加和观看电影。
问题:我无法在前端预览电影(通过单击管理面板中CPT中的“视图”)。仅当我将permalink设置为默认值时,它才会显示在前端(http://localhost/wp02/?p=123
).
我所尝试的:
转到permalink,将permalink设置保留为“Post name”并保存更改。
在我的代码中的多个位置(逐个)使用flush\\u rewrite\\u rules()。请参阅上面代码中注释掉的部分。
创建的菜单项为:URL:http://localhost/wp02/movies
导航标签:电影这会在前端创建一个菜单项,但单击“电影”链接时会显示“未找到”。
这快把我逼疯了。有人能帮忙吗?我将非常感激。