Làm cách nào để tìm hình ảnh phân loại trong wordpress?

Gần đây, tôi đang làm việc trên một plugin/thư viện ví dụ để thêm hình ảnh vào các thuật ngữ phân loại (chẳng hạn như danh mục, thẻ bài đăng hoặc thuật ngữ phân loại tùy chỉnh). Plugin thêm trường tải lên hình ảnh để tạo và chỉnh sửa biểu mẫu thuật ngữ

Làm cách nào để tìm hình ảnh phân loại trong wordpress?

Như thể hiện trong ảnh chụp màn hình ở trên, tôi đã đặt tiêu đề, nhãn trường. Tên trường được tạo tự động từ nhãn trường. Trong loại trường, tôi đã chọn tùy chọn Hình ảnh. Tùy chọn này hoạt động như tải lên tệp cho phép sử dụng trình tải lên phương tiện WordPress

Cuộn xuống trên cùng một trang, chọn Return Format as Image Array

Làm cách nào để tìm hình ảnh phân loại trong wordpress?

Trong Vị trí, đối với Quy tắc, cần thêm một điều kiện sẽ áp dụng cho nhóm trường hiện tại. Trong trường hợp của chúng tôi, tôi chọn Taxonomy bằng Category

Làm cách nào để tìm hình ảnh phân loại trong wordpress?

Khi bạn đã hoàn tất các cài đặt ở trên, hãy lưu các thay đổi

Bây giờ, nếu chúng ta vào trang chỉnh sửa danh mục, chúng ta sẽ thấy trường Tải lên hình ảnh

Làm cách nào để tìm hình ảnh phân loại trong wordpress?

Bây giờ người dùng có thể tải lên hình ảnh cho một danh mục. Tiếp theo, hãy xem cách hiển thị hình ảnh này ở giao diện người dùng

Hiển thị danh mục hình ảnh trên giao diện người dùng

Plugin trường tùy chỉnh nâng cao cung cấp phương thức get_field() được sử dụng để hiển thị giá trị trường. Để hiển thị giá trị trường danh mục, bạn cần chuyển tên trường và ‘category_TERM_ID’. Nếu bạn đang hiển thị giá trị trường phân loại tùy chỉnh thì tham số thứ hai sẽ là 'term_TERM_ID'. Vui lòng tham khảo tài liệu plugin

Giả sử chúng tôi đã tải lên một hình ảnh cho danh mục có ID 7. Sau đó để hiển thị hình ảnh, mã của chúng tôi sẽ như sau

<?php
$term_id = 7;
$image = get_field('category_image', 'category_'. $term_id); //'category_image' is our field name
echo '<img src="'.$image['url'].'" alt="'.$image['alt'].'" />';

Biến $image có đường dẫn hình ảnh với kích thước là hình thu nhỏ, trung bình và lớn. Bạn có thể chọn bất kỳ kích thước của hình ảnh theo yêu cầu của bạn. In biến $image và bạn sẽ nhận được tất cả các chi tiết meta về hình ảnh

Thêm trường hình ảnh vào phân loại mà không cần plugin

Chúng tôi đã thấy cách thêm trường hình ảnh vào phân loại thông qua plugin. Cách tiếp cận này là tốt cho một người phi kỹ thuật. Nếu bạn là nhà phát triển WordPress thì rõ ràng bạn sẽ không muốn sử dụng plugin. Hãy làm điều đó theo chương trình

Để hoàn thành nhiệm vụ này, chúng tôi cần sử dụng một vài hành động WordPress. Đầu tiên, chúng ta cần thêm một trường hình ảnh trên biểu mẫu Danh mục. Đối với điều này, hãy thêm mã bên dưới vào tệp

function taxonomy_add_custom_field() {
    ?>
    <div class="form-field term-image-wrap">
        <label for="cat-image"><?php _e( 'Image' ); ?></label>
        <p><a href="#" class="aw_upload_image_button button button-secondary"><?php _e('Upload Image'); ?></a></p>
        <input type="text" name="category_image" id="cat-image" value="" size="40" />
    </div>
    <?php
}
add_action( 'category_add_form_fields', 'taxonomy_add_custom_field', 10, 2 );

function taxonomy_edit_custom_field($term) {
    $image = get_term_meta($term->term_id, 'category_image', true);
    ?>
    <tr class="form-field term-image-wrap">
        <th scope="row"><label for="category_image"><?php _e( 'Image' ); ?></label></th>
        <td>
            <p><a href="#" class="aw_upload_image_button button button-secondary"><?php _e('Upload Image'); ?></a></p><br/>
            <input type="text" name="category_image" id="cat-image" value="<?php echo $image; ?>" size="40" />
        </td>
    </tr>
    <?php
}
add_action( 'category_edit_form_fields', 'taxonomy_edit_custom_field', 10, 2 );
1 của bạn

function taxonomy_add_custom_field() {
    ?>
    <div class="form-field term-image-wrap">
        <label for="cat-image"><?php _e( 'Image' ); ?></label>
        <p><a href="#" class="aw_upload_image_button button button-secondary"><?php _e('Upload Image'); ?></a></p>
        <input type="text" name="category_image" id="cat-image" value="" size="40" />
    </div>
    <?php
}
add_action( 'category_add_form_fields', 'taxonomy_add_custom_field', 10, 2 );

