Wordpress 如何使用木材输出cmb2所见即所得

Wordpress 如何使用木材输出cmb2所见即所得,wordpress,wordpress-theming,timber,Wordpress,Wordpress Theming,Timber,我正在使用cmb2创建自定义post类型,我有一个名为legacy_cycle的自定义post类型,它包含几个wysiwyg文件 然后我使用木材作为主题工具来显示输入。但是,所见即所得字段无法正常工作。如果它只包含文本或图像就可以了,但是当我在所见即所得编辑器中的自定义post类型下插入youtube视频时,它只输出以下信息,但是本地wordpress编辑器的输出就可以了 " [embed]https://www.youtube.com/watch?v=MS91knuzoOA[/embed]"

我正在使用cmb2创建自定义post类型,我有一个名为legacy_cycle的自定义post类型,它包含几个wysiwyg文件

然后我使用木材作为主题工具来显示输入。但是,所见即所得字段无法正常工作。如果它只包含文本或图像就可以了,但是当我在所见即所得编辑器中的自定义post类型下插入youtube视频时,它只输出以下信息,但是本地wordpress编辑器的输出就可以了

 " [embed]https://www.youtube.com/watch?v=MS91knuzoOA[/embed]"
我尝试使用post.get_filed(“我的所见即所得”),但没有成功


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

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

{{ post.get_field('my_wysiswyg') | shortcodes }}

所以,我通过这篇文章找到了答案

我使用timber/twig的解决方案是在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}}

在单个定制的post-type.twig中打印视频。我广泛地使用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::get_posts

指定使用哪个类Timber。您应该能够通过使用
apply_过滤器('the_content',$post_meta)