Ví dụ khối wordpress

Chặn (Khối) là những thành phần nhỏ trong website. Có thể là một khối HTML được chèn vào nội dung bài viết, thanh bên, đầu trang, chân trang

Nội dung chính Hiển thị

  • Bước 01. Tạo Post Type mới cho WordPress
  • Bước 02. Tạo Trường tùy chỉnh để lưu Khối nội dung
  • Bước 03. Viết mã ngắn để hiển thị khối nội dung
  • Bước 04. Hiển thị tên Shortcode trong Field shortcode
  • Bước 05. Hiển thị tên Shortcode trong trang danh sách Block
  • Kết luận

Khối chức năng này thường được chèn bằng shortcode. Trong bài viết này, tôi sẽ hướng dẫn bạn cách tự xây dựng chức năng Block cho WordPress giúp bạn linh hoạt hơn trong việc trang trí website của mình

Ví dụ khối wordpress

Trong bài viết này, tôi sẽ sử dụng plugin bổ sung Trường tùy chỉnh nâng cao để tạo trường bổ sung. Cho nên trước khi đi vào thực thi, bạn hãy cài đặt plugin này trước. Trường tùy chỉnh nâng cao để tạo thêm trường. Cho nên trước khi đi vào thực thi, bạn hãy cài đặt plugin này trước

Bước 01. Tạo Post Type mới cho WordPress

Đầu tiên, bạn hãy tạo một Post Type có tên là Block, hoặc bất kỳ tên nào mà bạn muốn. Còn cách tạo Loại bài đăng như thế nào bạn nên tham khảo bài viết Loại bài đăng tùy chỉnh trong WordPress toàn tập Loại bài đăng có tên là Chặn hoặc bất kỳ tên nào bạn muốn. Còn cách tạo Loại bài đăng như thế nào bạn nên tham khảo bài viết Loại bài đăng tùy chỉnh trong WordPress toàn tập

Dưới đây là mã tham khảo

<?php 
function create_custom_post_type_blocks()
{
    $label = array(
        'name' => 'Block',
        'singular_name' => 'Block',
        'menu_name'           => 'Block',
        'all_items'           => 'Tất cả Block',
        'view_item'           => 'Xem Block',
        'add_new_item'        => 'Thêm Block',
        'add_new'             => 'Thêm Block mới',
        'edit_item'           => 'Sửa Block',
        'update_item'         => 'Cập nhật Block',
        'search_items'        => 'Tìm kiếm Block',
        'not_found'           => 'Không tìm thấy',
        'not_found_in_trash'  => 'Không tìm thấy trong thùng rác',
    );


    $args = array(
        'labels' => $label,
        'description' => '',
        'supports' => array(
            'title'
        ), //Các tính năng được hỗ trợ trong post type
        'taxonomies' => array(''), //Các taxonomy được phép sử dụng để phân loại nội dung
        'hierarchical' => false, //Cho phép phân cấp, nếu là false thì post type này giống như Post, true thì giống như Page
        'public' => false, //Kích hoạt post type
        'show_ui' => true, //Hiển thị khung quản trị như Post/Page
        'show_in_menu' => true, //Hiển thị trên Admin Menu (tay trái)
        'show_in_nav_menus' => true, //Hiển thị trong Appearance -> Menus
        'show_in_admin_bar' => true, //Hiển thị trên thanh Admin bar màu đen.
        'menu_position' => 5, //Thứ tự vị trí hiển thị trong menu (tay trái)
        'menu_icon' => 'dashicons-info', //Đường dẫn tới icon sẽ hiển thị
        'can_export' => true, //Có thể export nội dung bằng Tools -> Export
        'has_archive' => true, //Cho phép lưu trữ (month, date, year)
        'exclude_from_search' => true, //Loại bỏ khỏi kết quả tìm kiếm
        'publicly_queryable' => true, //Hiển thị các tham số trong query, phải đặt true
        'capability_type' => 'post', //Phân quyền như post
    );

    register_post_type('blocks', $args); //Tạo post type với slug tên là products và các tham số trong biến $args ở trên

}
add_action('init', 'create_custom_post_type_blocks');
?>

Bước 02. Tạo Trường tùy chỉnh để lưu Khối nội dung

Bạn vào menu “Custom Fields” => Tạo Field Group mới, tôi tạm đặt tên là “Block“. Trường tùy chỉnh” => Tạo Nhóm trường mới, tôi tạm đặt tên là “Chặn“

Trong đó bạn tạo ra 2 trường. Shortcode and Content

  • Mã ngắn. Đây là trường văn bản để hiển thị tên mã ngắn cho người dùng biết để chèn vào vị trí cần chèn. Đây là trường văn bản để hiển thị tên mã ngắn cho người dùng biết để chèn vào vị trí cần chèn

Lưu ý. Trường này chỉ để hiển thị, không cần nhập dữ liệu cho nên phần Bắt buộc bạn phải là Không. Trường này chỉ để hiển thị, không cần nhập dữ liệu cho nên phần Bắt buộc bạn phải là Không

  • Nội dung. Đây là trường textarea để lưu nội dung của khối. Có thể là văn bản, html, css, javascript, shortcode khác. Đây là trường textarea để lưu nội dung của khối. Có thể là văn bản, html, css, javascript, shortcode khác

Chú ý Tên trường, đây là tham số sẽ được sử dụng để gọi ra

