在多站点网络中通过blog_id限制页面模板

时间:2019-11-12 作者:Mikey

TL:DR; 是否可以将页面模板限制在多站点网络中的某个站点?(使用类似get_current_blog_id 例如)

More details

我正在构建几个网站,每个网站都使用相同的基本部分,只是页面模板的不同变体。例如,站点A和;站点B的主页都使用组件A-D,但是站点A使用的是A B C D,站点B使用的是C B A D。我所有的实际标记都放在组件部分,页面模板大多只是一个包含列表(使用根Sage主题来帮助传递数据)。

这是基本前提,但我们讨论的是7个网站上的+-30个组件和+-50个模板。

我的所有模板都在我的主题文件夹(例如template-home-site-a、template-home-site-b)的子目录中,但这意味着当用户在CMS中为站点a工作时,他们会得到一个包含50个模板的列表,而不仅仅是特定于站点a的模板,可能只有12个左右。

有没有办法挂接Wordpress的模板系统,并根据当前的博客ID添加/删除它查找的文件夹?接受任何其他建议。

1 个回复
SO网友:Isu

我知道这是个老问题。但我希望有人能发现它有用。如果出于某种原因,你不能使用儿童主题(像我一样),那么就有钩子theme_page_templates 符合developer WP Page Templates.示例:

function makewp_exclude_page_templates( $post_templates ) {
  if ( is_multisite() && !is_main_site() ) {
    unset( $post_templates[\'wp-templates/iframe_container.php\'] );
    //In my case this one is removed from the list on every page other than main site
  } 
  return $post_templates;
}
add_filter( \'theme_page_templates\', \'makewp_exclude_page_templates\' );

相关推荐

MultiSite有SSL证书,但媒体库仍为http://

我们的多站点WordPress安装的URL为https://xx.com 对于主域,例如,https://yy.xx.com 作为子网站。我们正在使用WP的内置域映射功能。媒体库链接仍显示为http://xx 尽管如此,子域上使用的任何图像都被标记为不安全。只有一个子域(我们最近的一个子域)具有与结构的媒体库链接https://zz.xx.com. SSL证书可能是在创建其他子域之后安装的,但在ZZ之前:我不确定。我如何获得WP媒体库链接,所有链接都显示为https://-最好是URL中的子域?理想情况下