我正在创建一个插件,该插件注册一个名为“news articles”的自定义帖子类型。请参见下面的代码类:
<?php
/**
* This plugin class is used to register the necessary custom post types
*/
class Dw_Mf_Register_CPT {
/**
* Register Custom Post Types
*
* @since 1.0.0
* @access public
* @return void
*/
public function register_cpt(){
add_action( \'init\', array( $this, \'create_news_article_cpt\') );
}
/**
* Add News Article Custom Post Type
*
* @since 1.0.0
* @access public
* @return void
*/
public function create_news_article_cpt(){
$supports = array(
\'title\', // post title
\'editor\', // post content
\'author\', // post author
\'thumbnail\', // featured images
\'excerpt\', // post excerpt
\'custom-fields\', // custom fields
\'comments\', // post comments
\'revisions\', // post revisions
\'post-formats\', // post formats
);
$labels = array(
\'name\' => _x(\'news articles\', \'plural\'),
\'singular_name\' => _x(\'news article\', \'singular\'),
);
$args = array(
\'supports\' => $supports,
\'labels\' => $labels,
\'public\' => true,
\'query_var\' => true,
\'rewrite\' => array(\'slug\' => \'news-articles\'),
\'has_archive\' => true,
\'hierarchical\' => false,
);
register_post_type(\'news articles\', $args);
}
}
它在后端工作。我可以在菜单中看到自定义帖子类型,并且可以创建新的新闻文章。
然而,当我试图查看这些新闻文章时,我被301重定向到主页。
当我从PHP类上下文中删除相同的代码并将其直接放入函数中时。php作为一个标准的php函数,并注册它按预期工作的自定义帖子类型,我可以查看我在网站前面创建的新闻文章,而无需将它们重定向到主页。
//functions.php code
function create_post_type_news() {
$supports = array(
\'title\', // post title
\'editor\', // post content
\'author\', // post author
\'thumbnail\', // featured images
\'excerpt\', // post excerpt
\'custom-fields\', // custom fields
\'comments\', // post comments
\'revisions\', // post revisions
\'post-formats\', // post formats
);
$labels = array(
\'name\' => _x(\'news articles\', \'plural\'),
\'singular_name\' => _x(\'news article\', \'singular\'),
);
$args = array(
\'supports\' => $supports,
\'labels\' => $labels,
\'public\' => true,
\'query_var\' => true,
\'rewrite\' => array(\'slug\' => \'news-articles\'),
\'has_archive\' => true,
\'hierarchical\' => false,
);
register_post_type(\'news articles\', $args);
}
add_action(\'init\', \'create_post_type_news\');
理想情况下,这将在插件中工作,并且我不需要在函数中注册CPT。php文件。对问题所在有何见解?