$conf, $runtime; function_exists('chdir') AND chdir(APP_PATH); $r = 'mysql' == $conf['cache']['type'] ? website_set('runtime', $runtime) : cache_set('runtime', $runtime); } function runtime_truncate() { global $conf; 'mysql' == $conf['cache']['type'] ? website_set('runtime', '') : cache_delete('runtime'); } register_shutdown_function('runtime_save'); ?>filters - Having issue with dynamic data within restrict_manage_posts function|Programmer puzzle solving
最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

filters - Having issue with dynamic data within restrict_manage_posts function

matteradmin10PV0评论

I have the dropdown dynamically populated with the titles of my podcast post type and I can successfully apply a filter by selected a podcast title and clicking filter. However, when the page loads and I see my filtered list the dynamic dropdown does not get populated.

Any idea why this is happening?

Here's my code pulled from my ThemeHelper class...

add_filter( 'parse_query', [ __CLASS__, 'parse_query' ] );
add_action( 'restrict_manage_posts', [ __CLASS__, 'restrict_manage_posts' ] );

function parse_query( $query ) {
    global $pagenow;
    // Change query based on post_parent
    $parent_filter = $_GET['parent'];
    if ( is_admin() && $pagenow == 'edit.php' && ! empty( $parent_filter ) ) {
        $query->query_vars['post_parent'] = (int) $parent_filter;
    }
}

public static function restrict_manage_posts() {

    if ( isset( $_GET['post_type'] ) && $_GET['post_type'] == 'episode' ) {
        $args     = [
            'post_type'   => 'podcast',
            'numberposts' => - 1,
        ];
        $podcasts = get_posts( $args );

        $select = '<select name="parent"><option value="">Podcast (' . count( $podcasts ) . ')</option>';
        foreach ( $podcasts as $podcast ) {
            $selected = ( isset( $_GET['parent'] ) && (int) $_GET['parent'] > 0 ) ? 'selected="selected"' : '';
            $select   .= '<option value="' . $podcast->ID . '" ' . $selected . '>' . $podcast->post_title . '</option>';
        }
        $select .= '</select>';
        echo $select;
    } else {
        return;
    }
}
Post a comment

comment list (0)

  1. No comments so far