Wordpress 在主题激活时创建页面 - 使用此功能添加子页面
Posted
技术标签:
【中文标题】Wordpress 在主题激活时创建页面 - 使用此功能添加子页面【英文标题】:Wordpress Create pages on theme activation - add child pages using this function 【发布时间】:2014-09-04 14:07:25 【问题描述】:我正在使用此功能添加有关主题激活的新页面:
/*************************************************
** Add home page
*************************************************/
if (isset($_GET['activated']) && is_admin())
$new_page_title = 'Home';
$new_page_content = '';
$new_page_template = 'template-home.php';
$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);
用完这个sn-p,我想创建很多页面。
即
/*************************************************
** Add new pages
*************************************************/
/*************************************************
** Add home page
*************************************************/
if (isset($_GET['activated']) && is_admin())
$new_page_title = 'Home';
$new_page_content = '';
$new_page_template = 'template-home.php';
$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);
/*************************************************
** Add About Us page
*************************************************/
if (isset($_GET['activated']) && is_admin())
$new_page_title = 'About Us';
$new_page_content = 'Coming Soon';
$new_page_template = 'template-page-with-subnav.php';
$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);
/*************************************************
** Add Meet the Staff
*************************************************/
if (isset($_GET['activated']) && is_admin())
$new_page_title = 'Meet the staff';
$new_page_content = 'Coming Soon';
$new_page_template = 'template-page-with-subnav.php';
$post_parent = '';
$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,
'post_parent' => $post_parent,
);
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);
我想知道的是如何在子页面上设置post parent?
似乎 post 父级设置为 'post_parent' => [ ] // 设置新帖子的父级,如果有的话。默认 0。
但是说我用这个方法添加关于我们,然后想在下一个函数中添加会见员工,我如何获得会见员工的id?
干杯
【问题讨论】:
【参考方案1】:$new_page_id 保存着刚刚创建的页面的ID(因为wp_insert_post函数的返回值是创建的帖子或页面的帖子ID)。
目前虽然每次创建新页面时都会覆盖此内容。
因此,您可以在每次创建页面时使用新变量来存储页面 ID,即每次创建页面时将 $new_page_id 更改为 $about_page_id、$home_page_id 等。例如
$about_page_id = wp_insert_post($new_page);
然后,为了能够设置“post_parent”,您需要首先创建父页面,以便您拥有用于子页面的适当 ID。并添加到页面创建数组中,例如
$new_page = array(
'post_type' => 'page',
'post_title' => $new_page_title,
'post_content' => $new_page_content,
'post_status' => 'publish',
'post_author' => 1,
'post_parent' => $about_page_id
);
【讨论】:
以上是关于Wordpress 在主题激活时创建页面 - 使用此功能添加子页面的主要内容,如果未能解决你的问题,请参考以下文章
php 当它被父主题隐藏时,重新激活Wordpress管理工具栏(白痴无处不在!)。在这种情况下,我只为广告重新启用它