pre_get_posts
. Вот пример правильной подмены post_type в таксономии:add_action( 'pre_get_posts', 'custom_pages_cases', 1 );
if ( ! function_exists( 'custom_pages_cases' ) ) {
function custom_pages_cases( $query ) {
// Выходим, если это админ-панель или не основной запрос
if( is_admin() || ! $query->is_main_query() )
return;
if( $query->is_post_type_archive('instructor') || $query->is_tax('instructors') ) {
$query->set( 'post_type', 'trainer' );
}
}
}
wp_redirect()
add_action( 'template_redirect', 'rider_redirect_canonical' );
function rider_redirect_canonical() {
if ( is_single() && ( 'instructor' === get_post_type() ) ) {
$post_slug = get_post_field('post_name');
// получаем id записи в другом post_type по текущему слагу
$args = array( 'name' => $post_slug, 'post_type' => 'trainer', 'post_status' => 'publish', 'numberposts' => 1 );
$post_id = get_posts($args)[0]->ID ?: '0';
if ( $post_id != '0' ) {
wp_redirect( get_permalink($post_id), 301 );
exit();
}
}
}
wp_insert_post() // вставляем запись в базу
wp_update_post() // обновляем запись в базе
get_post_meta() // получаем мета-данные
add_post_meta() // добавляем мета-данные
update_post_meta() // обновляем мета-данные
wp_set_object_term() // устанавливаем термины для записи
wp_insert_category() // вставляем термин в базу
wp_insert_post() // вставляем запись в базу
wp_update_post() // обновляем запись в базе
get_post_meta() // получаем мета-данные
add_post_meta() // добавляем мета-данные
update_post_meta() // обновляем мета-данные
wp_set_object_term() // устанавливаем термины для записи
wp_insert_category() // вставляем термин в базу
wp_insert_post()
// Создаем массив
$post_data = array(
'post_title' => 'Заголовок записи',
'post_content' => 'Здесь должен быть контент (текст) записи.',
'post_status' => 'publish',
'post_author' => 1,
'post_category' => array(8,39)
);
// Вставляем данные в БД
$post_id = wp_insert_post( wp_slash($post_data) );
get_field($selector, [$post_id], [$format_value]);
// задаем нужные нам критерии выборки данных из БД
$args = array(
'posts_per_page' => 5,
'post_type' => 'product',
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => 'сhristmas'
)
)
);
$query = new WP_Query( $args );
// Цикл
if ( $query->have_posts() ) {
echo '<ul class="slider">';
while ( $query->have_posts() ) {
$query->the_post();
echo '<li class="slider__item">' . get_the_title() . '</li>';
}
echo '</ul>';
} else {
// Постов не найдено
}
// Возвращаем оригинальные данные поста. Сбрасываем $post.
wp_reset_postdata();
wp_enqueue_script()
, стили - wp_enqueue_style()
$(document).ready(function(){
$('.slider').slick({
setting-name: setting-value
});
});
wp_add_inline_script()
на зависимость от основного slick-скрипта