Правила местоположения определяют, на каких записях, страницах или контекстах появляется группа полей. Правила используют структуру OR/AND.
Формат правила
php
// Show on posts OR pages
$rules = [
[ [ 'param' => 'post_type', 'operator' => '==', 'value' => 'post' ] ],
[ [ 'param' => 'post_type', 'operator' => '==', 'value' => 'page' ] ],
];
// Show on pages with a specific template AND top-level only
$rules = [
[
[ 'param' => 'post_type', 'operator' => '==', 'value' => 'page' ],
[ 'param' => 'post_template', 'operator' => '==', 'value' => 'templates/landing.php' ],
[ 'param' => 'page_type', 'operator' => '==', 'value' => 'top_level' ],
],
];Поддерживаемые параметры
| Параметр | Операторы | Значения |
|---|---|---|
post_type | ==, != | Любой слаг типа записи |
post_template | ==, != | Имя файла шаблона или 'default' |
post_status | ==, != | publish, draft и т.д. |
post_format | ==, != | standard, video и т.д. |
post_category | ==, != | ID термина категории |
post_taxonomy | ==, != | Формат taxonomy:term_id |
page | ==, != | ID записи в виде строки |
page_type | ==, != | front_page, posts_page, top_level, parent, child |
page_parent | ==, != | ID родительской записи |
current_user | ==, != | ID пользователя |
current_user_role | ==, != | Слаг роли |
options_page | ==, != | Слаг страницы опций |
Параметры пользовательского правила местоположения
php
add_filter( 'fieldforge/match_location_rule', function( $actual, $rule, $post ) {
if ( $rule['param'] === 'has_thumbnail' ) {
return has_post_thumbnail( $post->ID ) ? 'yes' : 'no';
}
return $actual;
}, 10, 3 );
// Usage: [ 'param' => 'has_thumbnail', 'operator' => '==', 'value' => 'yes' ]—