$myQuery = new WP_Query( [
'meta_query' => [
'relation' => 'OR',
'price_exists' => [
'relation' => 'AND',
[
'key' => '_project_price',
'value' => $price_from,
'type' => 'DECIMAL',
'compare' => '>='
],
[
'key' => '_project_price',
'value' => $price_to,
'type' => 'DECIMAL',
'compare' => '<='
],
],
'price_empty' => [
'key' => '_project_price',
'compare' => 'EXIST',
],
],
'orderby' => [
'price_exists' => 'ASC',
'price_empty' => 'DESC',
],
] );
BETWEEN
найдет все ключи с заданным диапазоном между $price_from и $price_to, а второй NOT BETWEEN
- которые в диапазон не входят$myPosts = get_posts( array(
'numberposts' => -1,
'post_type' => 'product',
) );
foreach ( $myPosts as $key => $myPost ) {
// проверяем, что поля не существует
if ( get_post_meta( $myPost->ID, '_project_price', true ) == false ) {
update_post_meta( $myPost->ID, '_project_price', '' ); // пишем в него пустое значение
}
}
save_post
, чтобы при сохранении поста добавлялось пустое значение, если оно не указано register_post_type()
и таксономии к нему register_taxonomy()
$termsArray = array( 'photo_cat ', 'video_cat' );
$startArray = array(
'mos' => 'Москва',
'len' => 'Санкт-Петербург',
'nsk' => 'Новосибирск',
'ekb' => 'Екатеринбург',
);
foreach ( $startArray as $key => $startItem ) {
foreach ( $termsArray as $termsItem ) {
// Проверяем, что такого термина еще не существует
$termID = get_term_by( 'slug', $key, $termsItem )->term_id ?: '0';
if ( $termID == '0' ) {
$termArgs = array(
'cat_ID' => $termID,
'cat_name' => $startItem,
'category_description' => '',
'category_nicename' => $key,
'category_parent' => '',
'taxonomy' => $termsItem
);
$termID = wp_insert_category( $termArgs );
// пишем ошибку/ успех
if( is_wp_error($termID) ) {
var_dump('Ошибка инсерта термина ' . $startItem . ' таксономии ' . $termsItem . ': ' . $termID->get_error_message())
} else {
var_dump('Термин ' . $startItem . ' таксономии ' . $termsItem . ' опубликован удачно!');
}
} // end if $termID == '0'
} // end foreach $termsArray
} // end foreach $startArray
$fileImport = get_stylesheet_directory() . '/data/example.xlsx';
if ( $xlsx = SimpleXLSX::parse( $fileImport )) {
$sheetData = $xlsx->rows(1);
foreach ( $sheetData as $key => $sheetRow ) {
var_dump( $sheetRow );
}
} else {
var_dump( SimpleXLSX::parse_error() );
}
get_template_part()
, так же как и там__()
или _e()
. После чего вы сможете перевести эти строки на нужные вам языки плагином Loco Translate или программой Poedit get_terms()
. Для вывода списка категорий можете воспользоваться примером или кастомизировать его:$terms = get_terms( 'product_cat' );
if( $terms && !is_wp_error($terms) ){
echo '<ul>';
foreach( $terms as $term ){
echo '<li><a href="' . get_term_link( $term ) . '">' . $term->name . '</a></li>';
}
echo '</ul>';
}
// получаем номер страницы пагинации
$current = absint(
max( 1, get_query_var( 'paged' ) ? get_query_var( 'paged' ) : get_query_var( 'page' ) )
);
'paged' => $current,
wp_reset_query()
echo wp_kses_post(
paginate_links( [
'total' => $loop->max_num_pages,
'current' => $current,
] )
);