サンドイッチコーディング標準


8

私は最近、WordPressテンプレート用のwp-lunch.phpファイルコードを見つけました。適切なWordPressコーディング標準に従っている場合、これはどのように見えますか?

wp-lunch.php

<?php if ( current_user_can('has_sandwich') ): ?>

    <?php get_sandwich_header(); ?>

        <?php while( has_filling() ): the_filling(); ?>

            <?php get_sandwich_part( 'thick_layer',
    get_filling() ); ?>

        <?php endwhile; ?>

    <?php get_sandwich_footer(); ?>

<?php endif; ?>

すばらしい質問です。ゲームを始めましょう!
アダム

私はここで尋ねるのに最適な質問だと思います。どのようにthe_filling()見えるべきですか
Pieter Goosen '24年

これらのWP開発者は週末に何をしますか?;)
ニコライ

回答:


5

ユーザーがサンドイッチを食べることができない場合はどうなりますか?WSOF?

平均的なデフォルトのテーマテンプレートを使用したい場合は、

// eat-sandwich.php (as @Rarst said avoid wp-lunch.php as it's not part of WP core)

get_header( 'sandwich' );

if ( current_user_can( 'eat_sandwich' ) ) {

  get_template_part( 'eat-sandwich', 'content' );

} else { // user can't eat sandwich. An apple?

  $alternative = apply_filters( 'alternative_to_sandwich', 'apple' );

  if ( 'sandwich' == $alternative ) {
     // No sandwich allowed!
     $alternative = 'apple';
  }

  get_template_part( "eat-$alternative", 'content' );

}

get_footer( 'sandwich' );

その後

// eat-sandwich-content.php

$fillings = get_fillings_query(); // in functions.php

if ( $fillings->have_posts() ) : while ( $fillings->have_posts() ) :

   get_template_part( 'filling', get_filling_type() );

endwhile;

wp_reset_postdata();

else :

  _e( 'Sorry, no fillings found. Eating an apple may help to stop hunger.', 'txtdomain');

endif;

パンはサンドイッチのフィリングおよび必須部分とは見なされないため、パンがない場合、このクエリは失敗します。パンとフィリングの一部ではget_ingredients();なく、追加することをお勧めしget_fillings_query();ます。また、塗りつぶしには前面に面したJSON APIが必要です。)
Wyck

5
<!-- file shouldn't be named wp-lunch.php as it's not part of WP core -->

<?php if ( current_user_can( 'eat_sandwich' ) ): // more specific verb makes more sense to me ?>

    <?php get_header( 'sandwich' ); // native function accepts type argument ?>

    <?php while ( have_fillings() ): the_filling(); // maybe native API, but feels acceptable wrapper for semantics ?>

        <?php get_template_part( 'filling', get_filling_type() ); // native API, what would be `thick_layer` base? ?>

    <?php endwhile; wp_reset_postdata(); // reset $post global ?>

    <?php get_footer( 'sandwich' ); // native function accepts type argument ?>

<?php endif; ?>

コーディングスタイルなどに合わせて調整された間隔

草原で食べた小枝のサンドイッチテンプレートは次のようになります。

{% if ( current_user_can( 'eat_sandwich' ) ) %}

    {% include 'header-sandwich.twig' %}

    {% loop fillings %}

        {% include 'filling-' ~ get_filling_type() ~ '.twig' ignore missing %}

    {% endloop %}

    {% include 'footer-sandwich.twig' %}

{% endif %}

3
すべてが<?php私に悪寒を与えます。
gmazzap

7
@GM口ひげテンプレートの導入について考えましたが、サンドイッチに口ひげが欲しいのは誰ですか?
Rarst、2014年

4
サンドイッチに小枝を見つけた場合、それは処理できましたが、口ひげはできませんでした。
アダム

1

すでにインデントされている場合、すべての開始および終了の区切り文字やクリアな行間は必要ありません。

<?php
if ( current_user_can( 'has_sandwich' ) ) {
    get_sandwich_header();
    while ( has_filling() ) {
        the_filling();
        get_sandwich_part( 'thick_layer', get_filling() );
    }
    get_sandwich_footer();
}

後でおそらくデータもリセットされます...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.