让代码更简单

WordPress启用主题自动创建页面

重要:本文最后更新于2020-08-11 08:34:28,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

现在的主题功能越来越强大,很多主题会创建很多辅助页面,比如用户注册登录等等。当页面过多的时候,手动创建就不是那么的灵活,并且很多代码引用就更加麻烦,所以我们需要自动创建页面。

以前很多用户给我反应了DMD主题为什么不自动创建页面,用户手动创建很麻烦的问题。我之所以不愿意使用自动创建,是因为手动更灵活,希望用户把它玩儿转,而不是只知道用鼠标点点点。

废话不多说了,下面是WordPress启用主题自动创建页面的代码,加在functions.php中就行了。

复制
//https://www.daimadog.org/6684.html
//WordPress启用主题自动创建页面
function ashu_add_page($title,$slug,$parent_slug,$page_template=''){ 

$allPages = get_pages();//获取所有页面 
$post_parent=0;
$exists = false; 
foreach( $allPages as $page ){ 
//通过页面别名来判断页面是否已经存在 
if( strtolower( $page->post_name ) == strtolower( $slug ) ){ 
$exists = true; 
} 
//获取父页面ID
if($parent_slug!=""){
if(strtolower( $page->post_name ) == strtolower( $parent_slug ) ){
$post_parent=$page->ID;
}
}
} 
if( $exists == false ) { 
if($post_parent!=0){
$parma= array( 
'post_title' => $title, 
'post_type' => 'page', 
'post_name' => $slug, 
'comment_status' => 'closed', 
'ping_status' => 'closed', 
'post_content' => '', 
'post_status' => 'publish', 
'post_parent'=>$post_parent,
'post_author' => 1, 
'menu_order' => 0 
);
}else{
$parma= array( 
'post_title' => $title, 
'post_type' => 'page', 
'post_name' => $slug, 
'comment_status' => 'closed', 
'ping_status' => 'closed', 
'post_content' => '', 
'post_status' => 'publish', 
'post_author' => 1, 
'menu_order' => 0 
);
}
$new_page_id = wp_insert_post($parma); 
//如果插入成功 且设置了模板 
if($new_page_id && $page_template!=''){ 
//保存页面模板信息 
update_post_meta($new_page_id, '_wp_page_template', $page_template); 
} 
} 
}

简单使用

在切换主题时自动检查创建页面,代码如下:

复制
//https://www.daimadog.org/6684.html
//WordPress启用主题自动创建页面
add_action( 'after_switch_theme', 'create_tb_page' );
function create_tb_page(){
ashu_add_page("用户中心","member","","pages/member.php");
ashu_add_page("修改密码","password","member","pages/member-password.php");
ashu_add_page("修改资料","info","member","pages/member-info.php");
ashu_add_page("积分","level","member","pages/member-level.php");
}

after_switch_theme钩子不清楚的,请看这篇文章:WordPress主题启用时的动作钩子after_switch_theme

感觉很棒!可以赞赏支持我哟~

2 打赏

评论 (0)

登录后评论
QQ咨询 邮件咨询 狗哥推荐