Tiêu chuẩn mã hóa bánh sandwich


8

Gần đây tôi đã phát hiện mã cho một wp-lunch.phptệp dành cho mẫu WordPress, nó sẽ trông như thế nào nếu tuân theo các tiêu chuẩn mã hóa WordPress phù hợp?

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; ?>

Câu hỏi tuyệt vời, hãy để các trò chơi bắt đầu!
Adam

Tôi nghĩ rằng câu hỏi hoàn hảo để hỏi ở đây, nên the_filling()trông như thế nào
Pieter Goosen

Tất cả những nhà phát triển WP làm gì vào cuối tuần? ;)
Nicolai

Câu trả lời:


5

Điều gì xảy ra nếu người dùng không có khả năng ăn bánh sandwich? WSOF?

Nếu tôi muốn theo dõi các mẫu chủ đề mặc định trung bình, tôi sẽ chọn

// 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' );

Và sau đó

// 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;

Truy vấn này sẽ bị hỏng nếu không có bánh mì, vì bánh mì không được coi là nhân và là một phần thiết yếu của bánh sandwich. Tôi khuyên bạn nên thêm get_ingredients();thay vì get_fillings_query();bánh mì và làm đầy là một phần của. Ngoài ra, phần điền phải có API JSON phía trước;)
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; ?>

Khoảng cách điều chỉnh cho kiểu mã hóa, v.v.

Mẫu bánh sandwich với một chút Twig, được ăn trên đồng cỏ sẽ trông giống như:

{% 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
Tất cả những điều đó <?phpcho tôi sự ớn lạnh.
gmazzap

7
@GM Tôi nghĩ về việc giới thiệu mẫu Mustache, nhưng ai muốn ria mép trong bánh sandwich của họ?
Hết

4
Nếu tôi tìm thấy một Twig trong bánh sandwich của tôi, tôi có thể xử lý nó, nhưng không phải là một bộ ria mép.
Adam

1

Không cần tất cả các dấu phân cách mở và đóng hoặc xóa các đường kẻ rõ ràng khi đã thụt lề:

<?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();
}

Có lẽ cũng nên thiết lập lại dữ liệu điền vào sau đó ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.