如何使用木材

时间:2016-03-08 20:29:34

标签: wordpress wordpress-theming timber

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

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

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

我尝试使用post.get_filed(' my_wysiwig'),但它没有用。

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

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

所以,我通过这篇文章找到了它。Applying oembed filters to WYSIWYG field

我使用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中打印视频

答案 2 :(得分:0)

我将CMB2广泛用于Timber,我通常的方法是扩展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将使用的类