Trong quá trình làm việc với wordpress mình đã góp nhặt được một số hàm thường xuyên sử dụng, bởi vì nó rất hữu ích, để tránh mất thời gian viết hàm mới. Mình xin chia sẻ cho bạn một số function wp thông dụng hy vọng sẽ giúp ích cho bạn.

wp_head

wp_head() là function dùng để gắn các tài nguyên vào website của bạn, ví dụ như styles, script hoặc meta tags. Tài nguyên này bao gồm của theme và plugins. Nên nhớ đặt wp_head ngay trước thẻ đóng </head>, xem ví dụ bên dưới:

<head>
    <!-- First add the elements you need in <head>; then last, add: -->
    <?php wp_head(); ?>
</head>

wp_footer

Cũng gần giống như wp_head, wp_footer là function wp dùng để gắn các tài nguyên javascripts của theme và plugins vào website. Nên nhớ đặt wp_footer trước thẻ đóng </body>

<body>
    <!-- All the document's HTML goes first. -->
    <!-- Then last, before closing the body tag, add: -->
    <?php wp_footer(); ?>
</body>

get_header

get_header( string $name = null )

Dùng để load header của theme, có nghĩa là nó sẽ copy toàn bộ code từ file header.php vào file hiện tại của bạn đang code. Trong trường hợp bạn muốn tạo một template mới cho page.

Trong theme của bạn sẽ có 1 file header.php, khi bạn sử dụng hàm get_header() thì file header.php sẽ được load lên.

Nếu bạn có nhiều header khác nhau, header-home.phpheader-404.php thì bạn hãy điền thêm tham số cho hàm.

Lưu ý: file cần nằm ở thư mục gốc của theme.

<?php
if ( is_home() ) :
    get_header( 'home' );
elseif ( is_404() ) :
    get_header( '404' );
else :
    get_header();
endif;
?>

get_footer

get_footer( string $name = null )

Tương tự như get_header(), dùng để load footer.php của theme. Nếu bạn có file footer là footer-special.php thì bạn điền tham số vào hàm:

<?php get_footer( 'special' ); ?>

Lưu ý: file cần nằm ở thư mục gốc của theme.

wp_hash_password

wp_hash_password( string $password )

Dùng để mã hóa password trước khi bạn muốn lưu vào database. Hoặc bạn cần kiểm tra xem mật khẩu có hợp lệ không, khi so sánh password nhập vào so với password trong database.

$hash = wp_hash_password( $password );
<?php
$wp_hasher = new PasswordHash(8, TRUE); // 8 vòng băm

$password_hashed = '$P$B55D6LjfHDkINU5wF.v2BuuzO0/XPk/';
$plain_password = 'test';

if($wp_hasher->CheckPassword($plain_password, $password_hashed)) {
    echo "YES, Matched";
} else {
    echo "No, Wrong Password";
}
?>

wp_get_current_user

Trả về thông tin của user hiện tại đang đã đăng nhập. Bao gồm user login, password email, first name, last name, display name, ID.

<?php
$current_user = wp_get_current_user();
 
/*
 * @example Safe usage: $current_user = wp_get_current_user();
 * if ( ! ( $current_user instanceof WP_User ) ) {
 *     return;
 * }
 */
printf( __( 'Username: %s', 'textdomain' ), esc_html( $current_user->user_login ) ) . '<br />';
printf( __( 'User email: %s', 'textdomain' ), esc_html( $current_user->user_email ) ) . '<br />';
printf( __( 'User first name: %s', 'textdomain' ), esc_html( $current_user->user_firstname ) ) . '<br />';
printf( __( 'User last name: %s', 'textdomain' ), esc_html( $current_user->user_lastname ) ) . '<br />';
printf( __( 'User display name: %s', 'textdomain' ), esc_html( $current_user->display_name ) ) . '<br />';
printf( __( 'User ID: %s', 'textdomain' ), esc_html( $current_user->ID ) );
printf( __( 'User Password: %s', 'textdomain' ), esc_html( $current_user->user_pass ) );
?>

wp_safe_redirect

wp_safe_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )

Chuyển hướng an toàn đến url khác, function sử dụng wp_redirect().

$location là url bạn muốn chuyến tiếp đến, mặc định sẽ chuyến tiếp đến wp-admin nếu host không cho phép. Nhằm để ngăn cản redirect đến những trang web độc hại của host khác.

Sử dụng:

// Chuyển tiếp đến trang chủ của website.
wp_safe_redirect(home_url());
// Chuyển tiếp đến trang khác.
wp_safe_redirect('https://google.com');

Nếu bạn cần phải chuyển tiếp đến trang web khác, hãy dũng wp_redirect để chắc chắc redirect thành công.

home_url

home_url( string $path = '', string|null $scheme = null )

Trả về url home của website, bạn nên sử dụng những url tương đối, bởi vì khi bạn đặt url tuyệt đối sau này trang web đổi sang domain khác, thì sẽ không chạy được.

Bạn có thể sử dụng như sau:

Lấy trang chủ

$url = home_url();
echo $url;
//Output: http://www.your-domain.com

Thêm ssl

$url = home_url( $path = '/', $scheme = https );
echo $url;
//Output: https://www.your-domain.com

Khác

<?php
$url = home_url('aaa/bbb');
echo $url;
//Output: https://www.your-domain.com/aaa/bbb
?>

get_template_directory_uri

get_template_directory_uri()

Trả về url của template

Sử dụng:

<img src="<?php echo get_template_directory_uri(); ?>/images/aternus.png" alt="" width="" height="" />

get_stylesheet_directory_uri

Trả về url của child theme nếu có. Khi không có child theme sẽ trả về url của theme hiện tại.

Sử dụng:

<img src="<?php echo get_stylesheet_directory_uri(); ?>/images/aternus.png" alt="" width="" height="" />
add_action('wp_enqueue_scripts', 'wpdocs_scripts_method');
 
/*
 * Enqueue a script with the correct path.
 */
function wpdocs_scripts_method() {
    wp_enqueue_script(
        'custom_script',
        get_stylesheet_directory_uri() . '/js/custom_script.js',
        array('jquery')
    );
}

is_user_logged_in

is_user_logged_in()

Kiểm tra xem user có đang login hay không, trả về true / false.

<?php
if ( is_user_logged_in() ) {
    echo 'Xin chào, bạn đã đăng nhập!';
} else {
    echo 'Xin chào, bạn là khách!';
}
?>

wp_logout_url

wp_logout_url( $logout_redirect )

Trả về URL để đăng xuất.

$logout_redirect là URL sẽ chuyển đến sau khi đăng xuất.

Leave a Reply

Your email address will not be published.