WordPress Admin — создать фильтр страниц по мета-ключу

Я использую плагин Advanced Custom Fields, но я хочу создать страницу в админке, когда будет фильтроваться по метаключу.

Я знаю, как создать страницу для типа сообщения, но это не то же самое.

Мой код в functions.php:

add_action( 'init', 'event' );

function event() {
register_post_type( 'event', array(
'labels' => array(
'name' => 'Events',
'singular_name' => 'event',
),
'description' => 'Events',
'public' => true,
'menu_position' => 20,
'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt'),
'rewrite' => array( 'slug' => 'event'),
'has_archive'=>false,
'taxonomies'=>['category'],
));
}

0

Решение

Если вы добавите несколько мета-полей к какому-либо типу поста, все посты будут иметь это поле. Вы можете фильтровать посты по не пустым метаполям, используя следующий код:

    $args = array(
'post_type'  => 'page',
'meta_key'   => 'event',
);
$query = new WP_Query( $args );

ИЛИ, если вы хотите фильтровать по значению этого метаполя, вы должны использовать meta_query:

    $args = array(
'post_type'  => 'page',
'meta_key'   => 'event',
'meta_query' => array(
array(
'key'     => 'event',
'value'   => array( 'party', 'wedding' ),
'compare' => 'IN',
),
),
);
$query = new WP_Query( $args );

Подробнее на этой странице — https://codex.wordpress.org/Class_Reference/WP_Query

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector