如何利用木材输出所见即所得

时间:2016-03-08 作者:Lisa

我正在使用cmb2创建自定义帖子类型,我有一个名为legacy\\u cycle的自定义帖子类型,它有一个名为challenges\\u one的元盒。在此元数据库中,有几个wysiwyg文件。

    public function challenges_one_metabox(){
    $prefix = \'_challenges_one_\';

    $challenges_one_metabox = new_cmb2_box(array(
        \'id\' => $prefix . \'metabox\',
        \'title\' => \'Challenge 1\',
        \'object_types\' => array(\'legacy_cycle\'),
        \'context\' => \'normal\',
        \'priority\' => \'high\',
        \'show_names\' => true
    ));

    $challenges_one_metabox->add_field(array(
        \'name\' => \'Challenge\',
        \'id\' => $prefix .\'challenge\',
        \'type\' => \'wysiwyg\',
        \'options\' => array(
            \'wpautop\' => true,
            \'media_buttons\' => true,
            \'textarea_rows\' => 10,
            \'quicktags\' => false,
        ),
    ));

    $challenges_one_metabox->add_field(array(
        \'name\' => \'Generate Ideas\',
        \'id\' => $prefix .\'generate_ideas\',
        \'type\' => \'wysiwyg\',
        \'options\' => array(
            \'wpautop\' => true,
            \'media_buttons\' => true,
            \'textarea_rows\' => 10,
            \'quicktags\' => false,
        ),
    ));

    $challenges_one_metabox->add_field(array(
        \'name\' => \'Gather Multiple Perspectives\',
        \'id\' => $prefix .\'gather_multiple_perspectives\',
        \'type\' => \'wysiwyg\',
        \'options\' => array(
            \'wpautop\' => true,
            \'media_buttons\' => true,
            \'textarea_rows\' => 10,
            \'quicktags\' => false,
        ),
    ));

    $challenges_one_metabox->add_field(array(
        \'name\' => \'Research and Revise\',
        \'id\' => $prefix .\'research_and_revise\',
        \'type\' => \'wysiwyg\',
        \'options\' => array(
            \'wpautop\' => true,
            \'media_buttons\' => true,
            \'textarea_rows\' => 10,
            \'quicktags\' => false,
        ),
    ));

    $challenges_one_metabox->add_field(array(
        \'name\' => \'Test Your Mettle\',
        \'id\' => $prefix .\'test_your_mettle\',
        \'type\' => \'wysiwyg\',
        \'options\' => array(
            \'wpautop\' => true,
            \'media_buttons\' => true,
            \'textarea_rows\' => 10,
            \'quicktags\' => false,
        ),
    ));

    $challenges_one_metabox->add_field(array(
        \'name\' => \'Go Public\',
        \'id\' => $prefix .\'go_public\',
        \'type\' => \'wysiwyg\',
        \'options\' => array(
            \'wpautop\' => true,
            \'media_buttons\' => true,
            \'textarea_rows\' => 10,
            \'quicktags\' => false,
        ),
    ));
}
然后,我使用木材作为主题工具来显示输入。

                <div role="tabpanel" class="tab-pane" id="challenge1">
                <h4> Challenge </h4>
                <div>
                    <p>{{post._challenges_one_challenge}}</p>
                </div>
                <h4> Generate Ideas </h4>
                <div>
                    <p>{{post._challenges_one_generate_ideas}}</p>
                </div>
                <h4> Gather Perspectives </h4>
                <div>
                    <p>{{post._challenges_one_gather_multiple_perspectives}}</p>
                </div>
                <h4> Research & Revise </h4>
                <div>
                    <p>{{post._challenges_one_research_and_revise}}</p>
                </div>
                <h4>Test Your Mettle</h4>
                <div>
                    <p>{{post._challenges_one_test_your_mettle}}</p>
                </div>
                <h4> Go Public </h4>
                <div>
                    <p>{{post._challenges_one_go_public}}</p>
                </div>
            </div>
然而,所见即所得字段无法正常工作。如果它只包含文本或图像就可以了,但当我在所见即所得编辑器中的自定义帖子类型下插入youtube视频时,它只输出以下信息。

“[嵌入]https://www.youtube.com/watch?v=MS91knuzoOA[/embed]“我尝试使用post.get\\u filed(\'my\\u wysiwig\'),但没有成功。

我想知道如何正确输出字段?非常感谢!

1 个回复
SO网友:Lisa

所以,我通过这篇帖子找到了答案。。Applying oembed filters to WYSIWYG field

我使用木材/细枝的解决方案是在单根中获取数据。php,下面是代码:

$post_meta = get_post_meta(get_the_ID(),\'my_wysiswg\', true);
$post_meta = $wp_embed->autoembed( $post_meta );
$post_meta = $wp_embed->run_shortcode( $post_meta );
$post_meta = do_shortcode( $post_meta );
$post_meta = wpautop( $post_meta );
$post->my_wysiswyg = $post_meta;
然后我可以用一种自定义的帖子类型打印视频。通过使用{{post.my\\u wysiswyg}}创建小枝

相关推荐

Can I make plugins required?

我正在开发自己的Wordpress主题,将用于多个客户端。它有一个主题选项页面,这样我每次都可以轻松自定义网站,但我也会在我制作的每个网站上使用一些插件(如SEO插件、安全性等)。有没有办法让它们成为“必需的”,这样我就可以得到这些插件的列表,这样当我在新网站上安装主题时就不必在插件目录中找到它们了?