1

我正在使用 cmb2 创建自定义帖子类型,并且我有一个名为 legacy_cycle 的自定义帖子类型,其中包含几个所见即所得的文件。

比我使用 Timber 作为主题工具来显示输入。但是,所见即所得的字段无法正常工作。如果它只包含文本或图像很好,但是当我在自定义帖子类型下的所见即所得编辑器中插入youtube视频时它只输出以下信息,但本机wordpress编辑器的输出很好。

 " [embed]https://www.youtube.com/watch?v=MS91knuzoOA[/embed]"

我尝试使用 post.get_filed('my_wysiwig'),但它不起作用。

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

4

3 回答 3

1

所以,我通过这篇文章想通了..将 oembed 过滤器应用于所见即所得字段

我使用木材/树枝的解决方案是在 single.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_wysiswyg}} 在 single-custom-post-type.twig 中打印视频

于 2016-03-14T17:03:04.940 回答
0

我在 Timber 中广泛使用 CMB2,我通常的方法是扩展TimberPost和添加获取元数据的方法。对于所见即所得的字段,如下所示:

class CustomPost extends TimberPost {

  public function my_wysiswg(){

    $metadata = get_post_meta($this->ID, 'my_wysiswg', true);

    if ($metadata){
      return apply_filters('the_content', $metadata);
    }

  }

}

您可以使用第二个参数指定 Timber 将使用哪个类Timber::get_posts

于 2016-03-25T20:44:01.850 回答
0

看起来您只需要在该字段中处理短代码。这应该将它们转换为实际的 YouTube 视频:

{{ post.get_field('my_wysiswyg') | shortcodes }}
于 2016-03-14T14:15:10.183 回答