wp_query()
и выводите так, как вам нужно// задаем нужные нам критерии выборки данных из БД
$args = array(
'post_type' => 'page',
'post_parent' => $pageN
);
$query = new WP_Query( $args );
// Цикл
if ( $query->have_posts() ) {
echo '<ul>';
while ( $query->have_posts() ) {
$query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
} else {
// Постов не найдено
}
// Возвращаем оригинальные данные поста. Сбрасываем $post.
wp_reset_postdata();
pre_get_posts
add_action( 'pre_get_posts', 'custom_pre_get_posts', 1 );
function custom_pre_get_posts( $query ) {
// Выходим, если это админ-панель или не основной запрос
if( is_admin() || !$query->is_main_query() )
return;
// устанавливаем по 12 постов на страницах пагинации с главной
if ( $query->is_main_query() && $query->is_home() && $query->is_paged() ) {
$query->set( 'posts_per_page', 12 );
}
}
add_filter( 'query_vars', 'add_query_vars' );
function add_query_vars( $qvars ) {
$qvars[] = 'ref';
return $qvars;
}
https://example.ru/?ref=48
function set_new_cookie() {
if ( $ref = get_query_var( 'ref', false ) ) {
//setting your cookies there
}
}
add_action( 'init', 'set_new_cookie' );
add_action( 'user_register', 'referral_registration_save', 10, 1 );
function referral_registration_save( $user_id ) {
if ( isset( $_COOKIE['ref'] ) )
add_user_meta( $user_id, 'ref', $_COOKIE['ref'], true );
}
get_template_part()
if ( in_category( 'news' ) ) {
get_template_part( 'templates/single', 'news' );
} elseif( in_category( 'articles' ) ) {
get_template_part( 'templates/single', 'articles' );
} else {
get_template_part( 'templates/single', 'default' );
}
wp_add_inline_script()
add_action('wp_enqueue_scripts', function() {
wp_enqueue_script( 'my_scripts', get_stylesheet_directory_uri() .'/my_scripts.js' );
wp_add_inline_script( 'my_scripts', '$(\'.selectpicker\').selectpicker();' );
});
/* Получим в HTML коде
<script type='text/javascript' src='http://example.com/wp-content/themes/mytheme/my_scripts.js'></script>
<script type='text/javascript'>
$('.selectpicker').selectpicker();
</script>
*/
$categories = get_the_terms( $post->ID, 'voprosy-types' );
$category_ids = array();
foreach( $categories as $individual_category ) {
$category_ids[] = $individual_category->term_id;
}
$args = array(
'post__not_in' => array( $post->ID ),
'posts_per_page' => '5',
'orderby' => 'rand',
'tax_query' => [
[
'taxonomy' => 'voprosy-types',
'field' => 'id',
'terms' => $category_ids,
]
]
);
$locale = get_locale();
if( $locale == 'uk' ) {
echo do_shortcode( '[contact-form-7 id="420" title="Оформити заявку"]' );
} elseif( $locale == 'ru_RU' ) {
echo do_shortcode( '[contact-form-7 id="419" title="Оформить заявку"]' );
} else {
echo do_shortcode( '[contact-form-7 id="421" title="Make a request"]' );
}
register_taxonomy()
, лучше для каждого типа записи иметь свои таксономии, так вы избежите множества проблем в дальнейшем$post_type = get_post_type();
if ( file_exists( get_theme_file_path( 'templates/archive/archive-' . $post_type . '.php' ) ) ) {
get_template_part( 'templates/archive/archive-' . $post_type );
} else {
get_template_part( 'templates/archive/archive-common' );
}
register_post_type()
тоже есть аргумент rewrite, который тоже используется для построения ссылок$args = [
'post_type' => ['post','service'],
'post__in' => [5,12,2,14,7],
'orderby' => 'post__in',
];
$loop = new WP_Query( $args );
if ( get_post_type() === 'service' ) {
get_template_part( 'templates/archive/archive-service' );
} else {
get_template_part( 'templates/archive/archive-common' );
}
$post_type = get_post_type();
if ( file_exists( get_theme_file_path( 'templates/archive/archive-' . $post_type . '.php' ) ) ) {
get_template_part( 'templates/archive/archive-' . $post_type );
} else {
get_template_part( 'templates/archive/archive-common' );
}