网络(多站点)安装主题中的硬编码页

时间:2011-09-15 作者:jw60660

我正在创建一个多站点网络,我正在寻找一种方法,使创建的新博客自动设置几个标准页面。

这些页面的目的是显示通用会员选项和我希望每个网站显示的其他信息。

因此,例如,我希望每个新站点都有一个“加入”页面和一个“关于此网络”页面,而不需要手动设置页面及其自定义模板。

我使用Twentyeleven作为我的子主题库,并定制一个特定的主题,供每个新创建的子博客用户使用。

我想这个问题的一部分是:是否有可能将页面硬编码为Wordpress主题?

非常感谢。

JW公司

1 个回复
最合适的回答,由SO网友:onetrickpony 整理而成

钩入wpmu_new_blog 并创建页面:

add_action(\'wpmu_new_blog\', \'create_my_pages\', 10, 2);

function create_my_pages($blog_id, $user_id){
  switch_to_blog($blog_id);

  // not really need, new blogs shouldn\'t have any content
  if(get_page_by_title(\'About this Network\')) return;

  // create each page
  $page_id = wp_insert_post(array(
    \'post_title\'     => \'About this Network\',
    \'post_name\'      => \'about-this-network\',
    \'post_content\'   => \'Co za asy...\',
    \'post_status\'    => \'publish\',
    \'post_author\'    => $user_id, // or "1" (super-admin?)
    \'post_type\'      => \'page\',
    \'menu_order\'     => 666,
    \'comment_status\' => \'closed\',
    \'ping_status\'    => \'closed\',
     // + see: http://codex.wordpress.org/Function_Reference/wp_insert_post
  ));  

  restore_current_blog();
}
你可以把它放在你网络激活的插件中,或者放在必须使用的插件中,这样它们在所有主题中都可用。

另一种方法是使用template_redirect 钩住并包含您自己的模板文件

结束

相关推荐

GET_PAGES和NUMBER-无输出;无错误;

我正在尝试3 父页面中的页面(id为2035). 我正在使用wordpress 3.2.1。这是我的相关代码:<div id=\"videos\" class=\"contentLeft\"> <?php // get the three most recent videos (2035 is the video page) $recentVideos = get_pages(\'child_of=2035&number=3\');