Wordpress启用主题或插件时自动创建页面或文章

Wordpress在启用主题或者启用插件时,自动创建一个文章或页面,并可指定模板和别名。

/**
 * https://yangjunwei.com/3161.html
 * Wordpress启用主题或插件时自动创建页面或文章,并可指定模板和别名
 * $title 字符串 页面标题
 * $slug  字符串 页面别名
 * $page_template 字符串  模板名
 * $post_content 内容,如短标签
 * 示例创建页面: yjw_add_one_page('用户中心', 'ucenter', 'pages/page_null.php', '[MEMBER_UCENTER]'); // 固定URL的用户中心
 * 无返回值
**/
if( !function_exists('yjw_add_one_page') ){
function yjw_add_one_page($title, $slug, $page_template='', $post_content=''){
	$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_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);
		}
	}
}
}

大概的调用形式

/* 主题设置页面时调用 */
add_action( 'load-themes.php', 'yjw_add_pages' );
function yjw_add_pages(){
	global $pagenow;
	//判断是否为激活主题页面
	if ( 'themes.php' == $pagenow && isset( $_GET['activated'] ) ){
		ashu_add_page('ASHU_PAGE','ashu-page','page-ashu.php'); //页面标题ASHU_PAGE 别名ashu-page  页面模板page-ashu.php
		ashu_add_page('PAGE_ASHU','page-ashu','ashu-page.php');
	}
}

/* 插件注册激活时调用 */
register_activation_hook( __FILE__, 'yjw_plugin_activation' );
function yjw_plugin_activation(){
	/* 创建页面 */
	if( !function_exists('yjw_add_one_page') ){
		yjw_add_one_page('积分榜', 'top-month', 'pages/page-toplist.php', '');
	}
}