Warning: Undefined array key "vi" in /home/host1693024/word-press.day/htdocs/www/875348534534.php on line 1665
Cách tránh xung đột mã ngắn chủ đề và plugin

Cách tránh xung đột mã ngắn chủ đề và plugin


Tất cả chúng ta đều đã từng trải qua điều này: bạn mua một chủ đề cao cấp thực sự tuyệt vời và bạn cũng mua một plugin tuyệt vời (ví dụ như một plugin của tôi!) Nhưng việc kết hợp chủ đề và plugin lại với nhau hoàn toàn không có tác dụng. Vậy thì sao? Plugin hoặc chủ đề có lỗi không?

Hầu hết thời gian điều này xảy ra là khi bạn đang sử dụng mã ngắn. Hãy tưởng tượng bạn vừa mua một plugin để xử lý “lời chứng thực”. Bạn đọc kỹ tài liệu và biết rằng để hiển thị lời chứng thực, bạn cần bao gồm mã ngắn [lời chứng thực] sau. Nhưng khi bạn làm như vậy, không có gì xuất hiện.

Lý do tại sao mã ngắn không được thay thế bằng lời chứng thực là vì chủ đề VÀ plugin của bạn xác định cùng một mã ngắn.

Vì các tệp plugin được tải trước các tệp chủ đề nên chúng bị ghi đè và không được tính đến đầy đủ trong trường hợp này.

Đó là lý do tại sao tôi muốn chỉ cho bạn một phương pháp đơn giản để hủy đăng ký mã ngắn chủ đề và thay thế nó bằng mã ngắn của plugin.

Bước 1: Tạo một Plugin đơn giản

Chúng ta cần tạo một plugin đơn giản:

<?php
/*
Plugin Name: Avoid Shortcodes conflicts
Plugin URL: http://remicorson.com
Description: A little plugin to avoid conflicts bewteen shortcodes
Version: 1.0
Author: Remi Corson
Author URI: http://remicorson.com
Contributors: corsonr
Text Domain: rc_asc
Domain Path: languages
*/

Bước 2: Kiểm tra xem Shortcode có tồn tại không

Đây là bước quan trọng nhất. Đó là nơi bạn kiểm tra sự tồn tại của shortcode. WordPress có biến toàn cục “$shortcode_tags” lưu trữ danh sách tất cả các mã ngắn đã đăng ký. Vì vậy, chúng ta chỉ cần xem qua biến này và kiểm tra xem mã ngắn mà chúng ta đang tìm kiếm có nằm trong biến đó hay không.

/**
 * Check if a shortcode is already registered
 *
 * @since 1.0
 *
 * @param $shortcode string The shortcode slug to test
 *
 * @return void
 */
function rc_asc_shortcode_exists( $shortcode = false ) {
	
	global $shortcode_tags;

	//echo '<pre>'; var_dump($shortcode_tags); echo '</pre>';
 
	if ( ! $shortcode )
		return false;
 
	if ( array_key_exists( $shortcode, $shortcode_tags ) )
		return true;
 
	return false;

}

Đây là hàm chung mà chúng ta sẽ sử dụng trong một hàm cụ thể hơn bao gồm cả slug shortcode cần tìm. Hàm này trả về TRUE nếu shortcode tồn tại hoặc FALSE nếu không tồn tại.

Bước 3: Xóa mã ngắn và đăng ký mã mới

Hàm tiếp theo là sử dụng rc_asc_shortcode_exists() mà chúng ta vừa tạo. Nó chỉ cần kiểm tra sự tồn tại của shortcode, thay thế nó nếu nó tồn tại hoặc thêm shortcode nếu nó chưa được đăng ký.

/**
 * Check if a shortcode is already registered and replace it
 *
 * @since 1.0
 *
 * @return void
 */
function rc_asc_replace_shortcode() {

	$shortcode = 'testimonials';
	
	if( rc_asc_shortcode_exists( $shortcode ) ) {
		remove_shortcode( $shortcode );
		add_shortcode( $shortcode, 'my_testimonials_function' );
	} else {
		add_shortcode( $shortcode, 'my_testimonials_function' );
	}
}

Bước 4: Xác định hàm Shortcode mới

Tất cả những gì bạn phải làm là xác định nội dung của hàm “my_testimonials_shortcode()” và thế là xong!

/**
 * Creates the new shortcode
 *
 * @since 1.0
 *
 * @return void
 */
function my_testimonials_function() {

	return 'this replaces the previous shortcode!';
}

Như bạn có thể thấy, mã ngắn đã khai báo trước đó hiện được thay thế bằng mã ngắn phù hợp.