创建多个页面并设置主题激活的模板/内容?

时间:2013-08-07 作者:Chaos67731

我想让大约6页左右的主题激活,我已经找到了两种方法在这个网站上做到这一点。

其中一个将生成所需的任意多个页面,也就是说,第二个将只生成一个页面,但允许我选择页面模板和内容。

我正在寻找一种两者的混搭,但并没有能够让它发挥作用。我想根据需要制作尽可能多的页面,如果需要,为每个页面设置模板和内容。

这是我的代码,它将生成多个页面。

function create_initial_pages() {
    $pages = array(
        \'page1\' => \'Page 1\',
        \'page2\' => \'Page 2\',
        \'page3\' => \'Page 3\',
        \'page4\' => \'Page 4\'
    );
    foreach($pages as $page_url => $page_title) {
        $id = get_page_by_title($page_title);
        $page = array(
            \'post_type\'   => \'page\',
            \'post_name\'   => $page_url,
            \'post_title\'  => $page_title,
            \'post_status\' => \'publish\',
            \'post_author\' => 1,
            \'post_parent\' => \'\'
        );
        if (!isset($id)) wp_insert_post($page);
    };
}
下面是生成一个页面但设置内容和页面模板的代码

if (isset($_GET[\'activated\']) && is_admin()){
    $new_page_title = \'Sitemap\';
    $new_page_content = \' \';
    $new_page_template = \'sitemap.php\'; //ex. template-custom.php. Leave blank if you don\'t want a custom page template.
    //don\'t change the code bellow, unless you know what you\'re doing
    $page_check = get_page_by_title($new_page_title);
    $new_page = array(
            \'post_type\' => \'page\',
            \'post_title\' => $new_page_title,
            \'post_content\' => $new_page_content,
            \'post_status\' => \'publish\',
            \'post_author\' => 1,
    );
    if(!isset($page_check->ID)){
            $new_page_id = wp_insert_post($new_page);
            if(!empty($new_page_template)){
                    update_post_meta($new_page_id, \'_wp_page_template\', $new_page_template);
            }
    }
}
有人知道怎么做吗编辑:如果可以的话,我也可以看到创建子页面的功能,但这不是必需的。

1 个回复
SO网友:Chaos67731

也许有更好的方法可以做到这一点,但在测试和测试之后,我发现了如何让代码正常工作:)

因此,此代码将根据需要创建尽可能多的页面,为每个页面设置不同的内容,并在需要时设置不同的模板。

我并不擅长编写php代码,因此可能有更好的方法可以做到这一点,但它可以工作(经过数小时的测试)

if (isset($_GET[\'activated\']) && is_admin()){
    add_action(\'init\', \'create_initial_pages\');
}
function create_initial_pages() {

    $pages = array( 
         // Page Title and URL (a blank space will end up becomeing a dash "-")
        \'Services\' => array(
            // Page Content     // Template to use (if left blank the default template will be used)
            \'Services Content\'=>\'page-bottom-sidebar.php\'),

        \'Prices\' => array(
            \'Prices Content\'=>\'page-wide.php\'),

        \'F A Q\' => array(
            \'FAQ Content\'=>\' \'),
    );

    foreach($pages as $page_url_title => $page_meta) {

        $id = get_page_by_title($page_url_title);

        foreach ($page_meta as $page_content=>$page_template){

            $page = array(
                \'post_type\'   => \'page\',
                \'post_title\'  => $page_url_title,
                \'post_name\'   => $page_url_title,
                \'post_status\' => \'publish\',
                \'post_content\' => $page_content,
                \'post_author\' => 1,
                \'post_parent\' => \'\'
            );

            if(!isset($id->ID)){
                $new_page_id = wp_insert_post($page);
                if(!empty($page_template)){
                    update_post_meta($new_page_id, \'_wp_page_template\', $page_template);
                }
            }
        }
    }
}
嗯,我希望它能帮助别人!

结束

相关推荐

通过函数将输入字段添加到‘Pages>编辑页面’。php

原始问题:我正在尝试将输入字段添加到“页面>编辑页面”。此输入字段的使用将由用户添加滑块的ID,以便滑块特定于页面。示例:用户将幻灯片ID添加到编辑页面屏幕的输入字段中页面输入该ID。感谢所有回应的人,你们是一个很棒的社区,我从这个网站得到了极好的帮助,谢谢!FINAL RESULTfunctions.php// Add custom Slider ID field to \'Edit Page\' add_action( \'add_meta_boxes\', \'cd_meta_box_