Rumah >Tutorial CMS >WordTekan >Penapis Pentadbiran WordPress yang disesuaikan

Penapis Pentadbiran WordPress yang disesuaikan

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌asal
2025-02-18 11:11:091039semak imbas

Artikel ini menerangkan cara menggunakan penapis WordPress untuk menyesuaikan skrin Pentadbiran Pos. Kami akan meliputi penapis terbina dalam WordPress dan menunjukkan kepada anda cara membuat penapis tersuai untuk meningkatkan fungsi.

Konsep Utama

  • WordPress menyediakan penapis lalai pada skrin Pentadbiran Pos untuk memaparkan siaran berdasarkan kriteria tertentu. Penapis ini boleh diperpanjang.
  • Penapis baru ditambah menggunakan cangkuk restrict_manage_posts dan pre_get_posts. Ini membolehkan penapisan jawatan dengan pelbagai kriteria.
  • penapis tersuai untuk format pos dan penulis boleh dibuat dengan menambahkan kod ke fail functions.php tema anda (atau plugin).
  • penapis pre_get_posts memodifikasi pertanyaan pangkalan data, mengawal jawatan mana yang dipaparkan.
  • Penapis tersuai meningkatkan pengalaman pengguna, menambah fungsi, dan mengekalkan kod bersih.

Posting Penapisan: Asas

WordPress menawarkan penapis lalai pada skrin Pentadbiran Pos (seperti penapisan tarikh, ditunjukkan di bawah). Tema dan plugin boleh menambah lebih banyak. Penapis ini menyempitkan senarai pos berdasarkan kriteria yang ditentukan.

Customized WordPress Administration Filters

Membuat penapis tersuai

Walaupun WordPress menawarkan penapis terbina dalam, anda sering memerlukan yang tersuai untuk pengalaman pengguna yang lebih baik. Dua cangkuk adalah kunci:

  • : Menambah kawalan penapis baru ke bahagian atas skrin admin. restrict_manage_posts
  • : Mengubah pertanyaan sebelum ia berjalan, menapis siaran yang dipaparkan. pre_get_posts
Contoh: Penapisan oleh pengarang dan format pos

Mari buat penapis untuk penulis dan format pos. Bayangkan sebuah laman web di mana jawatan mempunyai format dan penulis yang diberikan secara manual. Skrin admin lalai boleh menjadi luar biasa. Kami akan menambah menu dropdown untuk penapisan yang lebih mudah. ​​

Menambah Menu Dropdown (

) restrict_manage_posts

tambahkan kod berikut ke fail

tema anda (atau plugin): functions.php

penapis oleh pengarang:

<code class="language-php">function add_author_filter() {
    global $post_type;
    if ($post_type == 'post') {
        $user_args = array(
            'show_option_all' => 'All Authors',
            'orderby' => 'display_name',
            'order' => 'ASC',
            'name' => 'author_filter',
            'who' => 'authors',
            'include_selected' => true
        );
        if (isset($_GET['author_filter'])) {
            $user_args['selected'] = (int) sanitize_text_field($_GET['author_filter']);
        }
        wp_dropdown_users($user_args);
    }
}
add_action('restrict_manage_posts', 'add_author_filter');</code>
penapis oleh format pos:

<code class="language-php">function add_post_format_filter() {
    global $post_type;
    if ($post_type == 'post') {
        $post_formats_args = array(
            'show_option_all' => 'All Formats',
            'orderby' => 'NAME',
            'order' => 'ASC',
            'name' => 'post_format_filter',
            'taxonomy' => 'post_format'
        );
        if (isset($_GET['post_format_filter'])) {
            $post_formats_args['selected'] = sanitize_text_field($_GET['post_format_filter']);
        }
        wp_dropdown_categories($post_formats_args);
    }
}
add_action('restrict_manage_posts', 'add_post_format_filter');</code>
Ini menambah dua lungsur ke skrin senarai pos.

Customized WordPress Administration Filters Penapisan senarai pos ()

Sekarang, mari kita buat dropdowns berfungsi: pre_get_posts

penapisan oleh pengarang:

penapisan mengikut format pos:

<code class="language-php">function filter_posts_by_author($query) {
    global $post_type, $pagenow;
    if ($pagenow == 'edit.php' && $post_type == 'post' && isset($_GET['author_filter'])) {
        $author_id = sanitize_text_field($_GET['author_filter']);
        if ($author_id != 0) {
            $query->set('author', $author_id);
        }
    }
}
add_action('pre_get_posts', 'filter_posts_by_author');</code>

fungsi ini mengubah suai pertanyaan untuk hanya memasukkan siaran yang sepadan dengan pengarang atau format pos yang dipilih.

<code class="language-php">function filter_posts_by_format($query) {
    global $post_type, $pagenow;
    if ($pagenow == 'edit.php' && $post_type == 'post' && isset($_GET['post_format_filter'])) {
        $post_format = sanitize_text_field($_GET['post_format_filter']);
        if ($post_format != 0) {
            $query->set('post_format', $post_format);
        }
    }
}
add_action('pre_get_posts', 'filter_posts_by_format');</code>

Kesimpulan

Ini meningkatkan admin WordPress anda dengan penapis tersuai. Anda boleh menyesuaikannya untuk menapis oleh atribut pos lain (rujuk dokumentasi Kelas Kueri WordPress). Ingatlah untuk sentiasa membersihkan input pengguna untuk mengelakkan kelemahan keselamatan.

Atas ialah kandungan terperinci Penapis Pentadbiran WordPress yang disesuaikan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn