• Как дорабатывать/изменять купленную премиум тему WordPress и не выстрелить себе в ногу?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    И тем не менее, рекомендую создать дочернюю тему и вносить правки уже в ней
    Ответ написан
    Комментировать
  • Какой плагин для WordPress выбрать?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    Я в последнем проекте использовал вот этот плагин, выбирал из штук пяти, моей задачей была возможность рейтить записи или страницы, чтобы хорошо кастомизировалась форма, ибо мне нужно было попасть в дизайн.
    https://wordpress.org/plugins/site-reviews/
    Понравились возможности настройки и кастомизации.
    Не знаю поддерживает ли он сниппеты гугл, уж сами гляньте в документации.
    Ответ написан
    Комментировать
  • Можно ли ссылку оставлять пустую?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    Почему бы вам не сделать это кнопкой. Это более правильно семантически.
    Если же это ссылка, и вы в скриптах делаете preventDefault(), то абсолютно без разницы что будет в href, хоть решетка, хоть javascript:void(0)
    Ответ написан
    Комментировать
  • Как сделать перевод темы Wordpress?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    При создании темы, для которой планируется мультиязычность обычно в корне темы должна быть папка languages, в которой лежит файл перевода theme-name.pot. Если использовать underscores, то файл будет и подключение в functions тоже будет.
    В functions.php на хук after_setup_theme должна быть функция
    load_theme_textdomain( 'theme-name', get_template_directory() . '/languages' );

    где theme-name это текстовый домен темы.
    Для того чтобы подготовить текст к переводу его нужно завернуть в одну из функций перевода, например
    <?php _e('Тут пишем текст, который потом нужно будет переводить', 'theme-name') ?>
    Собственно все, подготовка закончена. Далее работа с переводом.
    Наиболее удобный плагин Loco Translate.
    Инструкций по работе с ним в интернете валом
    Ответ написан
  • Есть ли смысл создавать отдельные дивы для каждой картинки и для лого?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    Я картинки обычно заворачиваю. Если нужно менять размеры или делать отступы, то я это делаю с оберткой, а не с самой картинкой. Опять же если нужно ограничивать размеры через высоту или используя object-fit все равно придётся завернуть. Для анимации типа scale при наведении тоже придётся завернуть.
    Ответ написан
    Комментировать
  • Как бы вы оценили свёрстанный сайт портфолио?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    В целом выглядит симпатично.
    Все завернуто в тег main. это семантически неправильно.
    Логотип внесен в общее меню, это вроде и не ошибка, но при интеграции с любой цмс будут проблемы.
    Адаптив выглядит так, как будто мета тега viewport нет, хотя он есть.
    Меню не прячется в бутерброд. Возможно вы скажете, что оно и так влазит, но это первый признак совсем начинающего, сам таким был.
    Вы кое где используете сетку бутстрап, но не до конца понимаете как она работает, поэтому пишите лишние классы. например col-md-6 col-lg-6. В этом месте класс col-lg-6 лишний, так как делает ровно то же, что col-md-6, потому что бустстрап мобайл-фест. А там где одна колонка не нужен ни row ни col-12.
    Не понял я смысл скроллов в карточках, выглядит намного хуже, как если бы где то было больше или меньше контента.
    методАлогия))
    Ответ написан
    Комментировать
  • Как сделать в помощью ACF Flexible content подобие конструктора страниц?

    AntonLitvinenko
    @AntonLitvinenko Автор вопроса
    HTML coder
    Для себя вопрос пока что решил таким образом
    Создал темплейт страницы для этого дела
    <?php 
    
    get_header(); 
    
    /*
    Template Name: Page Builder
    */
    
    ?>
    
    <?php if ( have_rows( 'builder_layout' ) ) : ?>
    
    	<?php while ( have_rows( 'builder_layout' ) ) : the_row(); ?>
    
    		<?php $layout = get_row_layout(); ?>
    
    		<?php get_template_part( "template-parts/builder-blocks/$layout" ); ?>
    
    	<?php endwhile; ?>
    
    <?php else: ?>
    
    		<h2><?php _e('No layout found parent', 'ajat') ?></h2>
    
    <?php endif; ?>
    
    
    <?php get_footer(); ?>

    В папке builder-blocks у меня пять файлов, полная ширина, одна колонка, две колонки, три колонки и 4 колонки.
    Вот например код файла на 2 колонки, остальные по аналогии
    <section class="section">
    	<div class="container">
    
    		<div class="row">
    
    			<div class="col-md-6">
    				<div class="content">
    					<?php if ( have_rows( 'column_1_page_layout' ) ) : ?>
    
    						<?php while ( have_rows( 'column_1_page_layout' ) ) : the_row(); ?>
    
    							<?php $layout = get_row_layout(); ?>
    
    								<?php get_template_part( "template-parts/acf-blocks/$layout" ); ?>
    
    						<?php endwhile; ?>
    
    					<?php else: ?>
    
    						<h2><?php _e('No layout found', 'ajat') ?></h2>
    
    					<?php endif; ?>
    				</div>
    			</div>
    
    			<div class="col-md-6">
    				<div class="content">
    					<?php if ( have_rows( 'column_2_page_layout' ) ) : ?>
    
    						<?php while ( have_rows( 'column_2_page_layout' ) ) : the_row(); ?>
    
    							<?php $layout = get_row_layout(); ?>
    
    								<?php get_template_part( "template-parts/acf-blocks/$layout" ); ?>
    
    						<?php endwhile; ?>
    
    					<?php else: ?>
    
    						<h2><?php _e('No layout found', 'ajat') ?></h2>
    
    					<?php endif; ?>
    				</div>
    			</div>
    
    		</div>
    	</div>
    </section>

    Тут у меня в каждой колонке уже выводятся темплейты из другой папки acf-blocks, это как раз те кусочки кода, например иконка + текст, просто текст, текст + изображение итд.
    Для каждого блока создана группа полей.

    Главная группа полей для билдера builder_layout. Это гибкое содержимое.
    В нем 5 блоков соответственно одной колонке, двум, трем итд, вот скриншот места с двумя колонками
    5fa3c04f46509011229880.png
    Можно заметить кое-какие поля которых нет в стандарте, в частности деление на колонки, это замечательный плагин ACF Extended.
    Далее два скриншота для колонок, обратите внимание, должен быть включен префикс для названий.
    5fa3c1223cdc2920434016.png
    5fa3c1339e645818585464.png
    Тут могут возникнуть вопросы.
    Изначально Это код из рабочего проекта и там сделаны блоки, которые я собрал в гибком содержании Layouts, собственно, для того чтобы вывести все блоки мне достаточно сделать тип поля клон и выбрать туда все поля группы полей layouts. Но можно и по отдельности накидать в зависимости от ширины колонок. Главная идея это использования типа поля КЛОН.
    Вот как-то так
    Ответ написан
    1 комментарий
  • Как изменить цвет border другого элемента, когда input в фокусе?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    $('input').on('focus', function(){
      $(this).parents('.input').addClass('focus');
    });
    
    $('input').on('blur', function(){
      $(this).parents('.input').removeClass('focus');
    });
    Ответ написан
    Комментировать
  • Как вывести самые популярные посты?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    Для начала определить критерий, по которому посты станут популярными. Например количество просмотров.
    А дальше обычный цикл, в аргументах которого есть meta_key из функции подсчета просмотров post_views_count и соответственно сортировка по значению этого ключа meta_value_num.
    $popularLoop = new WP_Query(array(
    	'posts_per_page' => 5,
    	'meta_key'       => 'post_views_count',
    	'orderby'        => 'meta_value_num',
    	'post_type'      => 'post',
    	'order'          => 'DESC',
    	'date_query'     => array(
    		array(
    			'after' => '-15 days',
    		)
    	)
    ));
    
    if ( $popularLoop->have_posts() ) : ?>
    
    	<h2 class="sidebar-title"><?php _e('Найбільше читають', 'viche') ?></h2>
    
    	<?php while ( $popularLoop->have_posts() ) : $popularLoop->the_post(); ?>
    
    	<a href="<?php the_permalink() ?>">
    		<div class="news-popular-block">
    			<div class="img-wrapper">
    				<?php if (has_post_thumbnail()) {
    					the_post_thumbnail('popular-thumb');
    				}?>
    			</div>
    			<div class="news-popular-text">
    				<h3 class="news-popular-title"><?php trim_title_words(10, '...'); ?></h3>
    				<div class="news-block-info-item news-block-date">
    					<?php _e('Переглядів:', 'viche') ?> 
    					<?php echo getPostViews(get_the_ID()); ?>
    				</div>
    			</div>
    		</div>
    	</a>
    
    	<?php endwhile;?>
    
    </div>
    
    <?php endif; wp_reset_query(); ?>
    Ответ написан
  • Как сделать прибить блок вправо и выровнять по .container выше?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    Вынуть зелёный блок из контейнера и дать ему подобный стиль
    .green-wrapper {
      margin-left: calc(50% - 1300px/2);
    }

    Ну и дальше менять значение на брейкпоитнах

    ПС. Недавно встретил любопытное решение этой же задачи, но как по мне излишне усложненное
    https://www.youtube.com/watch?v=NVdlfhkDAGM
    Ответ написан
    2 комментария
  • Есть ли плагин для создания записи в wordpress пользователю без регистрации?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    Я для такой цели юзал acf_form
    Ответ написан
    Комментировать
  • Как найти файл для редактирования HTML?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    это место находится в woocommerce>templates>single-product>product-attributes.php.
    В корне вашей темы создаете папку woocommerce и туда копируете файл по тому же пути но без папки templates.
    Там уже вносите правки
    Ответ написан
    1 комментарий
  • У меня есть небольшие блоки с заголовком и при нажатии должен выпадать toogle, как применить код к последующим блокам если их несколько?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    В зависимости от разметки. Например если блок с текстом идет сразу под заголовком:
    $(function () {
     $('.answers_toggle').click(function() {  
         $(this).toggleClass('active').next('.answers_text').slideToggle();
     });
    });

    Ну и айдишник текста на класс поменять
    Ответ написан
    2 комментария
  • Как сделать навигационную панель сверху через @media?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    если я правильно понял то примерно как-то так
    https://codepen.io/AntonLitvin/pen/oNLqVrd
    Ответ написан
    Комментировать
  • Как добавить CSS стиль в хук wordpress?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    Например как-то так
    // Добавить обертку вокруг заголовка
    remove_action( 'woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_title', 10 );
    add_action( 'woocommerce_shop_loop_item_title', 'storm_template_loop_product_title', 10 );
    function storm_template_loop_product_title() {
    	?>
    	<div class="product-name">
    		<?php woocommerce_template_loop_product_title() ?>
    	</div>
    	<?php
    }
    Ответ написан
    Комментировать
  • Как убрать вывод ошибок на страницу сайта WP Woocommerce?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    В файле wp-config выставить wp_debug в false
    Ответ написан
    Комментировать
  • Как создать повторяющиеся блоки в ACF?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    Рассмотрите возможности acf pro:
    repeater(повторитель), flexible content(гибкое содержимое) и создание блоков для гутенберга
    Ответ написан
    5 комментариев
  • Кастомная страница вордпресс?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    Ну в тело страницы можно вставить любой html но думаю такое редактирование тоже не сильно подойдёт.
    В вашем случае поможет конструктор, а если вообще хотят много менять то тема с разнообразными настройками шапки, футера, сайдбаров + пейджбилдер
    Ответ написан
    Комментировать
  • Как сделать, чтобы элементы внутри блока не меняли его размер?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    Обертке чата высоту задаете нужную например 100vh и overflow-y: auto. Тогда будет добавляться скролл чтобы можно было листать весь чат
    Ответ написан
  • Нужен совет, как оживить дроп сайт?

    AntonLitvinenko
    @AntonLitvinenko
    HTML coder
    В свое время довелось достаточно долго этим заниматься, но я поудалял все мануалы, так как не собираюсь к этому возвращаться.
    Скачивание производил с помощью Wayback Machine Downloader.
    При этом нужно выбрать максимально полный слепок сайта из возможных, обязательно чтобы были стили и скрипты.
    Скачивается чистая статика, причем ровно в том виде, когда был произведен слепок, что имею в виду, если какие-то скрипты например заинлайнили какие-то стили в html, то их надо найти и почистить. Особенно проблематично чистить SliderRevolution, если сайт был на вордпрессе.
    Все пути в файлах будут абсолютные, с помощью множественной замены их нужно поменять на относительные, это касается практически всего - стили, скрипты, изображения, ссылки на внутренние страницы.
    Очень часто не хватало каких-то картинок, тогда приходилось подбирать что-то самому из интернета. Что-то невосстановимое или нерабочее (например юзер логин) приходилось выпиливать.
    В итоге ваша цель получить рабочую статику, чтобы выглядело плюс-минус как оригинал и работали все ссылки.
    Отдельный момент - контактные формы. Тут уже вам решать как оживить форму, я делал и стандартным скриптом обработчиком и с помощью онлайн сервисов типа formspree.
    Ответ написан
    Комментировать