get_the_category()
собрать массивы в массиве родительских категорий$categories = get_the_category();
$out = array();
foreach ( $categories as $key => $category ) {
$out[$category->category_parent][$category->term_id]['title'] = $category->name;
$out[$category->category_parent][$category->term_id]['link'] = get_term_link( $category->term_id, 'category' );
}
foreach ( $out as $keyP => $cats ) {
// пропускаем, если рубрика родительская
if ( $key === 0 )
continue;
echo '<ul class="cats cats-inline">';
foreach ( $cats as $key => $cat ) {
echo '<li class="cats--item"><a href="' . $cat['link'] . '" class="cats--link">' . $cat['title'] . '</a></li>';
}
echo '</ul>';
}
get_the_category()
не будет. Если для работы они вам нужны, то id родительской категории находится в переменной $keyP. Вы можете получить для них данные с помощью get_category()
в цикле или предварительно собрать список $ids и получить одним запросом:$parents = array();
foreach ( $categories as $key => $category ) {
//проверяем, что категория не родительская и ее нет в общем массиве
if ( $category->category_parent !== 0 && !in_array( $category->category_parent, $parents ) ) {
$parents[] = $category->category_parent;
}
}
$args = [
'taxonomy' => 'category',
'include' => $parents,
'fields' => 'id=>name',
];
$terms = get_terms( $args );
foreach ( $out as $keyP => $cats ) {
if ( isset( $terms[$keyP] ) ) {
echo $terms[$keyP];
}
}
$working_hours = [
'1' => '10:00 — 19:00', // понедельник
'2' => '10:00 — 19:00',
'3' => '10:00 — 19:00',
'4' => '10:00 — 19:00',
'5' => '10:00 — 20:00', // пятница
'6' => '10:00 — 15:00', // суббота
'7' => __( 'Day off', 'textdomain' ) // воскресенье
];
$current_day = date( 'N' );
echo strtr( $current_day, $working_hours );
$current = absint( max( 1, get_query_var( 'paged' ) ? get_query_var( 'paged' ) : get_query_var( 'page' ) ) );
$args = [
'post_type' => 'news',
'posts_per_page' => $posts_per_page,
'paged' => $current,
];
paginate_links()
echo wp_kses_post(
paginate_links(
[
'total' => $loop->max_num_pages, // количество берем из дефолтной опции запроса
'current' => $current, // текущая страница
]
)
);
paginate_links()
можете удалить, вызывать global $wp_query
не нужноwhile ( $loop->have_posts() ) {
# code...
}
echo wp_kses_post( paginate_links() );
query_vars
свою переменную add_filter( 'query_vars', 'add_query_vars' );
function add_query_vars( $qvars ) {
$qvars[] = 'partner';
return $qvars;
}
get_query_var()
if ( $query_var = get_query_var( 'partner' ) ) {
# code...
}
add_query_arg()
$url = add_query_arg( ['partner' => $user_id], home_url( '/' ) );
pre_get_posts
, где можно изменить параметры глобального запроса аргументом ignore_sticky_posts function wpz_scripts() {
wp_enqueue_script( 'ajax-events', get_theme_file_uri( 'dist/build/ajax-events.min.js' ), array( 'jquery' ), filemtime( get_theme_file_path( '/dist/build/ajax-events.min.js' ) ) );
wp_localize_script(
'ajax-events',
'ajax_events_obj',
array(
'url' => admin_url( 'admin-ajax.php' ),
'nonce' => wp_create_nonce( 'nonce-events' ) // Создаем nonce
)
);
}
add_action( 'wp_enqueue_scripts', 'wpz_scripts' );
paginate_links()
есть фильтр paginate_links_output
, можете попробовать распарсить регулярками итоговый htmlpaginate_links()
, посмотрите и скопируйте нужные запросы в свою функцию, а вывод верстки измените на свойpaginate_links()
именно в том и заключается чтобы получить и вывести ссылки. Уж не знаю, что по вашему должно происходить по кликам на кнопки и как WP должен понять какая ссылка следующая, а какая предыдущая, но вы хотя бы в дата-атрибуты их положите