每页有多个内容区域

时间:2016-10-02 作者:Josh

我有一个复杂的内容问题。每个页面可以有多个节(未知编号),每个节可以有多个容器,每个容器可以有多个内容块(1、2或3)。

我目前已经有了一个关于短代码的理论解决方案,但如果可能的话,我想通过为每个内容块提供wysiwyg编辑器,用UI来解决这个问题。

截面:可以有任意数量的截面(实际/可接受的最大值为10)。容器:一个节可以包含任意数量的行(实际/可接受的最大值为5)。容器:一行必须知道它需要包含多少列。内容块:一行可以包含1、2或3列。

短代码解决方案如下所示:

[section id="summary"] //id is required but can be anything (no spaces)
   [container blocks="1"] //row can have 1, 2 or 3 columns
      [block]
      .content-block
      [/block]
   [/container]
[/section]
[section id="find us"] //id is required but can be anything (no spaces)
   [container blocks="3"] //row can have 1, 2 or 3 columns
      [block]
      .content-block
      [/block]
      [block]
      .content-block
      [/block]
      [block]
      .content-block
      [/block]
   [/container]
[/section]
[section id="team"] //id is required but can be anything (no spaces)
   [container blocks="2"] //row can have 1, 2 or 3 columns
      [block]
      .content-block
      [/block]
      [block]
      .content-block
      [/block]
   [/container]
[/section]
有人对我该怎么做有什么建议吗?

谢谢Josh

2 个回复
SO网友:Dalton Rooney

我觉得这是Advanced Custom Fields "flexible content" 功能对我来说。灵活的内容字段允许您定义多个布局,然后按照所需的任何顺序或组合将它们逐个添加到页面或帖子中。每个布局可以是文本字段、图像、所见即所得编辑器和其他字段类型的组合。

它是客户端上一个出色的UI,一旦掌握了窍门,就可以轻松地在模板中构建自定义前端。

这是一个高级插件,但我多年来一直在构建这种类型的接口,它运行得非常好。我还没有找到其他和它很像的东西。

SO网友:Andy Macaulay-Brook

编写可视化编辑器更容易,因此内容编辑器可以突出显示帖子内容的一部分,而不是试图向编辑屏幕添加大量额外的内容块。

这是我使用的,我想我从很久以前的抄本中获得的基本信息。

// Callback function to insert \'styleselect\' into the $buttons array
function wpse241267_mce_buttons_2( $buttons ) {
    array_unshift( $buttons, \'styleselect\' );
    return $buttons;
}

add_filter(\'mce_buttons_2\', \'wpse241267_mce_buttons_2\');
这只会启用第二行视觉编辑器按钮左端的样式下拉菜单。

现在来看看肉:

function wpse241267_mce_insert_formats( $init_array ) {  

    $style_formats = array(  
        // Each array child is a format with its own settings

        array(  
            \'title\' => \'Find Us Block\',  
            \'block\' => \'div\',  
            \'classes\' => \'find-us\',
            \'wrapper\' => true,
            \'exact\' => true,

        ),
    );  

    // Insert the array, JSON ENCODED, into \'style_formats\'

    $init_array[\'style_formats\'] = json_encode( $style_formats );  

    return $init_array;  

} 

add_filter( \'tiny_mce_before_init\', \'wpse241267_mce_insert_formats\' );
如果需要,您可以使用ID而不是类,但我认为没有任何东西可以阻止用户在页面中添加多个ID。

然后,在可视化编辑器中,可以高亮显示某些内容,应用下拉列表中的此样式,高亮显示的内容将被div 和全班同学一起find-us.

这个exact 参数阻止编辑器合并多个相邻块。根据您的情况,您可能希望删除此项。

相关推荐

shortcode // get posts by ids

我正在寻找一个解决方案,以显示在一个快捷码自定义职位。对于一篇文章来说,这已经按预期工作了,但是我想指定多个ID。比如:[posts id=1、2、3、4]因为我来自前端领域,我缺乏相应地调整功能的方法,希望这里有人能为我提供解决方案。add_shortcode( \'posts\', \'posts_shortcode\' ); function posts_shortcode($atts) { $atts = shortcode_atts( array(&#x