在多站点上批量激活主题

时间:2019-02-26 作者:cseto

我有一个多站点和一个新主题,需要在所有子站点中激活。我从2012年的fuxia那里找到了一个答案,我想知道(1)自那以后WordPress中是否有需要更新此过滤器的更改,以及(2)还有什么其他方法可以完成此任务,如使用switch\\u theme函数或使用MySQL(如果要更新选项)。

参考号:Changing Multisite themes on mass

2 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

Fuxia正在使用update_option 在她的回答中,这可能会奏效,但我不建议这样做——这不是设定主题的礼貌方式。

那么我将如何处理这个问题呢?

首先,您只想对所有站点执行一次此操作。因此,使用任何挂钩都没有意义。只需运行一次代码,然后将其删除。

该代码应循环遍历所有站点并设置其主题:

function switch_all_multisite_themes() {
    foreach ( get_sites() as $site ) {
        switch_to_blog( $site->blog_id );

        switch_theme( \'theme\' ); // for example \'twentyten\'

        restore_current_blog();
    }
}
switch_all_multisite_themes();  // run this function only once

SO网友:Patrick

如果您有对服务器的SSH访问权限,那么我强烈建议您使用命令行Wordpress command line tool (wp cli). 您可以使用此功能自动执行许多操作。这是上面的文件activating a theme.

这是我使用的代码。在大约3秒钟内完成了10-15个站点的工作。无需在任何文件中添加/删除代码,所有操作均通过命令行完成。将其放入bash文件中(例如。update_theme.sh), 并使用bash update_theme.sh:

SITES=$(wp site list --field=url)
theme="THEME_NAME_HERE"
for s in $SITES
do 
echo "Working on $s..."
wp theme activate "$theme" --url=$s
done

相关推荐

使用MySQL添加导航菜单项

我想使用PHP将Wordpress nav菜单项插入MySQL。我不认为我可以使用wp\\u create\\u nav\\u menu(),因为我需要从类别中构建一个初步菜单(超过100只猫!)然后,较低级别的管理员可以修改/调整/优化。我不认为wp\\u create\\u nav\\u menu()实际上更新了MySQL数据库。我当然能弄明白,但我只是想知道是否有人能给我一个先发制人的机会。Update wp_posts Update wp_term_relationships u