$query = new WP_Query( [ 'post_type' => 'post' ] );
while ( $query->have_posts() ) {
$query->the_post();
// проверяем заголовок на пустоту
if ( get_the_title() == '' ) {
var_dump(get_the_ID()); // печатаем ID
}
}
$meta_query = array(
'relation' => 'OR', // не обязательно, по умолчанию 'AND'
array(
'key' => 'key_name',
'value' => 'значение поля',
'compare' => '=' // не обязательно, по умолчанию '=' или 'IN' (если value массив)
)
);
get_terms()
$terms = get_terms( array(
'taxonomy' => array( 'post_tag', 'my_tax' ),
'meta_query' => $meta_query,
) );
foreach( $terms as $term ){
print_r($term);
}
:nth-child(N)
$val = 1;
foreach ( $array as $array_value ) {
if( $val%2 == 0 ) {
var_dump('Это четный элемент');
} else {
var_dump('Это НЕчетный элемент');
}
$val++;
}
mail()
. Можете использовать нативную функцию wp_mail()
$commentYear = (int) '2014'; // первый год комментариев
// запускаем цикл до текущего года
while ( $commentYear <= date('Y') ) {
$comments = get_comments( array(
'orderby' => 'date',
'status' => 'approve',
'order' => 'DESC',
'date_query' => array(
array(
'year' => $commentYear
)
)
) );
if ( $comments ) {
// пишем вывод
}
$commentYear++;
}
get_the_date()
и the_time()
должна быть определена переменная $post. Чтобы ее определить нужно получать посты из базы с помощью wp_query()
или get_posts()
и установить ее в цикле с помощью setup_postdata($post)
getNews()
у вас я не знаю, а писать переменные кириллицей моветон wp_query()
или get_posts()
, а чтобы получить термины, используйте функцию get_terms()
add_action( 'pre_get_posts', 'skill_pre_get_posts', 1 );
if ( ! function_exists( 'skill_pre_get_posts' ) ) {
function skill_pre_get_posts( $query ) {
// Выходим, если это админ-панель или не основной запрос
if( is_admin() || !$query->is_main_query() )
return;
if( $query->is_post_type_archive('event') ) {
$query->set( 'meta_key', 'date' );
$query->set( 'orderby', 'meta_value_num' );
$query->set( 'order', 'ASC' );
}
}
}
get_posts()
, чтобы не перезаписывать глобальную переменную $post и получать только id постов, чтобы сократить запрос:$objcount = get_posts( array(
'numberposts' => -1,
'post_type' => array( 'apartment', 'exclusive-objects' ),
'fields' => 'ids',
'meta_query' => array(
array(
'key' => 'realtor-id',
'value' => get_the_ID(),
'compare' => '='
)
)
) );
echo count($objcount);
if () { ... } else { ... }
выводить разный дизайн{custom-page-template}.php
, в комментариях должно быть указано название:<?php
/*
Template Name: Мой шаблон страницы
*/
?>
'tax_query'
— это обычный массив, вы можете добавлять в него значения в зависимости от существования переменных $_POST$args = [
'post_type' => 'goods',
];
if ( !empty($_POST['color']) && !empty($_POST['category']) ) {
$args['tax_query'] = [
'relation' => 'AND',
[
'taxonomy' => 'color',
'field' => 'slug',
'terms' => $_POST['color']
],
[
'taxonomy' => 'category',
'field' => 'slug',
'terms' => $_POST['category']
]
];
} elseif( !empty($_POST['color']) || !empty($_POST['category']) ) {
if ( !empty($_POST['color']) ) {
$args['tax_query'] = [
[
'taxonomy' => 'color',
'field' => 'slug',
'terms' => $_POST['color']
]
];
} else {
$args['tax_query'] = [
[
'taxonomy' => 'category',
'field' => 'slug',
'terms' => $_POST['category']
]
];
}
}
$query = new WP_Query( $args );
'category'
это зарезервированная таксономия для записей. Если вы пользуетесь woocommerce, то там таксономии называются 'product_cat'
. Возможно поэтому ваш код и не работает