• Как вместо изображения записи вывести слайдер?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    Можно с помощью бесплатного ACF, но вы будете ограничены каким-то конечным числом слайдов, тобишь в админке скажим максимум 10 слайдов, у каждого свой слаг, который мы получаем в шаблоне, и дальше 10 проверок на существование и вывод слайдов. тут предельно просто.
    С помощью встроенной галереи тоже можно, но галерея выводится фенкцией the_content(), тобишь есть неотъемлемой частью контента из редактора, соответственно выводится будет там где остальной контент. Если нужно решение как превратить стандартную галерею в слайдер я напишу.

    PS/Слайдер из встроенной галереи

    В functions.php
    function gallery_slider($output, $attr) {
    	$ids = explode(',', $attr['ids']);
    	$images = get_posts(array(
    		'include'        => $ids,
    		'post_status'    => 'inherit',
    		'post_type'      => 'attachment',
    		'post_mime_type' => 'image',
    		'orderby'        => 'post__in',
    		'order'          => 'ASC',
    	));
    	if ($images) {
    		$output = gallery_slider_template($images);
    		return $output;
    	}
    }
    add_filter('post_gallery', 'gallery_slider', 10, 2);
    
    function gallery_slider_template($images) {
    	ob_start();
    	include 'gallery-slider.php';
    	$output = ob_get_clean();
    	return $output;
    }

    В корне темы соответственно создаем шаблон gallery-slider.php с подобной разметкой (у меня под slick)

    <div class="gallery-slider">
    	<?php
    	foreach ($images as $image) {
    		$src = wp_get_attachment_url($image->ID); // ссылка на изображение
    		$alt = get_post_meta($image->ID, '_wp_attachment_image_alt', true); // атрибут alt
    		$title = $image->post_title; // заголовок изображения
    		$caption = $image->post_excerpt; // подпись к изображению
    		$description = $image->post_content; // описание изображения
    	?>
    	<div>
    		<img src="<?php echo $src; ?>" alt="<?php echo $alt; ?>">
    		<div class="single-post-thimbnail-text"><?php echo $caption; ?></div>
    	</div>
    <?php } ?>
    </div>

    Собственно, не забываем, что нужно добавить стили и скрипты самого слайдера (в моем случае slick) и инициализировать его в файле с вашим js
    $('.gallery-slider').slick({
    	arrows: true,
    	dots: true,
    	speed: 500,
    });
    Ответ написан
    2 комментария
  • Что не так с border'ом и как это исправить?

    @kyzinatra
    .about-us-img-gradient{
    box-shadow: inset 0 0 0 (размер рамки)px black; - для четкой рамки
    box-shadow: inset 0 0 (размер рамки)px black; - для размытой, красивой рамки
    }
    Ответ написан
    Комментировать
  • Как вставить кнопку в хедер?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    У вас это место, тобишь контакты, выводится из админки Внешний вид > Меню, с помошью одного из меню, если их там несколько. Нужно найти его и добавить в меню пункт меню Произвольная ссылка или прямо выбрать до конкретной страницы, например, обратной связи. Название пишете Оставить заявку, ссылка или существующая, если добавили страницу или вручную куда надо. Также там можно добавить класс. Если такого пункта нет, то вверху страницы найдите кнопку Настройка экрана, там поставить галочку про класс. Класс задается тегу LI, которым обернута ваша ссылка. По классу можете стилизовать кнопку как вам угодно
    Ответ написан
    Комментировать