Active License Elementor Pro chỉ với 300k/năm/domain Shop Now
Mới Dịch vụ thiết kế website, xử lý mã độc & tối ưu tốc độ chuyên sâu

Code chèn mô tả với đầy đủ tool vào danh mục sản phẩm và Danh mục bài viết

chen mo ta vao danh muc bai viet

Phần mô tả mặc định của danh mục sản phẩm khá là đơn giản và thô sơ, cũng không có sẵn trình soạn thảo WYSIWYG để dễ dàng thêm các nội dung vào. Vì vậy trong bài viết này mình sẽ hướng dẫn bạn thêm 1 trường mô tả vào phần danh mục sản phẩm với đầy đủ tool nhé.

Code thêm tool vào danh mục sản phẩm

Đầu tiền chỉ cần copy code sau và thêm vào file functions.php của child theme bạn đang xài là được.

<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="lang:php decode:true ">function replace_product_cat_desc_editor( $term ) {
    ?&gt;
    &lt;script&gt;
        jQuery(document).ready(function($) {
            $('#tag-description').closest('.form-field').hide();
        });
    &lt;/script&gt;
    &lt;?php
    // Lấy nội dung mô tả hiện tại
    $description = ( isset( $term-&gt;description ) ) ? $term-&gt;description : '';
    ?&gt;
    &lt;tr class="form-field term-description-wrap"&gt;
        &lt;th scope="row"&gt;&lt;label for="description"&gt;Mô tả&lt;/label&gt;&lt;/th&gt;
        &lt;td&gt;
            &lt;?php
            // Hiển thị trình soạn thảo WYSIWYG
            wp_editor( htmlspecialchars_decode( $description ), 'tag_description', array(
                'textarea_name' =&gt; 'description',
                'media_buttons' =&gt; true,     
                'textarea_rows' =&gt; 10,
                'teeny' =&gt; false,
                'quicktags' =&gt; true,
                'editor_class' =&gt; 'full-text-editor',
            ) );
            ?&gt;
            &lt;p class="description"&gt;Phần mô tả chi tiết hiển thị trên trang danh mục sản phẩm.&lt;/p&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;?php
}
// Dùng cho trang chỉnh sửa chuyên mục sản phẩm
add_action( 'product_cat_edit_form_fields', 'replace_product_cat_desc_editor', 10, 1 );
remove_filter( 'pre_term_description', 'wp_filter_kses' );
remove_filter( 'term_description', 'wp_kses_data' );
function save_product_cat_desc_editor( $term_id ) {
    if ( isset( $_POST['description'] ) ) {
        $data = array(
            'description' =&gt; wp_kses_post( $_POST['description'] ) 
        );
        wp_update_term( $term_id, 'product_cat', $data );
    }
}
add_action( 'edited_product_cat', 'save_product_cat_desc_editor' );
add_action( 'create_product_cat', 'save_product_cat_desc_editor' );
</pre></div>

Sau khi thêm vào là xong nhé, bình thường nội dung mô tả danh mục sản phẩm sẽ nằm bên trên danh sách sản phẩm trong trang danh mục nhé.

Code thêm tool vào danh mục bài viết

Copy code sau và thêm vào file functions.php.

<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="lang:php decode:true " >// Bật WYSIWYG editor cho mô tả danh mục bài viết (Category)
function category_desc_wysiwyg_editor( $term ) {
    ?&gt;
    &lt;script&gt;
        jQuery(document).ready(function($) {
            $('#tag-description').closest('.form-field').hide();
        });
    &lt;/script&gt;
    &lt;?php
    $description = isset( $term-&gt;description ) ? $term-&gt;description : '';
    ?&gt;
    &lt;tr class="form-field term-description-wrap"&gt;
        &lt;th scope="row"&gt;&lt;label for="description"&gt;Mô tả&lt;/label&gt;&lt;/th&gt;
        &lt;td&gt;
            &lt;?php
            wp_editor( htmlspecialchars_decode( $description ), 'tag_description', array(
                'textarea_name' =&gt; 'description',
                'media_buttons' =&gt; true,
                'textarea_rows' =&gt; 10,
                'teeny' =&gt; false,
                'quicktags' =&gt; true,
            ) );
            ?&gt;
            &lt;p class="description"&gt;Mô tả hiển thị trên trang danh mục bài viết.&lt;/p&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;?php
}
add_action( 'category_edit_form_fields', 'category_desc_wysiwyg_editor', 10, 1 );
// Cho phép HTML trong mô tả danh mục
remove_filter( 'pre_term_description', 'wp_filter_kses' );
remove_filter( 'term_description', 'wp_kses_data' );
// Lưu nội dung editor
function save_category_desc_wysiwyg_editor( $term_id ) {
    if ( isset( $_POST['description'] ) ) {
        wp_update_term( $term_id, 'category', array(
            'description' =&gt; wp_kses_post( $_POST['description'] )
        ) );
    }
}
add_action( 'edited_category', 'save_category_desc_wysiwyg_editor' );
add_action( 'create_category', 'save_category_desc_wysiwyg_editor' );
</pre></div>
jakengoc

jakengoc

Web Developer & WordPress Expert

Xin chào, mình là Ngọc Nguyễn, mình đã có hơn 4 năm kinh nghiệm làm việc với Wordpress. Hiện tại mình đang là Freelancer thiết kế Website. Mình thích chia sẽ và phục vụ cộng đồng, trước đây mình đã từng dành 2 năm để làm công việc tình nguyện. Đối với mình thì gia đình là quan trọng nhất.

4 Bình luận

Để lại bình luận hoặc thắc mắc

Email của bạn sẽ không được hiển thị công khai.

Ngọc Nguyễn
Ngọc Nguyễn
| Thiết kế Website | Hosting tốc độ cao | Giải pháp hạ tầng | Fix lỗi WordPress, mã độc | Tối ưu tốc độ | Thiết kế Website | Hosting tốc độ cao | Giải pháp hạ tầng | Fix lỗi WordPress, mã độc | Tối ưu tốc độ
Tư vấn miễn phí