我有一个多站点安装和 wp-cli 设置和工作。理想情况下,我需要的是一个运行脚本,它将生成多站点安装中所有站点的列表以及活动主题的名称。
我可以弄清楚如何在单个站点上运行它,但我真正需要的是生成列表的能力。
我们的网络中有大约 400 多个站点,并且每周都在增长。有没有人解决过这个问题?
更新:我现在大部分时间都在工作,尽管我觉得这可以更好地优化。
我将其保存为list_active_themes.sh并通过运行将其输出为 JSON 文件sh list_active_themes.sh > active_themes.json
。
最后一部分是删除作为下面第 9 行结果的尾随逗号——我不知道如何计算返回的site
结果以便执行 if 语句以不输出逗号(如果它是最后一个逗号) for 循环。
这是我的代码:
echo "{"
for site in $(wp site list --domain=sample.domain.com --field=url --quiet)
do
echo -e '\t"site":{'
printf '\t\t"url":"%s",\n' "$site"
echo -e '\t\t"theme":"'|tr '\n' ''
wp theme list --status=active --field=name --url=$site|tr '\n' ''
echo '"'
echo -e '\n\t},'
done
echo "}"