在WordPress MultiSite中创建默认页面

时间:2017-06-12 作者:CodeBriefly

新网站创建时,我正在努力创建WordPress多站点页面。我找到了一些钩子来实现这一点,但钩子没有响应。我在stack和其他网站上找到的一些资源是https://stackoverflow.com/questions/40014419/wordpress-multisite-default-page-for-newly-created-sitehttp://www.wpbeginner.com/wp-tutorials/how-to-add-remove-default-pages-in-wordpress-multisite/

这些参考资料中提到的挂钩在我的多站点设置中不起作用。

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

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

// create new page
  $page_id = wp_insert_post(array(
    \'post_title\'     => \'About\',
    \'post_name\'      => \'about\',
    \'post_content\'   => \'This is an about page. Feel free to edit or delete this page.\',
    \'post_status\'    => \'publish\',
    \'post_author\'    => $user_id, // or "1" (super-admin?)
    \'post_type\'      => \'page\',
    \'menu_order\'     => 1,
    \'comment_status\' => \'closed\',
    \'ping_status\'    => \'closed\',
 ));  

// Find and delete the WP default \'Sample Page\'
$defaultPage = get_page_by_title( \'Sample Page\' );
wp_delete_post( $defaultPage->ID );

  restore_current_blog();
}
我正在我的子主题函数中添加此代码。php文件。任何解决此问题的建议。

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

您提供的代码在我的multisite上非常有效。我把它放在一个网络激活的插件中。尝试同样的方法。

SO网友:Lautaro Ayosa

“The”;wpmu\\u new\\u博客;钩子已被弃用!相反,您应该使用;wp\\U initialize\\U site“wp\\U initialize\\U site”;钩出于某种原因,Per Søderlind建议在中使用高于100的优先级this post.

其余的都差不多。所做的唯一更改(也采纳了佩尔·瑟琳德所做的帖子的建议)是将$blog\\u id更改为$new\\u站点->;blog\\u id。仅使用$blog\\u id对我不起作用。

还有,重要的细节。我将这段代码作为mu插件。

add_action(\'wp_initialize_site\', \'wpb_create_my_pages\', 910, 1);

function wpb_create_my_pages(WP_Site $new_site){
  switch_to_blog($new_site->blog_id);

// create new page
  $page_id = wp_insert_post(array(
    \'post_title\'     => \'About\',
    \'post_name\'      => \'about\',
    \'post_content\'   => \'Page content goes in here\',
    \'post_status\'    => \'publish\',
    \'post_author\'    => 1,
    \'post_type\'      => \'page\',
    \'menu_order\'     => 1,
    \'comment_status\' => \'closed\',
    \'ping_status\'    => \'closed\',
 ));  

// Find and delete the WP default \'Sample Page\'
$defaultPage = get_page_by_title( \'Sample Page\' );
wp_delete_post( $defaultPage->ID );

  restore_current_blog();
}
希望这能奏效!

结束

相关推荐

WordPress MultiSite,整个站点的HTTPS,还是只是管理员?

我有一个具有子域结构和通配符SSL证书的wp multiste。我的multiste已为任何创建站点的人启用注册。我知道如何做到这两点:1。只有管理员才有https或https 2。https无处不在(前端和管理)。我不知道该选哪一个。Wordpress。com在其所有用户的网站上到处都有https,据我所知,谷歌在2014年宣布,他们提高了使用https的网站的排名。似乎到处都有https是很好的理由。当然,https可能会减慢网站的速度。所以到处都有https有很多好处吗。还有,为什么前端会有http