Khi sử dụng một mã nguồn nào bất kỳ thì mã nguồn đó đều có quy ước cách viết, cách đặt tên, khoảng trắng, phẩy, hai chấm khác nhau vì thế bạn nên tuân thủ những quy tắc của mã nguồn bạn đang dùng, ở bài này mình sẽ hướng dẫn viết theo chuẩn của Wordpress, bạn có thể áp dụng khi phát triển theme và plugin cho chính bản thân, hoặc xa hơn là làm freelancer bán trên Themeforest nên nhớ là đúng chuẩn nó mới duyệt nhé chứ không phải thích code gì là code.

Các quy tắc khi viết code trong Wordpress

Sử dụng Tab thụt vào, không dùng Space ( khoảng trắng ). Các dấu bằng ( = ) thẳng hàng, sau dấu bằng là Space mới đến giá trị. Kết thúc luôn có dấu ; ( chấm phẩy ).

Đúng

[Tab]$a = 'Huỳnh Tòng';
[Tab]$b = '20 tuổi';

Sai

[Space]$a = 'Huỳnh Tòng';
[Space]$b = '20 tuổi';

Khi giá trị nằm trong các Function, hoặc trong Array

Thì luôn có khoảng trắng trước và sau trong ( ). Ví dụ:$a = array( $a );.

$a = new WP_Query( array( 'ID' => 1 ) );

$a = array(
    'post_type'     => 'page',
    'post_author'   => 'Huỳnh Tòng',
);

switch ( $a ) {
    case 'foo':
        some_function();
    break;
    case 'bar':
        some_function();
        break;

Khi sử dụng { }, sử dụng elseif không dùng else if

$a = 5;
if( $a == 5 ){ // dấu mở ngoặc cùng hàng với IF
    echo 'Đúng';
} elseif ( $a > 5 && $a <= 10 ){
    echo 'a nằm trong khoảng từ 5 đến 10';
} else {
    echo 'Sai';
}

foreach ( $items as $item ) {
    // Hành động
}

Xuống dòng khi dùng trong function

$a = array(
    'name'  => 'Huỳnh Tòng',
    'age'   => 20
);

$b = sprintf(
    esc_html__( 'Xin chào, %s!', 'larvn' ),
    $name
);

$c = conVat(
    $foo,
    $baz,
    sprintf( __( 'Đây là con %s.' ), 'Mèo' );
);

Sử dụng thẻ mở và đóng <?php ?>

Áp dụng nhiều khiều dòng:

function demo() {
    ?>
        <div>
            <php echo 1; ?>
        </div>
    <?php
}

Áp dụng khi một dòng:

Tôi tên là "<?php echo esc_attr( $name ); ?>"

Không sử dụng Shorthand PHP Tags

Đúng

<?php ... ?>
<?php echo $var; ?>

Sai

<? ... ?>
<?= $var; ?>

Lưu ý nhớ xóa những khoảng trắng dư thừa ở cuối mỗi dòng.

Khi sử dụng khoảng trắng

Luôn đặt khoảng trắng sau các dấu , ( phẩy ), . (dấu chấm) , giữa các thuật toán, so sánh, chuỗi, dấu mở ngoặc.

Đặt khoảng trắng trước và sau dấu ngoặc của if, elseif, foreach, for, switch

if( $x == 23 ){

}

if( $a && b ){

}

if( ! $a ){

}

if ( $a && ( $b || $c ) ){

}


$b = array( 1, 2, 3 );

$c = $baz . '-5';

$term .= 'nội dung';

$a = ( 'jazz' == $music ) ? 'cool' : 'blah';

Khi sử dụng khoảng trắng trong Function

function my_function( $param1 = 'x', $param2 = 'z' ){

}

// Gọi hàm
my_function($param1, function_b( $param2 ) );

foreach( (array) $items as $item  ){

}

$a = (boolean) $b;

function my_function( $a, $b ): float {
    return $a + $b;
}

my_function( ( $x - 1 ) * 5, $y );

Khi sử dụng khoảng trắng trong Array, lưu ý chỉ có khoảng trắng nếu index là biến

$a = $b['name'];
$a = $b[ 'name' ]; // sai

$a = $b[0];
$a = $b[ 0 ]; // sai

$a = $b[ $c ];
$a = $b[$c]; // sai

Khi sử dụng SQL

Luôn viết hoa các thành phần của SQL ví dụ: UPDATE, WHERE.

$var = "dangerous'"; 
$id = some_foo_number();
 
$wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_title = %s WHERE ID = %d", $var, $id ) );

Cách đặt tên Function, Class

Sử dụng viết thường cho tất cả các biến, action, filter, tên các hàm ( không được sử dụng kiểu camelCase ), các từ cách nhau bằng dấu gạch dưới _, đặt tên biến dễ hiểu nhất có thể.

function my_fuction( $a ){

}

Tên các Class nên sử dụng các từ viết hoa chữ và cách nhau bằng dấu gạch dưới

class Walker_Category extends Walker {  }
class WP_HTTP { }

Các hằng số các từ phải viết hoa và cách nhau bằng dấu gạch dưới

define ('DOING_AJAX', true);

Các file viết thường và cách nhau bằng dấu gạch ngang

ten-file.php
ten-plugin.php
class-ten-plugin.php

Các file mẫu nằm trong wp-include phải có prefix -template.php rõ ràng.

general-template.php
single-template.php

Hi vọng qua bài này bạn cũng có thêm kiến thức về các quy định của Wordpress khi lập trình theme hoặc plugin. Hẹn gặp bạn ở bài sau.

Cám ơn bạn đã đọc