我希望能够从我的任何站点(主站点或任何子站点)自定义我的主题,并对整个网络产生更改影响。
现在,当我自定义主站点时,它不会将更改复制到其余子站点。
我知道这些数据存储在theme_mods_themename, 但我需要;复制并粘贴“;这是每个站点上的新值(使用自定义程序时生成的新值)。
有没有办法;统一“;此设置?
提前谢谢你
UPDATE (DECEMBER 21 2021):
我发现了另一件让我失去理智的事。至少在我的情况下,主题颜色不会与中的其他主题设置一起存储theme_mods_kadence-child
, 它们存储在kadence_global_palette
在wp-options
数据库表。
仍然没有找到一种方法;同步(&Q);所有自定义设置。我一直在读Pat J在第一条评论中所说的话,但还没来得及解释清楚
UPDATE (DECEMBER 23 2021)我终于解决了!回答吼叫!
最合适的回答,由SO网友:Lautaro Ayosa 整理而成
终于解决了!如果要使用此代码,请确保将选项名称更改为主题使用的名称(更改“theme\\u mods\\u kadence-child”和“kadence\\u global\\u palete”)。
我用过get_option 为了获取最近保存的数据,我在所有站点循环使用update_option 在所有子网站上设置新数据。最后我用了customize_save_after 操作,以便在保存新的自定义程序数据后立即激活此功能。
add_action( "customize_save_after", "update_customizer_networkwide");
function update_customizer_networkwide () {
// Get current theme mods
$theme_mods_kadence = get_option("theme_mods_kadence-child");
$global_palette = get_option("kadence_global_palette");
// loop through all sites and set new theme mods
$sites = get_sites();
foreach ($sites as $site) {
switch_to_blog( $site->blog_id );
update_option("theme_mods_kadence-child", $theme_mods_kadence);
update_option("kadence_global_palette", $global_palette);
restore_current_blog();
}
}
希望这对你们中的一些人有所帮助!