Thực hành tốt nhất cho PHP


11

Khi thực hiện một mẫu như single.php và bạn có php được gói trong html, tốt nhất là:

  1. Bắt đầu + Dừng PHP? ví dụ

     <h1 class="post-tilte"><?php the_title(); ?></h1>
     <p class="post-content"><?php the_content();?></p>
    

Hoặc là

  1. Echo HTML và Escape PHP? Ví dụ -

    <?php echo '<h1 class="post-title">' . get_the_title() . '</h1>
    <p class="post-content"' . get_the_content() . '</p>
    

Tôi không có lựa chọn sẵn và thấy mình làm cả hai, chỉ tò mò muốn nghe một vài suy nghĩ


6
Phương pháp đầu tiên là thiết kế thân thiện hơn. Vì vậy, khi trong các mẫu có nhiều HTML và một ít PHP, hãy thực hiện cái đầu tiên. Cái thứ hai rất hữu ích khi có nhiều PHP và một ít HTML. Làm điều đó trong functions.phphoặc bổ sung, vv
Fayaz

3
Bạn cũng quên mấtprintf( '<h1 class="post-title">%s</h1>', get_the_title() );
Howdy_McGee

Câu trả lời:


10

Câu hỏi đó chỉ có liên quan, bởi vì WordPress sử dụng kết hợp từ ngôn ngữ mã hóa và ngôn ngữ bố cục. Nếu bạn sẽ sử dụng một ngôn ngữ mẫu, cú pháp, thì chủ đề này không liên quan. Nhưng với câu hỏi của bạn. Nếu bạn sử dụng nguồn ví dụ của mình cho Chủ đề, ngôn ngữ bố cục nhiều hơn như html, thì tôi thích ngôn ngữ đầu tiên - nó dễ đọc hơn nhiều đối với người thiết kế và người dùng, phải đọc đánh dấu. Dễ dàng hơn để tạo một cái nhìn tổng quan về đánh dấu, có bạn các thẻ mở và đóng, v.v.

Đối với các phần bổ trợ, mã có nhiều logic và luồng hơn là ví dụ thứ hai dễ thực hiện hơn. Chủ đề chính là php, không phải đánh dấu và nó sẽ hiển thị trong nguồn. Đó cũng là một điểm cần suy nghĩ để loại trừ đánh dấu này trong các tệp mẫu và tách biệt đánh dấu khỏi logic.


1
Một lợi ích khác của cái đầu tiên là một số trình soạn thảo nhất định sẽ làm nổi bật thẻ mở hoặc đóng tương ứng nếu bạn đặt con trỏ vào đó nhưng cái sau thường sẽ phá vỡ sự thuận tiện đó.
MonkeyZeus


5

Như đã giải thích trong câu trả lời ở trên, phương thức đầu tiên là thân thiện với người thiết kế & phương pháp thứ hai có thể phù hợp trong các trường hợp bổ trợ và mã php phức tạp trong đó số lượng thẻ html chỉ là số ít.

Nhưng hầu hết các thẻ mẫu WordPress có beforeaftercác tham số và thích hợp hơn để sử dụng mã html của bạn bên trong lệnh gọi hàm.

ví dụ trong trường hợp của the_titlenó có ba tham số

the_title( $before, $after, $echo );

bạn có thể chuyển html của mình sang trước và sau các tham số như bên dưới

the_title( '<h2 class="title">', '</h2>', true );

ưu điểm của phương pháp này là

  • Nhà thiết kế thân thiện
  • sẽ không in ra các thẻ html nếu tiêu đề trống
  • có thể được sử dụng trong các mã php phức tạp cũng như trong các tệp mẫu đơn giản

0

Phương pháp đầu tiên được ưa thích hơn vì:

  • Nó phân tách rõ ràng bố cục HTML cố định khỏi nội dung động.
  • Nó dễ đọc hơn.
  • Nó được hỗ trợ tốt hơn bằng cách tô sáng cú pháp trong hầu hết các trình soạn thảo, bởi vì các thuộc tính html trong chuỗi thường không được nhận dạng.
  • Nó ngăn bạn xen kẽ HTML và PHP quá dễ dàng.

Vì những lý do đã nêu ở trên, phương pháp đầu tiên dẫn đến mã dễ hiểu hơn và do đó dễ bảo trì hơn.

Theo kinh nghiệm của tôi, trong một số tình huống, có thể thuận tiện hơn khi sử dụng phương pháp thứ hai. Tuy nhiên, đó thường là do thiết kế (phần mềm) yếu và nên được xem là dấu hiệu cảnh báo.


0

Ví dụ mã của bạn là cận biên vì nó chỉ hiển thị hai dòng mã, nhưng tôi tin rằng câu trả lời chung là khá tình huống. Nếu bạn đang sử dụng một dòng PHP trong một khối HTML, hãy sử dụng phương thức đầu tiên. Nếu bạn đang sử dụng một dòng HTML trong một khối PHP, hãy đi với dòng thứ hai.

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.