Cuối cùng, ở khu vực Location vui lòng chọn Post Type Block vừa tạo ở bước trên. Vui lòng chọn Post Type Block vừa tạo ở bước trên

Sau khi tạo xong Custom Fields, bạn truy cập Block => Add Block mới, bạn sẽ thấy nội dung như sau. Trường tùy chỉnh, bạn truy cập Chặn => Thêm khối mới, bạn sẽ thấy nội dung như sau

Bước 03. Viết mã ngắn để hiển thị khối nội dung

Tôi giả sử sử dụng shortcode tôi tạo ra như sau. [block id="12"]

in which. 12 main is ID of Block. Như vậy tôi sẽ viết Shortcode có tham số. Để tìm hiểu rõ hơn về Shortcode, hãy tham khảo bài viết Shortcode trong WordPress từ A đến ZShortcode trong WordPress từ A đến Z

Tham khảo mã sau

<?php
function create_shortcode_block($args, $content){
	$post_id = $args['id'];
	ob_start();
	$block_content = get_field('block_content', $post_id);
	$block_content = apply_filters( 'the_content', $block_content );
	echo $block_content;
	$result = ob_get_contents();
	ob_end_clean();
	return $result;
}

add_shortcode('block', 'create_shortcode_block');
 ?>

Tôi sử dụng bộ lọc qua hook the_content để hiển thị mã ngắn khác trong khối nội dung

Bước 04. Hiển thị tên Shortcode trong Field shortcode

Bạn còn nhớ trường shortcode mà tôi đã hướng dẫn bạn tạo ở trên chứ?

Trước tiên, bạn tạo một Khối mới và lưu lại. Tiếp theo, bạn xác định ID HTML của trường đó

Chúng ta sẽ sử dụng ID này để đưa vào Javascript. (Nếu bạn không có kiến ​​thức về Javascript, bạn nên tìm hiểu lại)

Tiếp theo, bạn chèn đoạn mã sau vào tệp functions.php của chủ đề bạn đang sử dụng

<?php
add_action('admin_footer', 'add_script_to_admin');
function add_script_to_admin(){
	$post = (isset($_GET['post']))?$_GET['post']:0;
	if ($post>0):
	?>
	<script type="text/javascript">
		var post = '<?php echo $post; ?>';
		jQuery('body').find('#acf-field_5efd9980766d1').attr('disabled', 'disabled');
		jQuery('body').find('#acf-field_5efd9980766d1').val('[block id="'+post+'"]');
		jQuery('body').find('#acf-field_5efd9980766d1').css('color', 'red');
	</script>
	<?php
	endif;
}
 ?>

Trong đoạn mã trên, tôi thực hiện 3 công việc

  • Vô hiệu hóa trường văn bản (Không cho phép sửa)
  • Chèn tên mã ngắn vào trường văn bản (Trong đó ID của Khối tự động lấy)
  • Đổi sang màu đỏ cho nổi bật (Bạn có thể chuyển sang màu khác

Bước 05. Hiển thị tên Shortcode trong trang danh sách Block

Tôi sẽ thực hiện thêm cột Shortcode trong trang danh sách BlockShortcode trong trang danh sách Block

Bạn chèn đoạn mã sau vào tệp functions.php của chủ đề bạn đang sử dụng

<?php
add_filter( 'manage_blocks_posts_columns', 'set_custom_edit_blocks_columns' );
function set_custom_edit_blocks_columns($columns) {
    unset($columns['date']);
    $columns['shortcode'] = __( 'Shortcode', 'fedu' );
   
    return $columns;
}

add_action( 'manage_blocks_posts_custom_column' , 'custom_blocks_column', 10, 2 );
function custom_blocks_column( $column, $post_id ) {
    switch ( $column ) {

        case 'shortcode' :
        	$shortcode = '[block id="'.$post_id.'"]';
        	echo $shortcode;
            break;


    }
}
 ?>

You to idea 2 hook

<?php
function create_shortcode_block($args, $content){
	$post_id = $args['id'];
	ob_start();
	$block_content = get_field('block_content', $post_id);
	$block_content = apply_filters( 'the_content', $block_content );
	echo $block_content;
	$result = ob_get_contents();
	ob_end_clean();
	return $result;
}

add_shortcode('block', 'create_shortcode_block');
 ?>
0 and
<?php
function create_shortcode_block($args, $content){
	$post_id = $args['id'];
	ob_start();
	$block_content = get_field('block_content', $post_id);
	$block_content = apply_filters( 'the_content', $block_content );
	echo $block_content;
	$result = ob_get_contents();
	ob_end_clean();
	return $result;
}

add_shortcode('block', 'create_shortcode_block');
 ?>
0, you instead blocks to slug Post Type of you

Trong đoạn mã trên, tôi có sử dụng hàm

<?php
function create_shortcode_block($args, $content){
	$post_id = $args['id'];
	ob_start();
	$block_content = get_field('block_content', $post_id);
	$block_content = apply_filters( 'the_content', $block_content );
	echo $block_content;
	$result = ob_get_contents();
	ob_end_clean();
	return $result;
}

add_shortcode('block', 'create_shortcode_block');
 ?>
0 to erase the time column

Kết luận

Trên đây, tôi đã hướng dẫn bạn cách tự tạo chức năng Chặn cho WordPress đơn giản. Nếu bạn có kiến ​​thức lập trình, bạn có thể viết thêm các chức năng cho Block của mình