首页 > 解决方案 > 确定在 Wordpress 网站上使用了哪些 Avada Fusion Builder Elements

问题描述

有什么方法可以确定 WordPress 网站当前正在使用哪些 Fusion Builder Elements?

我为正在处理的网站启用了很多元素,我想禁用我不需要的元素。问题是,这是我从另一个开发人员那里获得的完整站点,我真的不希望每次禁用某些东西时都必须搜索整个站点并检查可能损坏的元素。

这是 Avada 中某处的功能,我完全丢失了,我在任何地方都找不到文档?

我正在考虑编写一个小插件来检查wp_posts表格并搜索[fusion_xxxx]元素并显示使用的构建器元素列表。然后我可以确定在整个站点中使用哪些。
出于某种原因,这是一个糟糕的时期吗?

标签: wordpress

解决方案


我编写了一个插件,它将在数据库上运行查询并显示使用的元素以及每个元素的使用次数。很简单,但我认为它可以完成工作。我很可能会遗漏一些关于信息存储方式的非常明显的东西。

这是在 ajax 调用中完成的,在浏览器中以格式化列表的形式显示,等等。

Anywho,这是插件中实际收集信息的部分:

protected function getElementsFromTable($table, $field, &$element_collection)
{
    global $wpdb;

    $sql = "SELECT * FROM " . $table . " WHERE `" . $field . "` LIKE '%[/fusion_%';";
    $results = $wpdb->get_results($sql);

    foreach ($results as $item) {
        preg_match_all("/\[\/fusion_(.+?)\]/", $item->{$field}, $elements);

        // No results found, bail!
        if (!count($elements[1])) {
            continue;
        }

        // Store the results
        foreach ($elements[1] as $element) {
            if (!array_key_exists('fusion_' . $element, $element_collection)) {
                $element_collection["fusion_" . $element] = 1;
            } else {
                $element_collection["fusion_" . $element]++;
            }
        }
    }
}

arsort($element_collection);

用法:

$this->getElementsFromTable("wp_posts", "post_conent", $element_collection);


推荐阅读