wordpress CMS主题 微信
  • 全部教程
  • Home > wordpress CMS主题制作 > 激活wordpress CMS主题时自动添加page页面

    激活wordpress CMS主题时自动添加page页面

    高时银博客 wordpress CMS主题制作 点击: 1,456 次 1 1

    在开发wordpressCMS主题时,我们要设身处地地站在用户的角度多想一些问题,以及解决这些问题的方法。比如本章内容所要讲到的——如何在激活wordpressCMS主题时就自动为网站添加page页面。这样的好处,就是不需要使用我们的wordpressCMS主题的用户自已到后台页面去手动添加page页面,比如:登录注册页面、网站地图页面、投稿页面……等等,我们可以让这些页面在wordpress主题启动时就自动创建好,更加方便客户使用。如:时美网的登录页面。

    那么,wordpress主题激活时怎样自动添加page页面呢?

    第一步:我们要做好一个page页面模板。

    因为我们需要用到page页面的文件名和这个页面的标题,所以我们要单独为每个需要自动添加的页面添加一个文件模板。如创建一个地图页面,我们取名为 sitemap.php 。然后在这个文件中添加代码,代码最上面添加如下注释代码:

    <?php
    /*
    Template Name: sitemap 网站地图
    */
    ?>

    怎样制作页面模板,不是本章的内容,可以在本站的文章中搜索相关文章。

    第二步:添加创建页面代码。

    //创建页面 放到wordpress主题的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('网站地图','sitemap','sitemap.php');  //这里我们就用到页面的文件名
    }
    }
    add_action( 'load-themes.php', 'ashu_add_pages' );

    上面的代码,我们就会在wordpress主题启动时会自动创建一个标题为”网站地图“的page页面。具体这个页面是个什么样子,就要看你的这个页面模板设计 的是什么样了。

    ssmay主题

    第三步:创建页面链接。

    //获取页面链接  放到wordpress主题的functions.php文件中
    function hui_get_page_ID($pageName) {
    global $wpdb;
    $pages = get_pages();
    for($i = 0; $i < count($pages); $i++) {
    if($pageName == $pages[$i]->post_title) $page_slug = $pages[$i]->post_name;
    }
    if($page_slug) {
    $page_ID = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_name = '" . $page_slug . "' AND post_status = 'publish' AND post_type = 'page'");
    return $page_ID;
    } else {
    return false;
    }
    }

    通过上面的三步骤,我们就为wordpressCMS主题添加了自动创建page页面的功能。这种功能,在众多的wordpress CMS主题使用。当然,对于上面的代码,你可以灵活应用。上面的代码只创建一个页面,你可以添加创建N个页面,这个可以根据你或客户的需要来自行设置。

     


    文章作者:高时银博客
    本文地址:http://wanlimm.com/77201507204647.html
    版权所有 © 转载时必须以链接形式注明作者和原始出处!

    目前还没有评论。赶快来坐沙发吧。

    发表评论