shkola/wp-content/themes/dekart/taxonomy-subject.php

165 lines
6.5 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
get_header();
$term = get_queried_object();
?>
<main class="page-teachers">
<?php
$h1 = carbon_get_term_meta( $term->term_id, 'subject_h1' );
?>
<section class="contetn-main_block">
<div class="container">
<h1 class="teachers_title"><?php echo $h1; ?></h1>
<div class="main_content">
<?php echo $term->description; ?>
</div>
</div>
<div style="height:50px" class="wp-block-spacer"></div>
</section>
<?php
$count_teachers = 8;
$useragent = $_SERVER['HTTP_USER_AGENT'];
if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4))) $count_teachers = 4;
?>
<section class="list-teachers">
<div class="container">
<?php
$terms = get_terms( array(
'hide_empty' => 0,
'orderby' => 'name',
'order' => 'ASC',
'taxonomy' => 'subject',
'pad_counts' => 1,
'hide_empty' => true,
) );
// оставим только термины с parent=0
$terms = wp_list_filter( $terms, array('parent'=>0) );
//var_dump($terms);
$list = "<ul class='subject__list'><li class='subject__list_item' data-index='0'><a href='/our-teachers/'>Все предметы</a></li>";
$count = 1;
foreach( $terms as $item ) {
$link = get_term_link($item->term_id, 'subject');
$list .= "<li class='subject__list_item' data-index='$count'><a href='$link'>" . $item->name . "</a></li>";
$count++;
}
$list .= "</ul>";
?>
<div class="subject-wrapper">
<span class="click-area">Наши преподаватели</span>
<?php echo $list; ?>
</div>
<div class="teachers-wrapper">
<?php
$term_id = $term->term_id; // ID термина
$taxonomy = 'subject'; // Название кастомной таксономии
$count = 1;
$args = array(
'post_type' => 'teacher', // Кастомный тип записи
'tax_query' => array(
array(
'taxonomy' => $taxonomy,
'field' => 'term_id', // Ищем по ID термина
'terms' => $term_id,
),
),
'posts_per_page' => -1, // Количество записей (-1 = все записи)
);
$query = new WP_Query($args);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
$teacher_subjects = carbon_get_post_meta( $post->ID, 'teacher_subjects' );
if ( $count > $count_teachers ) {
$style = 'display: none; scale: 0;';
} else {
$style = '';
}
?>
<div class="teachers__item <?php echo $class; ?>" style="<?php echo $style; ?>">
<div class="ourteacher-avatar">
<a href="<?= esc_url( get_permalink( $post->ID ) ); ?>" title="<?= esc_attr( get_the_title( $post->ID ) ); ?>">
<?php
$avatar = get_the_post_thumbnail_url( $post->ID );
if ( ! empty( $avatar ) ) : ?>
<img src="<?= esc_url( $avatar ); ?>" alt="<?= esc_attr( get_the_title( $post->ID ) ); ?>" title="<?= esc_attr( get_the_title( $post->ID ) ); ?>">
<?php endif; ?>
</a>
</div>
</div>
<?php
$count++;
}
} else {
echo 'Записи не найдены.';
}
wp_reset_postdata(); // Сбрасываем данные запроса ?>
</div>
<?php if ( $count > $count_teachers ) { ?>
<div class="buttons">
<button class="btn-yellow-link btn-more-teacher">Показать всех</button>
</div>
<?php } ?>
</div>
</section>
<script>
const count_teachers = <?php echo $count_teachers; ?>;
const teachers = document.querySelectorAll('.teachers__item');
const subjectWrapper = document.querySelector('.subject-wrapper');
const btnMoreTeacher = document.querySelector('.btn-more-teacher');
let currenIndex = 0;
if (btnMoreTeacher) btnMoreTeacher.addEventListener('click', () => {
btnMoreTeacher.classList.toggle('open');
const teachersShow = document.querySelectorAll('.teachers__item');
let index = 0;
teachersShow.forEach(teacher => {
if (btnMoreTeacher.classList.contains("open")) {
teacher.style = '';
} else {
if (index >= count_teachers)
teacher.style = 'display: none; scale: 0;';
}
index++;
});
if (btnMoreTeacher.classList.contains("open")) {
let index = 0;
btnMoreTeacher.textContent = 'Свернуть';
} else {
btnMoreTeacher.textContent = 'Показать всех';
}
});
document.addEventListener('click', (event) => {
if (event.target.classList.contains("click-area")) {
subjectWrapper.classList.toggle('open');
}
});
</script>
<?php get_template_part( 'template-parts/promo-form' ); ?>
<?php get_template_part( 'template-parts/block-why-us' ); ?>
<?php get_template_part( 'template-parts/map' ); ?>
</main>
<?php
get_footer();