【问题标题】:Determine which Avada Fusion Builder Elements are being used on a Wordpress site确定在 Wordpress 网站上使用了哪些 Avada Fusion Builder Elements
【发布时间】:2020-03-13 01:49:03
【问题描述】:

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

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

这是否是 Avada 中某个地方的功能,我完全缺少并且在任何地方都找不到文档?

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

【问题讨论】:

    标签: wordpress


    【解决方案1】:

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

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

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

    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);

    【讨论】:

      猜你喜欢
      • 2019-07-31
      • 1970-01-01
      • 1970-01-01
      • 2017-05-10
      • 1970-01-01
      • 2016-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多