2017-02-02 6 views
2

WordPressについて学び、いくつかのデフォルトテーマを試してみて、どのように動作するのかを感じています。私はTwentySeventeenテーマに、このセクションに出くわした(twentyseventeen /テンプレート部品/ページ/コンテンツ・フロントpage.php)と、それは私を混同:私はTwentySeventeen WordPressテーマのこのセクションのロジックを理解していません

<?php if (has_post_thumbnail()) : 
     $thumbnail = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'twentyseventeen-featured-image'); 

     $post_thumbnail_id = get_post_thumbnail_id($post->ID); 

     $thumbnail_attributes = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'twentyseventeen-featured-image'); 

     // Calculate aspect ratio: h/w * 100%. 
     $ratio = $thumbnail_attributes[2]/$thumbnail_attributes[1] * 100; 
     ?> 

     <div class="panel-image" style="background-image: url(<?php echo esc_url($thumbnail[0]); ?>);"> 
      <div class="panel-image-prop" style="padding-top: <?php echo esc_attr($ratio); ?>%"></div> 
     </div><!-- .panel-image --> 

<?php endif; ?> 

私はので、多分、私は」、まだ初心者のプログラマーです私は何かが分かりませんが、なぜ次の2つが起こるのか分かりません:

  1. なぜ$ post_thumbnail_id変数は作成されましたが使われなかったのですか? get_post_thumbnail_id($ post-> ID)を絶えず呼び出すのではなく、すぐに作成してみましょう。
  2. $ thumbnailと$ thumbnail_attributesは同じですか?だから、なぜ両方を作成するのですか?

が、これは多くの意味がありません:

<?php if (has_post_thumbnail()) : 

     $post_thumbnail_id = get_post_thumbnail_id($post->ID); 

     $thumbnail = wp_get_attachment_image_src($post_thumbnail_id, 'twentyseventeen-featured-image'); 

     // Calculate aspect ratio: h/w * 100%. 
     $ratio = $thumbnail[2]/$thumbnail[1] * 100; 
     ?> 

     <div class="panel-image" style="background-image: url(<?php echo esc_url($thumbnail[0]); ?>);"> 
      <div class="panel-image-prop" style="padding-top: <?php echo esc_attr($ratio); ?>%"></div> 
     </div><!-- .panel-image --> 

<?php endif; ?> 

私は子供のテーマを作成して、代わりにもともとあったものの上記のコードを使用し、すべてが正常に動作します。元の開発者がそれをコード化する理由と、学生の視点から、いくつかの洞察力が必要な理由について私は頭を悩ましていると思います。

+1

はい。 https://core.trac.wordpress.org/に提出してください。 – Christina

答えて

0

は、元の開発者が行っている可能性:

$thumbnail_attributes = $thumbnail; 

あなたはしなかった理由をモジュール開発を依頼する必要があるだろう。私はそれを脳のおならに書いておきます。

関連する問題