• Как сделать список при клике?

    klyo
    @klyo
    Делай...
    Почему вы используете таблицы для верстки, ведь гораздо проще и семантически правильно с помощью чистых списков ul (тем более, что вы используете многоуровневые списки - доступно с некоторыми простыми операциями здесь) или ol.

    Также эту задачу можно решить с помощью псевдокласса :checked в CSS, он поддерживается, начиная с IE 9.0+, Chrome 1.0+, Opera 9.0+, Safari 3.1+, Firefox 1.0+, Android 1.0+, iOS 2.0+. Но сделать также легко, как это можно сделать с помощью JS, тут не получится, но я сторонник того, чтобы все что можно сделать без JS, нужно делать без JS)
    Ответ написан
    Комментировать
  • Почему chrome считает сайт на SSL ненадежным?

    klyo
    @klyo
    Делай...
    Вам нужно всем скриптам, стилям и изображениям, которые находятся на вашем сайте прописать либо относительные ссылки, либо вручную заменить все http:// на https://. Но сделать нужно только для скриптов и стилей, которые загружаются именно на вашем сайте.
    Ответ написан
    Комментировать
  • Как добавить на индексацию 1000 url-сайтов?

    klyo
    @klyo
    Делай...
    Еще есть аддурилка для Google: https://www.google.com/webmasters/tools/submit-url. Но через 3-5 сайтов попросят искать горы и витрины на капче)
    Ответ написан
    Комментировать
  • Как прогрузить карту в скрытый блок?

    klyo
    @klyo
    Делай...
    Если вам нужно, например, показать в модальном окне вашу карту, так запускайте инициализацию именно тогда, когда человек вызвал это модальное окно, зачем на фоне загружать пользователю то, чем он может не воспользоваться.
    Ответ написан
    Комментировать
  • Как быстро скинуть страницу с ПК на смартфон или наоборот в Chrome?

    klyo
    @klyo
    Делай...
    В Telegram можно отправить сообщение самому себе)

    Ну и автоматическую синхронизацию закладок в браузерах на всех устройствах никто не отменял.
    Ответ написан
    Комментировать
  • Как выводить дату публикации в Google/Yandex?

    klyo
    @klyo
    Делай...
    Не только микроразметка влияет на вывод даты на поиске. Вам еще нужно настроить на всех страницах HTTP-заголовок Last-Modified. Подробнее здесь: https://last-modified.com/ru/if-modified-since.html.
    Ответ написан
    Комментировать
  • Google PageSpeed ругается на то, что скрипты мешают загрузке сайта?

    klyo
    @klyo
    Делай...
    Подключайте JS следующим образом перед закрывающим body:
    <script>var scr = {"scripts":[
    		{"src" : "ваш_скрипт.js", "async" : false},
    		]};!function(t,n,r){"use strict";var c=function(t){if("[object Array]"!==Object.prototype.toString.call(t))return!1;for(var r=0;r<t.length;r++){var c=n.createElement("script"),e=t[r];c.src=e.src,c.async=e.async,n.body.appendChild(c)}return!0};t.addEventListener?t.addEventListener("load",function(){c(r.scripts);},!1):t.attachEvent?t.attachEvent("onload",function(){c(r.scripts)}):t.onload=function(){c(r.scripts)}}(window,document,scr);
    	</script>

    Чтобы не тормозить загрузку страницы. Тогда Google PageSpeed не будет ругаться на эти файлы.
    Ответ написан
    Комментировать
  • Как закрыть полностью сайт от индексации и удалить из поисковиков?

    klyo
    @klyo
    Делай...
    Добавьте в файл .htaccess:
    SetEnvIfNoCase User-Agent "^Yandex" search_bot
    SetEnvIfNoCase User-Agent "^Yahoo" search_bot
    SetEnvIfNoCase User-Agent "^Googlebot" search_bot
    SetEnvIfNoCase User-Agent "^Aport" search_bot
    SetEnvIfNoCase User-Agent "^msnbot" search_bot
    SetEnvIfNoCase User-Agent "^spider" search_bot
    SetEnvIfNoCase User-Agent "^Robot" search_bot
    SetEnvIfNoCase User-Agent "^php" search_bot
    SetEnvIfNoCase User-Agent "^Mail" search_bot
    SetEnvIfNoCase User-Agent "^bot" search_bot 
    SetEnvIfNoCase User-Agent "bot" search_bot 
    SetEnvIfNoCase User-Agent "^igdeSpyder" search_bot
    SetEnvIfNoCase User-Agent "^Snapbot" search_bot
    SetEnvIfNoCase User-Agent "^WordPress" search_bot
    SetEnvIfNoCase User-Agent "^BlogPulseLive" search_bot
    SetEnvIfNoCase User-Agent "^Parser" search_bot
    SetEnvIfNoCase User-Agent "^Googlebot-Image" search_bot
    SetEnvIfNoCase User-Agent "^StackRambler" search_bot
    SetEnvIfNoCase User-Agent "^Adsbot-Google" search_bot
    SetEnvIfNoCase User-Agent "^WebAlta" search_bot
    SetEnvIfNoCase User-Agent "^Googlebot-Mobile" search_bot
    SetEnvIfNoCase User-Agent "^YandexImages" search_bot
    SetEnvIfNoCase User-Agent "http://www.google.com/bot.html" search_bot
     
    <FilesMatch "^.*$">
    Order Allow,Deny
    Allow from all
    Deny from env=search_bot
    </FilesMatch>


    И файл .htaccess с этим кодом можно расположить в любой папке на сервере, которую хотите запретить от индексации.
    Ответ написан
    Комментировать
  • Как в woocommerce перевести слова в корзине?

    klyo
    @klyo
    Делай...
    Для начала необходимо поискать в шаблоне WooCommerce. А затем в файлах всего плагина, но перевеводы чаще всего делаются в *.po, *.mo и *.pot файлах. Вот бесплатный редактор PO-файлов: https://poedit.net/. Файлы для перевода находятся в папке с плагином: "i18n->languages". После создания этим файлом mo-файла, необходимо все загрузить на хостинг.

    Но если хотите "вырезать" эти слова из шаблона, то в папке с плагином в Total Commander нажмите сочетание клавиш ALT+F7 и поставьте галочку "С текстом", а там введите одно из словосочетаний. Затем вам Total Commander найдет не файлы, в которых встречается эта фраза.
    Ответ написан
    Комментировать
  • Какая должна быть правильная структура сайта?

    klyo
    @klyo
    Делай...
    Не используйте структуру с вложенными папки, потому что потом, если нужно будет изменить категорию товара, придется расставлять редиректы, а это потеря "веса".
    Ответ написан
    Комментировать
  • Как сделать бесконечные последовательные анимации?

    klyo
    @klyo
    Делай...
    Так вы просто объедините анимации на одном timeline.

    А если вам нужно, чтобы сначала на одном элементе появлялась анимация, заканчивалась, а затем появлялась на другом... И так далее, то здесь вам поможет JS.
    Ответ написан
    Комментировать
  • Как автоматически добавить картинки к постам WordPress?

    klyo
    @klyo
    Делай...
    Проще всего импортировать из CSV файла с помощью плагина WP All Import: страница плагина.
    Ответ написан
    Комментировать
  • Насколько корректно использовать 2 размера шрифта?

    klyo
    @klyo
    Делай...
    Чтобы у вас не возникало проблем с тем, какой размер шрифта использовать, есть вот такие сервисы: https://www.gridlover.net/try. Как только начинаете создавать с нуля какой-нибудь проекты, сразу для основных частей сайта вы задаете размеры элементов по умолчанию. Также здесь есть множество пресетов (scale factor). Причем сразу видно как соблюдается на странице вертикальный ритм.
    Ответ написан
    Комментировать
  • Как на витрине в woocommerce под каждым названием категории товаров добавить "цена от ..."?

    klyo
    @klyo
    Делай...
    В WooCommerce все завязано на хуках. Полный список хуков можно найти здесь: Хуки WooCommerce.

    Например, берем фильтр "woocommerce_cart_product_price":
    add_filter( 'woocommerce_cart_product_price', 'my_pricetext_for_cat' );
    
    function my_pricetext_for_cat(  $product_price ) {
        // Здесь ваш код
        return  "Цена от: ".$product_price;
    }
    Ответ написан
    Комментировать
  • Как сделать товары под заказ woocommerce при импорте в магазин?

    klyo
    @klyo
    Делай...
    Вам просто не нужно указывать их наличие в параметре quantity. Соответственно, выводить количество товаров также не нужно. С помощью хуков (список хуков WooCommerce) вы можете убрать кнопку "Добавить в корзину" и вставить свою кнопку "Заказать".
    Ответ написан
  • Галерея для обзора товара заместо миниатюры WP, есть ли хороший бесплатный плагин?

    klyo
    @klyo
    Делай...
    Есть нормальный плагин для WooCommerce: Woocommerce Product Gallery Slider.
    Здесь можно посмотреть демо этого плагина: перейти к демо.
    Ответ написан
    Комментировать
  • Как подключить сторонний lightbox в WooComerce 3 версии?

    klyo
    @klyo
    Делай...
    Сторонний lightbox можно подключить также, как и любой другой скрипт.

    1. Разместить в папке с вашей темой все необходимые JS и CSS файлы lightbox-а.
    2. Затем подключить CSS в functions.php. Для этого предназначена функция wp_enqueue_style().
    3. После чего, необходимо зарегистрировать и подключить скрипты вашего плагина. Делается это соответственно с помощью функций wp_register_script() и wp_enqueue_script().
    4. Когда все подключено (об этом можно убедиться перейдя по ссылкам в исходном коде страницы), можно приступать к реализации lightbox на странице с карточками товаров. Здесь приходят на помощь экшены и фильтры. Полный список можно найти здесь: https://docs.woocommerce.com/wc-apidocs/hook-docs.html. Вам лишь останется найти хук, который отвечает за вывод изображений и создать соответствующую структуру для изображений, которую требует тот lightbox, который вам нужен.
    Ответ написан
    Комментировать
  • Как оптимизировать скорость подгружаемого скрипта?

    klyo
    @klyo
    Делай...
    Лучше всего загружать скрипт после полной загрузки страницы, сделать это можно следующим образом:
    <script>
        var scr = {"scripts":[
    		{"src" : "http://path_to_form.js", "async" : false},
    		]};!function(t,n,r){"use strict";var c=function(t){if("[object Array]"!==Object.prototype.toString.call(t))return!1;for(var r=0;r<t.length;r++){var c=n.createElement("script"),e=t[r];c.src=e.src,c.async=e.async,n.body.appendChild(c)}return!0};t.addEventListener?t.addEventListener("load",function(){c(r.scripts);},!1):t.attachEvent?t.attachEvent("onload",function(){c(r.scripts)}):t.onload=function(){c(r.scripts)}}(window,document,scr);
    </script>


    Иначе у вас скрипт, при обычном подключении, будет тормозить загрузку страницы.

    Также не забудьте сжать скрипт. Вот онлайн сервис для сжатия JS: https://jscompress.com/
    Ответ написан
    1 комментарий
  • Как добавить такой блок?

    klyo
    @klyo
    Делай...
    То, что вам нужно сделать, нужно делать с помощью хуков и ни в коем случае не трогать исходные файлы плагина.
    Полный список хуков именно для woocommerce можно найти здесь: Хуки Woocommerce.

    Что касается вашей задачи. Вам необходим хук: woocommerce_product_meta_start.
    Необходимо добавить в файл functions.php активной темы следующий код:
    //Цепляем свою функцию
    add_action( 'woocommerce_product_meta_start', 'woocommerce_infobox_single_before_meta' ); 
     
    function woocommerce_infobox_single_before_meta() {
        // Здесь можете вывести любой код, который вам нужно
        echo '<div class="single-product-infobox">Дополнительная информация</div>';
    }


    Но сейчас сделан лишь функционал, вам останется разместить его справа с помощью CSS.
    Ответ написан
    3 комментария
  • Woocommerce. Активная ссылка на товар в категории. КАК?

    klyo
    @klyo
    Делай...
    Исходя из того кода, который вы написали, можно сделать таким образом.

    В WordPress есть глобальная переменная product:
    global $product;
    Чтобы сформировать ссылку, необходимо сделать следующее:
    echo '<a href="'.get_permalink($product->post->id).'">Якорь ссылки</a>';


    В вашем случае попробуйте заменить вот эту часть кода:
    // Add Wrapper to Product Info
    function rocket_wrap_before_product_desc() {
      echo '<div class="product-info">';
    }
    add_action( 'woocommerce_before_shop_loop_item_title', 'rocket_wrap_before_product_desc', 10);
    
    function rocket_wrap_after_product_desc() {
      echo '</div>';
    }
    add_action( 'woocommerce_shop_loop_item_title', 'rocket_wrap_after_product_desc', 20);

    На вот этот код:
    // Add Wrapper to Product Info
    function rocket_wrap_before_product_desc() {
      global $product;
      echo '<div class="product-info"><a href="'.get_permalink($product->post->id).'">';
    }
    add_action( 'woocommerce_before_shop_loop_item_title', 'rocket_wrap_before_product_desc', 10);
    
    function rocket_wrap_after_product_desc() {
      echo '</a></div>';
    }
    add_action( 'woocommerce_shop_loop_item_title', 'rocket_wrap_after_product_desc', 20);
    Ответ написан
    3 комментария