通过阅读您的问题,我假设以下设置:
地点网络com公司
现场-2。网络com公司
现场-3。网络com公司
主站点在网络上的位置。com(即博客id1
).所有站点(或至少所有子域站点)共享相同的主题。
您需要能够创建单个内容页,并使该内容在所有网站上可用,例如*。网络com/某些页面/
下面介绍了使用主站点上的一个页面(id 1)作为内容源(允许您通过编辑器更新/编辑该内容),以及用于匹配页面标题的模板文件。
您可以用同样的方式包含静态内容。(请参见最后步骤1的注释)。
步骤1您可以通过复制页面向特定页面的主题添加页面模板,例如,命名为可访问性。php并将其重命名为页面可访问性。php
页面可访问性中的第2步。php中,我们将删除正常的循环,并用一些代码替换它以获得不同页面的内容:主站点的可访问性页面;使用switch_to_blog()
.
如果主站点id为1
, 模板页面的可访问性。php可能如下所示:
get_header();
switch_to_blog(1);
$post = get_page_by_title( \'Accessibility\' );
if ($post) {
$content = do_shortcode( html_entity_decode( $post->post_content ) );
}
restore_current_blog();
?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php echo $content; ?>
</main><!-- #main -->
</div><!-- #primary -->
<?php
get_sidebar();
get_footer();
步骤3为所有站点创建一个名为可访问性的空页面。而不是使用
switch_to_blog()
要为每个页面创建一个页面,我们可以检查上是否存在该页面
init
只有当它不存在时才创建它。
功能。主题的php
add_action( \'init\', \'set_default_page\' );
function set_default_page() {
check_exists_create_page( \'Accessibility\' ); //again, checking by title
}
function check_exists_create_page( $title ) {
if ( get_page_by_title( $title ) == NULL ) {
$args = array(
\'post_title\' => $title,
\'post_content\' => \'\',
\'post_status\' => \'publish\',
\'post_author\' => 1,
\'post_type\' => \'page\'
);
wp_insert_post( $args );
}
}
步骤1的注释您也可以使用
template hierarchy 包括静态内容。删除普通循环,直接添加内容或包含另一个php文件等。然后跳到步骤3,创建一个名称与页面匹配的页面-{your page name}。每个站点的php模式。
如果要使用id以外的站点,请注意步骤21
, 您始终可以通过以下方式检索希望使用的站点的id:get_current_blog_id()
get_page_by_title()
使用标题not 鼻涕虫要获取标题为“我的新页面”的页面,请执行以下操作:
get_page_by_title( \'My New Page\' )
这里我只是在链接更多信息
do_shortcode()
和
html_entity_decode()
.对于
switch_to_blog()
和
restore_current_blog()
.
步骤3的注释可能有一个比init
. 如果希望从此页面检查/创建中排除某些站点,还可以添加条件检查。查看我的answer on a different question 如果你需要的话。
在测试期间,请注意垃圾箱中的页面仍然存在。