Wordpress - WPBakery页面构建器 - 我可以为单个页面设置多个构建器吗?

时间:2017-11-02 19:01:10

标签: php wordpress visual-composer

我需要为页面设置2个内容框。第一个将显示在页眉内,第二个显示在页面内容中。设计非常复杂,所以我不能使用一个内容框,只是添加一些样式。主要问题是我需要通过WPBakery Page Builder来管理第二个内容框,看起来似乎没有这样的功能。也许我可以创建自定义元素,将其添加到第1行,然后挂钩到the_content过滤器,然后删除包含该元素的行。然后在标题中做几乎相同的事情:检查帖子内容中是否有自定义元素,然后只删除所有内容并回显我的元素。但我担心JS和造型会被打破。也许这里有一些插件?

1 个答案:

答案 0 :(得分:0)

我还没有找到使用2个编辑器的方式,因此我决定让标题为“header”的行出现在标题中,其他内容出现在内容部分中。

<?php //functions.php
/* define which class should we use to separate the content */
define("CLASS_FOR_HEADER", "header"); 
define("HEADER_SECTION_REGEX", "/\[vc_row([^\w\]])el_class=(?:\"|'|)(.*?)".CLASS_FOR_HEADER."(.*?)(?:\"|'|)(.*?)\]+(.*?|\n)+\[\/vc_row]/");

/* Used in the header to leave only header section. 
 * header-part-content is a custom action called in the header by
 * apply_filters('header-part-content', $post->post_content);
 */
 add_filter('header-part-content', function ($content) {
    $matches = [];
    preg_match_all(HEADER_SECTION_REGEX, $content, $matches);
    if (empty($matches) || empty($matches[0])) {
        return "";
    }
    return do_shortcode(implode($matches[0]));
}, 10, 1);


/* Used to cut the header elements out of the content */
add_filter('the_content', function ($content) {
    return preg_replace(HEADER_SECTION_REGEX, "", $content);
}, 1);