【发布时间】:2015-11-10 20:57:28
【问题描述】:
我已经进行了多站点安装和 wp-cli 设置并可以正常工作。理想情况下,我需要的是一个运行脚本,它将生成多站点安装中所有站点的列表以及活动主题的名称。
我可以弄清楚如何在单个站点上运行它,但我真正需要的是生成列表的能力。
我们的网络中有大约 400 多个网站,并且每周都在增长。有人解决过这个问题吗?
更新:我现在大部分时间都在工作,尽管我觉得这可以更好地优化。
我将其保存为 list_active_themes.sh 并通过运行 sh list_active_themes.sh > active_themes.json 将其输出为 JSON 文件。
最后一部分是删除尾随逗号,它是下面第 9 行的结果——我不知道如何计算返回的 site 结果,以便执行 if 语句不输出逗号 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 "}"
【问题讨论】:
-
我只是一个 bash 人,对 wp-cli 一无所知。但是,如果您可以对单个站点执行某些操作,那么您肯定可以在循环中对多个站点执行相同的操作。