我想让大约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);
}
}
}
有人知道怎么做吗编辑:如果可以的话,我也可以看到创建子页面的功能,但这不是必需的。
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);
}
}
}
}
}
嗯,我希望它能帮助别人!