Filtern Sie Beiträge und Seiten nach benutzerdefiniertem Feld im WordPress-Admin ()

Hallo, mein Name ist Sven und heute bringe ich Ihnen einen weiteren neuen Artikel.

Versuchen Sie, Ihre Beiträge nach benutzerdefinierten Feldern im WordPress-Adminbereich zu filtern? Dieses Snippet fügt Ihren WordPress-Beiträgen und Seitenlisten ein neues Dropdown-Menü mit benutzerdefinierten Feldern hinzu. Das Menü zeigt eine Liste aller benutzerdefinierten Felder an. Um Beiträge und Seiten zu filtern, müssen Sie nur das Feld auswählen, nach dem Sie filtern möchten.

Anleitung:

Alles, was Sie tun müssen, ist diesen Code in die Datei functions.php Ihres Themes oder in ein Site-spezifisches Plugin einzufügen:


add_filter( 'parse_query', 'ba_admin_posts_filter' );
add_action( 'restrict_manage_posts', 'ba_admin_posts_filter_restrict_manage_posts' );

function ba_admin_posts_filter( $query )

    global $pagenow;
    if ( is_admin() && $pagenow=='edit.php' && isset($_GET['ADMIN_FILTER_FIELD_NAME']) && $_GET['ADMIN_FILTER_FIELD_NAME'] != '') 
        $query->query_vars['meta_key'] = $_GET['ADMIN_FILTER_FIELD_NAME'];
    if (isset($_GET['ADMIN_FILTER_FIELD_VALUE']) && $_GET['ADMIN_FILTER_FIELD_VALUE'] != '')
        $query->query_vars['meta_value'] = $_GET['ADMIN_FILTER_FIELD_VALUE'];
    


function ba_admin_posts_filter_restrict_manage_posts()

    global $wpdb;
    $sql="SELECT DISTINCT meta_key FROM ".$wpdb->postmeta.' ORDER BY 1';
    $fields = $wpdb->get_results($sql, ARRAY_N);
?>
<select name="ADMIN_FILTER_FIELD_NAME">
<option value=""><?php _e('Filter By Custom Fields', 'baapf'); ?></option>
<?php
    $current = isset($_GET['ADMIN_FILTER_FIELD_NAME'])? $_GET['ADMIN_FILTER_FIELD_NAME']:'';
    $current_v = isset($_GET['ADMIN_FILTER_FIELD_VALUE'])? $_GET['ADMIN_FILTER_FIELD_VALUE']:'';
    foreach ($fields as $field) 
        if (substr($field[0],0,1) != "_")
        printf
            (
                '<option value="%s"%s>%s</option>',
                $field[0],
                $field[0] == $current? ' selected="selected"':'',
                $field[0]
            );
        
    
?>
</select> <?php _e('Value:', 'baapf'); ?><input type="TEXT" name="ADMIN_FILTER_FIELD_VALUE" value="<?php echo $current_v; ?>" />
<?php


Berücksichtigen: Wenn Sie zum ersten Mal Code-Snippets in WordPress hinzufügen, lesen Sie unsere Anleitung zum richtigen Kopieren/Einfügen von Code-Snippets in WordPress, damit Sie Ihre Website nicht versehentlich beschädigen.

Ohne weitere Umschweife hoffe ich es gefällt euch.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.