简体   繁体   中英

How to add Filter in WordPress of custom metabox in custom post type?

I wann add filter link below image 在此处输入图片说明

Thank you in advance.

check this

add_action( 'restrict_manage_posts', 'our_drink_filter' );
/**
 * First create the dropdown
 * make sure to change POST_TYPE to the name of your custom post type
 * 
 * @author Ohad Raz
 * 
 * @return void
 */
function our_drink_filter(){
    $type = 'post';
    if (isset($_GET['post_type'])) {
        $type = $_GET['post_type'];
    }

    //only add filter to post type you want
    if ('our_drink' == $type){
        //change this to the list of values you want to show
        //in 'label' => 'value' format
        $filter_post = array();
        $all_movies1 = get_posts( array(
            'post_type' => 'our_restaurant',
            'numberposts' => -1,
            'orderby' => 'post_title',
            'order' => 'ASC'
            ) );
            foreach ( $all_movies1 as $movie1 ) :
                //echo $movie1->post_title." ".sanitize_title($movie1->post_title)."<br>";
                array_push($filter_post[$movie1->post_title] = sanitize_title($movie1->post_title));

            endforeach; 
        ?>
        <select name="ADMIN_FILTER_FIELD_VALUE">
        <option value=""><?php _e('Store Name ', 'wose45436'); ?></option>
        <?php
            $current_v = isset($_GET['ADMIN_FILTER_FIELD_VALUE'])? $_GET['ADMIN_FILTER_FIELD_VALUE']:'';
            foreach ($filter_post as $label => $value) {
                printf
                    (
                        '<option value="%s"%s>%s</option>',
                        $value,
                        $value == $current_v? ' selected="selected"':'',
                        $label
                    );
                }
        ?>
        </select>
        <?php
    }
}


add_filter( 'parse_query', 'drink_posts_filter' );
/**
 * if submitted filter by post meta
 * 
 * make sure to change META_KEY to the actual meta key
 * and POST_TYPE to the name of your custom post type
 * @author Ohad Raz
 * @param  (wp_query object) $query
 * 
 * @return Void
 */
function drink_posts_filter( $query ){
    global $pagenow;
    $type = 'post';
    if (isset($_GET['post_type'])) {
        $type = $_GET['post_type'];
    }
    if ( 'our_drink' == $type && is_admin() && $pagenow=='edit.php' && isset($_GET['ADMIN_FILTER_FIELD_VALUE']) && $_GET['ADMIN_FILTER_FIELD_VALUE'] != '') {
        $query->query_vars['meta_key'] = 'custom_element_grid_class_meta_box';
        $query->query_vars['meta_value'] = $_GET['ADMIN_FILTER_FIELD_VALUE'];
    }
}

Looks like this is a plugin. To do that you need to alter the code of that plugin. I couldn't begin to tell you without knowing the contents of that plugin, then you will still have an issue with that opton dispearing if an update for that plugin is loaded. So your best bet is to request it from the author of the plugin.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM