2

テーマがあり、投稿ページの場合、image値があれば表示しています。

YouTubeビデオをレンダリングするプラグインもあり、使用方法は次のとおり{% youtube id_12345 %}です。

私のテンプレート ファイルでvideo、投稿の前付けの値を参照し、コンテンツで使用できるのと同じプラグインでレンダリングすることはできますか?

何かのようなもの:

{% if post.video %}
  {% youtube {{post.video}} %}    # <-- this does not work
{% elsif post.image %}
  <img src="{{ post.image }}" class="post-image" alt="{{ post.title }}">
{% endif %}

ありがとう!

4

2 に答える 2

1

{% %}変数は呼び出しと互換性がないため、この 1 行でプラグインの機能の多くを再現することになりました。私はBetterTubeから始めて、自分のニーズに合わせて修正しました.

{% if post.video %}
  {% capture video_id %}{{ post.video | 
        replace: 'https://www.youtube.com/watch?v=','' | 
        replace: 'https://youtu.be/', '' }}{% endcapture %}
  <figure class='BetterTube' data-youtube-id='{{video_id}}' data-player-width='' 
  data-player-height='' id='{{video_id}}' style='padding-bottom: 56.25%'>
  <a class='BetterTubePlayer' href='http://www.youtube.com/watch?v={{video_id}}' 
  style='background: url(http://img.youtube.com/vi/{{video_id}}/hqdefault.jpg) 50% 
  50% no-repeat rgb(0, 0, 0);'></a><div class='BetterTube-playBtn'></div>&nbsp;
  </figure>
{% elsif post.image %}
  <img src="{{ post.image }}" class="post-image" alt="{{ post.title }}">
{% endif %}

単純にプラグインを呼び出せればよかったのですが、残念ながらそれは不可能だと思います。

于 2015-11-24T13:31:27.310 に答える
0

このプラグインを使用していると思います。プラグインの作成についてはよくわかりませんが、変数を使用できないようです。

代わりにこれを試してみませんか?変数をサポートしているようです。

そうは言っても、そのためにプラグインを実行する手間をかける必要はないと思います。次のコードは問題なく動作するはずです。

{% if post.video %}
  <iframe width="560" height="420" src="http://www.youtube.com/embed/{{ post.video }}?color=white&theme=light"></iframe>
{% elsif post.image %}
  <img src="{{ post.image }}" class="post-image" alt="{{ post.title }}">
{% endif %}
于 2015-11-23T22:37:17.373 に答える