Добрый день!
Делаю фильтр по родительскому посту в админке - в выпадающем списке все родительские посты, при выборе родительского поста фильрую все дочерние (код ниже) - проблема в том что при подключении этого фильтра ломается стандартный поиск. что я делаю не так ?
add_action('restrict_manage_posts','custom_filter_for_mfo_html');
function custom_filter_for_mfo_html(){
global $typenow;
if ($typenow=='mfo') {
$args = array(
'numberposts' => -1,
'orderby' => 'title',
'order' => 'ASC',
'post_type' => 'mfo',
'post_status' => 'publish',
'post_parent' => 0,
);
?>
<select name="mfo_filter" id="filter-by-parent">
<?php
$posts = get_posts( $args );
foreach($posts as $post){ setup_postdata($post);
$is_child_page = $post->post_parent;
if (!$is_child_page) {
$child_args = array(
'post_parent' => $post->ID,
'post_type' => 'mfo',
'post_status' => 'publish',
'numberposts' => -1,
);
$chid_posts = get_children($child_args);
if ($chid_posts) {
?>
<option value="<?php echo $post->ID; ?>"><?php echo $post->post_title; ?></option>
<?php
}
}
}
?>
</select>
<?php
wp_reset_postdata();
}
}
add_filter('request','custom_filter_for_mfo');
function custom_filter_for_mfo($vars){
if (is_admin() && $GLOBALS['PHP_SELF'] == '/wp-admin/edit.php' && isset($vars['post_type']) && $vars['post_type'] == 'mfo') {
if (!empty($_GET['mfo_filter'])){
$vars['post_parent'] = intval($_GET['mfo_filter']);
}
}
return $vars;
}