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', ''); } }