Hiển thị tất cả các thẻ bài trên màn hình chỉnh sửa bài / sidebox


8

Tôi đang tìm cách để hiển thị tất cả các thẻ bài đăng trên màn hình chỉnh sửa bài đăng / thẻ sidebox trong phần quản trị WordPress. Theo mặc định, WordPress hiển thị 45 thẻ được sử dụng nhiều nhất nhưng tôi cần một cách để liệt kê tất cả các thẻ ở đó hoặc ít nhất là tăng giới hạn này.

Tôi tìm thấy câu hỏi tương tự ở đây Hiển thị tất cả các thẻ trong quản trị viên -> chỉnh sửa bài đăng . Nhưng nó gợi ý chỉnh sửa / sửa đổi các tệp cốt lõi của WordPress không phải là điều tôi thực sự muốn. Bởi vì nâng cấp WordPress sẽ là một vấn đề rất lớn sau đó.

Tôi cũng không thể tìm thấy bất cứ điều gì trong tìm kiếm của Google. Vì vậy, có cách để liệt kê tất cả hoặc hơn 45 thẻ trên trang chỉnh sửa bài.

Câu trả lời:


9

Tôi muốn nói cách dễ nhất để làm điều đó là sử dụng get_terms_argsbộ lọc và bỏ đặt numbergiới hạn nếu ngữ cảnh đúng (yêu cầu AJAX để lấy đám mây thẻ):

function wpse_64058_all_tags ( $args ) {
    if ( defined( 'DOING_AJAX' ) && DOING_AJAX && isset( $_POST['action'] ) && $_POST['action'] === 'get-tagcloud' )
        unset( $args['number'] );
    return $args;
}

add_filter( 'get_terms_args', 'wpse_64058_all_tags' );

Lưu ý: Trong hộp chỉnh sửa, liên kết vẫn sẽ đọc "Chọn từ các thẻ được sử dụng nhiều nhất", mặc dù chúng tôi hiện đang hiển thị tất cả chúng.

Chỉnh sửa: Như @bonger đã đề xuất, bạn có thể xác định loại bài đăng từ người giới thiệu:

if ( $qs = parse_url( wp_get_referer(), PHP_URL_QUERY ) ) {
    parse_str( $qs, $args );

    if ( ! empty( $args['post_type'] ) )
        $post_type = $args['post_type'];
    elseif ( ! empty( $args['post'] ) )
        $post_type = get_post_type( $args['post'] );
    else
        $post_type = 'post';
}

2
+1. Sẽ rất tuyệt nếu nó chỉ có thể được chạy cho các loại bài đăng cụ thể, nhưng tôi e rằng nó không dễ dàng như vậy. Về "Chọn từ các thẻ được sử dụng nhiều nhất" , có thể sử dụng gettextbộ lọc để thay đổi nó.
gmazzap

@GM Có, chúng tôi có thể thay đổi văn bản. Nhưng tôi ổn với "Chọn từ các thẻ được sử dụng nhiều nhất". Mặc dù tôi tự hỏi tại sao chúng ta không thể kiểm tra post typeở đây? Điều này được thực hiện trước khi mọi thứ khác.
Robert hue

1
Không có cách nào để xác định loại bài đăng trong ngữ cảnh bộ lọc thực thi. Bạn có thể thấy loại bài đăng được phân loại, nhưng nó chỉ hữu ích nếu đó là loại bài đăng duy nhất . Tùy chọn duy nhất khác là loại bỏ post_tags_meta_boxtrình xử lý mặc định và thay thế nó bằng trình xử lý của riêng bạn.
TheDeadMote

Mặc dù bạn có thể sử dụng $_SERVER['HTTP_REFERER']để tìm hiểu post_typenếu bạn thực sự muốn.
bonger

1
Bạn có thể sử dụng wp_get_referer(). Hãy nhớ rằng nó cũng trả về falsetrong trường hợp nếu yêu cầu hiện tại và yêu cầu trước đó bằng nhau (bất cứ ai có ý tưởng đó: vỗ tay chậm).
kaiser

0

Ngoài câu trả lời của TheDeadMedic, để hiển thị TẤT CẢ các thẻ:

if ( defined( 'DOING_AJAX' ) && DOING_AJAX && isset( $_POST['action'] ) && $_POST['action'] === 'get-tagcloud' ) {
    unset( $args['number'] );
    $args['hide_empty'] = 0;
}
return $args;

0

Chỉ cần thêm một số thông tin cơ bản có liên quan:

Khi cài đặt cài đặt phân loại thành 'hierarchical'=>truenó sẽ sử dụng hộp bên định dạng danh mục và sẽ hiển thị tất cả các điều khoản theo mặc định.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.