Я использую плагин 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'],
));
}
Если вы добавите несколько мета-полей к какому-либо типу поста, все посты будут иметь это поле. Вы можете фильтровать посты по не пустым метаполям, используя следующий код:
$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
Других решений пока нет …