WP CLI是这里最简单的选项。
首先,我们需要一个可以存储所需站点的数组/列表:
results=()
然后,我们得到所有站点的列表作为变量,并循环它们:
blogs=$(wp site list --fields="blog_id" --format="csv")
for entry in $blogs
do
if [ "${entry}" == "blog_id" ]; then
continue # skip the CSV header
fi
接下来,抓取站点活动主题:
theme=$(wp theme list --status=active --format=csv --fields="name" --url="${entry}" | sed -n 2p)
我用的是
| sed -n 2p
获取第二行输出以跳过CSV标题。
然后,如果站点主题与我们要查找的匹配,请将其添加到列表中:
if $theme == \'mytheme\';
if [ "${theme}" == "mytheme" ]; then
results+=($entry)
fi
然后我们结束我们的循环
done
将列表转换为逗号分隔的字符串,并将其传递给
wp site list
通过
--sites__in
:
wp site list --site__in="${results[*]}"
我们还可以交换主题检索和检查
wp plugin is-active
如果我们想按活动插件过滤,请调用,例如。
wp plugin is-active hello
https://developer.wordpress.org/cli/commands/plugin/is-active/