- 加入我的QQ群
- 关注我的百家号
扫描下面的二维码,“关注”我的百家号。
针对某些客户,可能会不一些不样的需求,所以在我们制作wordpress主题时,要针对他们做出相应的制作。比如本章讲到的“在wordpress激活主题时就能够新建页面”,这主要是为了方便用户使用,其实,新建页面完全可以在后台的页面里进行操作。但有时,还是有必要的,比如:时美网的网站导航、商城页面、登录注册页面,如果能在客户使用ssmay主题时就自动创建好,那样就会大大方便用户了。嗯,话不多说,下面就一起来看看怎样实现wordpress激活主题时自动创建页面的吧。
第一步:创建好页面。
就是说,你想让自定义登录页面在主题激活时自动创建的话,就先在主题文件夹下创建一个自定义登录页面文件,如:page_login.php,页面名为“登录与注册”。如何创建页面文件,我们在前面的章节中有详细介绍,这里就不多说了。
如:wordpress主题自定义注册登录页面(2):创建自定义登录页面
第二步:添加自动创建页面代码。
把下面的代码放到主题的functions.php文件里:
function ashu_add_page($title,$slug,$page_template=''){
$allPages = get_pages(); //获取所有页面
$exists = false;
foreach( $allPages as $page ){ //通过页面别名来判断页面是否已经存在
if( strtolower( $page->post_name ) == strtolower( $slug ) ){
$exists = true;
}
}
if( $exists == false ) {
$new_page_id = wp_insert_post(
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
)
);if($new_page_id && $page_template!=''){ //如果插入成功 且设置了模板
update_post_meta($new_page_id, '_wp_page_template', $page_template); } //保存页面模板信息
}
}
function ashu_add_pages() {
global $pagenow;
if ( 'themes.php' == $pagenow && isset( $_GET['activated'] ) ){ //判断是否为激活主题页面
ashu_add_page('登录与注册','page-login','page-login.php'); //页面标题ASHU_PAGE 别名ashu-page 页面模板page-ashu.php
ashu_add_page('导航','page-sitemap','page-sitemap.php');
}
}
add_action( 'load-themes.php', 'ashu_add_pages' );
上面的代码是以“登录与注册”和“导航”2个页面为例,你可以根据自己的需要添加多个页面,这个在wordpress激活主题时会自动创建多个页面。
这段wordpress激活主题新建页面的代码要在激活主题时才创建页面的,所以,如果你这个主题是正在使用中的,可以在后台先切换到其它主题,然后再切换到你的这个主题,也就等于你的这个主题重新激活,这时也就新建了页面。