我如何才能只列出使用特定主题或插件的网站?

时间:2020-11-18 作者:iroast

我需要搜索数十个WordPress多站点(支持网络)安装,以查找使用特定插件的站点。

如何仅列出使用特定主题或插件的站点,最好使用WP CLI或数据库查询?

1 个回复
SO网友:Tom J Nowell

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/