👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →
В административной части при просмотре всех записей можно пользоваться фильтрами – выбирать посты за определенную дату, опубликованные в определенной категории. Но многие используют так же и произвольные поля, и было бы неплохо научить WordPress фильтровать посты и по ним.
Давайте добавим в блог такую возможность. Для этого откройте файл functions.php используемой вами темы, и добавьте в него следующий код:
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); ?> <?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 ( '%s', $field[0], $field[0] == $current? ' selected="selected"':'', $field[0] ); } } ?> <input type="TEXT" name="ADMIN_FILTER_FIELD_VALUE" value="" /> <?php }
Ну вот теперь, если вы активно используете произвольные поля, то можете по ним фильтровать все записи.

Возможно ли данную функцию внедрить в страницу блога?
в принципе достаточно сделать
использую для постовых на ГГЛ произвольное поле “postovoy”. как переиначить этот код, чтобы в админке я мог фильтровать те страницы, на которых уже есть это поле? Благодарю.
А зачем переиначивать? Внедряйте код, и фильтруйте записи по вашему произвольному полю.
отфильтровал по полю “postovoy”. можно ли инвертировать? чтобы видеть, какие страницы я в данный момент могу подпортить постовым?:)
Вы на старые коменты не отвечаете?