<?php
$loop = new WP_Query([
'post_type' => 'blogs',
'post__in' => [ get_field('id'), get_field('id_2'), get_field('id_3')]
]); ?>
<?php while ($loop->have_posts()) : $loop->the_post(); ?>
<div class="block__project blogs col-md-3 col-sm-12" style="width: 100%; height: 300px !important; padding: 0; position: relative; margin-bottom: 15px;">
<span class="block__project_title blogs" style="position: absolute; top: 10px; bottom: auto; left: 10px; max-width: 480px;">
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</span>
<div class="blogs__template" style="height: 100%; position: relative; text-align: right;">
<div class="" style="z-index: 2; height: 100%; width: 100%; position: absolute; background: linear-gradient(90deg, rgba(218,223,225,1) 45%, rgba(255,255,255,0) 99%);"> </div>
<div class="ellipsis" style="position: absolute; z-index: 3; top: auto; bottom: 50px; left: 20px; max-width: 500px; max-height: 140px; overflow: hidden; text-overflow: ellipsis;"><?php the_field('post_text'); ?></div>
<img src="<?php the_field('post_avatar'); ?>" alt="" style="height: 100%;">
</div>
</a>
<!-- <div class="blogs__text" style="position: absolute; left: 10px; bottom: 10px; color: #000; padding: 5px; background-color: #fff; display: flex; justify-content: center; align-items: center;">
<?php the_field('post_text'); ?>
</div> -->
</div>
<?php endwhile; ?>
<?php
/* Template name: Результаты */
/* Template part for displaying posts */
?>
<?php
$count_items = -1;
if ($query->have_posts()) {
?>
<section>
<h2>Филлеры</h2>
<?php $query = new WP_Query(array('post_type' => 'catalog', 'category_name' => 'fillers', 's' => $_GET['_sf_s'], 'posts_per_page' => 8)); while ($query->have_posts()) : $query->the_post(); ?>
<a href="<?php the_permalink() ?>">
<div class="offer__item">
<img src="<?php the_field('image'); ?>" alt="">
<span class="category__span">Категория товара</span>
<span><?php the_title(); ?></span>
<div>
<button>Заказать</button>
<button>Информация</button>
</div>
</div>
</a>
<?php endwhile; wp_reset_postdata(); ?>
</section>
<section>
<h2>Биоревитализанты</h2>
<?php $query2 = new WP_Query(array('post_type' => 'catalog', 'category_name' => 'biorevitalizanty', 's' => $_GET['_sf_s'], 'posts_per_page' => 8)); while ($query2->have_posts()) : $query2->the_post(); ?>
<a href="<?php the_permalink() ?>">
<div class="offer__item">
<img src="<?php the_field('image'); ?>" alt="">
<span class="category__span">Категория товара</span>
<span><?php the_title(); ?></span>
<div>
<button>Заказать</button>
<button>Информация</button>
</div>
</div>
</a>
<?php endwhile; wp_reset_postdata(); ?>
</section>
<?php
} else {
echo "</br> Результатов не найдено :(";
}
?>
function displayCart() {
var cartArray = shoppingCart.listCart();
var output = "" + "<div ><input class='input-send' name='phone' value='' placeholder='Номер телефона' requaired>" + "<input class='input-send' name='name' value='' placeholder='Ваша почта' requaired>" + "<button class='sendspan' type='submit'>Отправить заказ</button></div>";
for (var i in cartArray) {
output += "<div class='form-group'>"
+ "<img src=" + cartArray[i].name + ">"
+ "<div class='input-group'><button class='minus-item input-group-addon' data-name=" + cartArray[i].name + ">-</button>"
+ "<input name='mutch' type='number' class='item-count form-control' data-name='" + cartArray[i].name + "' value='" + cartArray[i].count + "' requaired>"
+ "<button class='plus-item btn input-group-addon' data-name=" + cartArray[i].name + ">+</button></div>"
+ "<div name='price' requaired>" + cartArray[i].total + "</div>"
+ "<button class='delete-item btn btn-danger' data-name=" + cartArray[i].name + ">×</button>"
+ "<p class='form-message'></p>"
+ "<div id='message'></div>"
+ "</div>"
+ "<input class='offer' name='offer[]' value='Артикул: " + cartArray[i].name + " | Количество: " + cartArray[i].count + " | Сумма: " + cartArray[i].total + "' requaired>"
+ "</div>";
}
$('.show-cart').html(output);
$('.total-cart').html(shoppingCart.totalCart());
$('.total-count').html(shoppingCart.totalCount());
}
+ "<input class='offer' name='offer[]' value='Артикул: " + cartArray[i].name + " | Количество: " + cartArray[i].count + " | Сумма: " + cartArray[i].total + "' requaired>"
post-<?php the_ID(); ?>
// Удалим слэш на конце, если нужно. Если слэш есть в структуре ЧПУ, то он будет добавляться и к постоянным страницам.
add_filter( 'user_trailingslashit', 'no_page_slash', 70, 2 );
function no_page_slash( $string, $type ){
global $wp_rewrite;
if( 'page' === $type && $wp_rewrite->using_permalinks() && $wp_rewrite->use_trailing_slashes )
$string = untrailingslashit( $string );
return $string;
}
<?php
$current_page = $_GET['page']; // текущая страница
$post_type = 'projects'; // имя custom post type
// если GET параметр пустой, то принимаем, что текущая страница равна 1
if ( empty($current_page) ) {
$current_page = 1;
}
// аргументы, передаваемые в запрос
$args = array(
'post_type' => $post_type, // custom post type
'posts_per_page' => 10, // количество постов на одной странице
'paged' => $current_page, // задаем номер страницы, которую хотим отобразить
);
$projects = new WP_Query( $args ); // отправляем запрос
if ( $projects->have_posts() ) :
while ( $projects->have_posts() ) : $projects->the_post(); ?>
// здесь HTML разметка поста
<?php endwhile;
// если максимальное количество страниц больше 1, то выводим пагинацию
if ( $projects->max_num_pages > 1 ) :
// если это не последняя страница и не первая, то выводим ссылки на следующую и предыдущую страницу
if ( $projects->max_num_pages > $current_page && $current_page > 1 ) : ?>
<a href="<?php prevlink($current_page) ?>">Предыдущая страница</a>
<a href="<?php nextlink($current_page) ?>">Следующая страница</a>
// если текущая страница является первой страницей, выводим только ссылку на следующую страницу
<?php elseif ( $current_page == 1 ) : ?>
<a href="<?php nextlink($current_page) ?>">Следующая страница</a>
// если текущая страница - это последняя страница, выводим ссылку только на предыдущую страницу
<?php elseif ( $current_page == $projects->max_num_pages ) : ?>
<a href="<?php prevlink($current_page) ?>">Предыдущая страница</a>
<?php endif;
endif;
endif;
?>
<?php
// ссылка на следующую страницу
function nextlink($current){
echo '?page=' . ($current + 1);
}
// ссылка на предыдущую страницу
function prevlink($current){
echo '?page=' . ($current - 1);
}
?>
add_action( 'init', 'register_post_types' );
function register_post_types(){
register_post_type('имя_вашего_типа_поста', array(
'label' => null,
'labels' => array(
'name' => 'Проекты', // основное название для типа записи
'singular_name' => 'Проект', // название для одной записи этого типа
'add_new' => 'Добавить проект', // для добавления новой записи
'add_new_item' => 'Добавление проекта', // заголовка у вновь создаваемой записи в админ-панели.
'edit_item' => 'Редактирование проекта', // для редактирования типа записи
'new_item' => 'Новый проект', // текст новой записи
'view_item' => 'Смотреть проект', // для просмотра записи этого типа.
'search_items' => 'Искать проект', // для поиска по этим типам записи
'not_found' => 'Не найдено', // если в результате поиска ничего не было найдено
'not_found_in_trash' => 'Не найдено в корзине', // если не было найдено в корзине
'parent_item_colon' => '', // для родителей (у древовидных типов)
'menu_name' => 'Проекты', // название меню
),
'description' => '',
'public' => true,
'publicly_queryable' => null, // зависит от public
'exclude_from_search' => null, // зависит от public
'show_ui' => null, // зависит от public
'show_in_menu' => null, // показывать ли в меню адмнки
'show_in_admin_bar' => null, // по умолчанию значение show_in_menu
'show_in_nav_menus' => null, // зависит от public
'show_in_rest' => null, // добавить в REST API. C WP 4.7
'rest_base' => null, // $post_type. C WP 4.7
'menu_position' => null,
'menu_icon' => null,
//'capability_type' => 'post',
//'capabilities' => 'post', // массив дополнительных прав для этого типа записи
//'map_meta_cap' => null, // Ставим true чтобы включить дефолтный обработчик специальных прав
'hierarchical' => false,
'supports' => array('title','thumbnail'), // 'title','editor','author','thumbnail','excerpt','trackbacks','custom-fields','comments','revisions','page-attributes','post-formats'
'taxonomies' => array(),
'has_archive' => false,
'rewrite' => true,
'query_var' => true,
) );
}
<?php
/*
* Template Name: Проекты
*/
?>
<?php get_header(); ?>
<?php
/*
* Получаем все посты
* post_type - название нашего произвольного типа записей (идентификатор)
* posts_per_page - количество получаемых записей
* (в нашем случае стоит -1, это значит, что нужно получить все посты)
*/
$projects = new WP_Query(array('post_type' => 'ваш_тип_постов', 'posts_per_page' => -1));
?>
<div class="wrap">
<!— Не забудьте в цикл добавить полученный объект постов $reviews —>
<?php if ( $projects->have_posts() ) : while ( $projects->have_posts() ) : $projects->the_post(); ?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<div class="review-excerpt"><?php the_excerpt(); ?></div>
<span>Цена проекта: <?php the_field("цена_проекта") ?></span>
<span>Кол-во спален: <?php the_field('количество_спален') ?></span>
<?php endwhile; ?>
<?php endif; ?>
</div>
<?php get_footer(); ?>