function taxonomy_edit_custom_field($term) {
    $image = get_term_meta($term->term_id, 'category_image', true);
    ?>
    <tr class="form-field term-image-wrap">
        <th scope="row"><label for="category_image"><?php _e( 'Image' ); ?></label></th>
        <td>
            <p><a href="#" class="aw_upload_image_button button button-secondary"><?php _e('Upload Image'); ?></a></p><br/>
            <input type="text" name="category_image" id="cat-image" value="<?php echo $image; ?>" size="40" />
        </td>
    </tr>
    <?php
}
add_action( 'category_edit_form_fields', 'taxonomy_edit_custom_field', 10, 2 );

Kiểm tra trang Danh mục của bạn và bây giờ bạn sẽ thấy trường Hình ảnh có nút Tải lên và trường nhập.  

Tải lên và lưu trữ hình ảnh

Tiếp theo, những gì tôi sẽ đạt được là chỉ cần nhấp vào nút Tải lên, chế độ phương tiện quản trị sẽ mở và đường dẫn hình ảnh đã chọn sẽ được đặt trong trường nhập liệu. Giá trị này sau đó được lưu vào bảng ‘wp_termmeta’ với khóa meta ‘category_image’

Để sử dụng trình tải lên phương tiện WordPress, bạn cần viết mã JavaScript. Tạo một tệp

function taxonomy_add_custom_field() {
    ?>
    <div class="form-field term-image-wrap">
        <label for="cat-image"><?php _e( 'Image' ); ?></label>
        <p><a href="#" class="aw_upload_image_button button button-secondary"><?php _e('Upload Image'); ?></a></p>
        <input type="text" name="category_image" id="cat-image" value="" size="40" />
    </div>
    <?php
}
add_action( 'category_add_form_fields', 'taxonomy_add_custom_field', 10, 2 );

function taxonomy_edit_custom_field($term) {
    $image = get_term_meta($term->term_id, 'category_image', true);
    ?>
    <tr class="form-field term-image-wrap">
        <th scope="row"><label for="category_image"><?php _e( 'Image' ); ?></label></th>
        <td>
            <p><a href="#" class="aw_upload_image_button button button-secondary"><?php _e('Upload Image'); ?></a></p><br/>
            <input type="text" name="category_image" id="cat-image" value="<?php echo $image; ?>" size="40" />
        </td>
    </tr>
    <?php
}
add_action( 'category_edit_form_fields', 'taxonomy_edit_custom_field', 10, 2 );
0 và liệt kê nó

function aw_include_script() {
 
    if ( ! did_action( 'wp_enqueue_media' ) ) {
        wp_enqueue_media();
    }
 
    wp_enqueue_script( 'awscript', get_stylesheet_directory_uri() . '/js/awscript.js', array('jquery'), null, false );
}
add_action( 'admin_enqueue_scripts', 'aw_include_script' );

Trong tệp

function taxonomy_add_custom_field() {
    ?>
    <div class="form-field term-image-wrap">
        <label for="cat-image"><?php _e( 'Image' ); ?></label>
        <p><a href="#" class="aw_upload_image_button button button-secondary"><?php _e('Upload Image'); ?></a></p>
        <input type="text" name="category_image" id="cat-image" value="" size="40" />
    </div>
    <?php
}
add_action( 'category_add_form_fields', 'taxonomy_add_custom_field', 10, 2 );

function taxonomy_edit_custom_field($term) {
    $image = get_term_meta($term->term_id, 'category_image', true);
    ?>
    <tr class="form-field term-image-wrap">
        <th scope="row"><label for="category_image"><?php _e( 'Image' ); ?></label></th>
        <td>
            <p><a href="#" class="aw_upload_image_button button button-secondary"><?php _e('Upload Image'); ?></a></p><br/>
            <input type="text" name="category_image" id="cat-image" value="<?php echo $image; ?>" size="40" />
        </td>
    </tr>
    <?php
}
add_action( 'category_edit_form_fields', 'taxonomy_edit_custom_field', 10, 2 );
1, hãy viết mã JavaScript bên dưới để mở phương thức phương tiện, cho phép bạn chọn hình ảnh và chèn đường dẫn hình ảnh vào trường nhập liệu

jQuery(function($){
    $('body').on('click', '.aw_upload_image_button', function(e){
        e.preventDefault();
        aw_uploader = wp.media({
            title: 'Custom image',
            button: {
                text: 'Use this image'
            },
            multiple: false
        }).on('select', function() {
            var attachment = aw_uploader.state().get('selection').first().toJSON();
            $('#cat-image').val(attachment.url);
        })
        .open();
    });
});

Để tìm hiểu thêm về phương thức quản trị phương tiện, vui lòng tham khảo wp. tài liệu truyền thông

Bây giờ bạn có thể chọn hình ảnh từ thư viện phương tiện WordPress. Hãy lưu nó thông qua mã bên dưới

function save_taxonomy_custom_meta_field( $term_id ) {
    if ( isset( $_POST['category_image'] ) ) {
        update_term_meta($term_id, 'category_image', $_POST['category_image']);
    }
}  
add_action( 'edited_category', 'save_taxonomy_custom_meta_field', 10, 2 );  
add_action( 'create_category', 'save_taxonomy_custom_meta_field', 10, 2 );

Chúng tôi đã hoàn thành quy trình thủ công để thêm trường hình ảnh vào phân loại. Cuối cùng, bạn có thể hiển thị hình ảnh ở mặt trước như sau

<?php
$term_id = 39;
$image = get_term_meta($term_id, 'category_image', true);
echo '<img src="'.$image.'" />';

Tôi hy vọng bạn hiểu cách thêm trường hình ảnh vào phân loại trong WordPress. Tôi muốn nghe những suy nghĩ và đề xuất của bạn trong phần bình luận bên dưới