wordpress添加自定义文章类型代码(附伪静态url)
作者:admin
发布时间:2018-10-08 16:25:01
浏览:1856次
发现一段非常好玩的代码,如果需要用wordpress添加自定义文章类型,就可以直接使用了,方便简洁。比如添加一个教程文章类型或者产品文章类型等,本代码用于添加一个自定义文章类型,同时设置好伪静态等。可以根据实际需求加以修改。
[cc lang="php"]
//添加自定义文章类型代码
new Ws_Post_Type('video','video_list','教程');
Class Ws_Post_Type
{
private $type,$type_category,$type_name;
function __construct($type,$type_category,$type_name)
{
$this->type = $type;
$this->type_category = $type_category;
$this->type_name = $type_name;
//添加自定义文章类型
add_action('init', array($this,'ws_add_type'));
//为商品类自定义类型增加分类功能
add_action('init',array($this,'ws_add_categroy'), 0);
//修改自定义类型文章的地址
add_filter('post_type_link',array($this,'ws_add_link'), 1, 3);
//让自定义的url支持伪静态
add_action('init', array($this,'ws_rewrites_init'));
}
//新增自定义文章类型
public function ws_add_type()
{
register_post_type($this->type,
array(
'labels' => array(
'name' =>$this->type_name,
'title' =>$this->type_name,
'singular_name' => '所有'.$this->type_name,
'add_new' => '添加'.$this->type_name,
'add_new_item' => '添加新'.$this->type_name,
'edit' => '编辑',
'edit_item' => '编辑'.$this->type_name,
'new_item' => '新'.$this->type_name,
'view' => '查看'.$this->type_name,
'view_item' => '查看'.$this->type_name,
'search_items' => '搜索'.$this->type_name,
'not_found' => '没有找到相关'.$this->type_name,
'not_found_in_trash' => '没有'.$this->type_name.'评论',
'parent' =>$this->type_name.'评论',
),
'exclude_from_search' => false,
'public' => true,
'menu_position' => 6,
'supports' => array('title', 'editor', 'comments', 'custom-fields', 'thumbnail', 'excerpt', 'page-attributes'),
'taxonomies' => array(''),
'has_archive' => true,
'taxonomies' => array('post_tag'),
)
);
}
function ws_add_categroy()
{
register_taxonomy(
$this->type_category,
$this->type,
array(
'labels' => array(
'name' => $this->type_name.'分类',
'add_new_item' => '添加分类',
'new_item_name' => "新'.$this->type_name.'分类"
),
'show_ui' => true,
'show_tagcloud' => true,
'hierarchical' => true,
)
);
}
function ws_add_link($link, $post = 0)
{
global $post;
if ($post->post_type == $this->type ) {
return home_url($this->type . '/' . $post->ID . '.html');
}else{
return $link;
}
}
function ws_rewrites_init()
{
add_rewrite_rule(
$this->type . '/([0-9]+)?.html$',
'index.php?post_type=' . $this->type . '&p=$matches[1]',
'top');
add_rewrite_rule(
$this->type . '/([0-9]+)?.html/comment-page-([0-9]{1,})$',
'index.php?post_type=' . $this->type . '&p=$matches[1]&cpage=$matches[2]',
'top');
}
}
[/cc]
记得,是放在functions.php文件里
如需转载请保留本文出处: https://www.zhe94.com/360.html