Ответы пользователя по тегу WordPress
  • Почему не работают ссылки WP?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Попробуйте обновить постоянные ссылки - Настройки - Постоянные ссылки - обновить
    Ответ написан
    Комментировать
  • Не работает переход c главной страницы на другие по клику ЛКМ, только по СКМ [WordPress], как исправить?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте)
    Я конечно не специалист по javascript, но если вы глянете в консоли, то увидите слушатель для пунктов меню, в частности для тега <a>
    На главной странице для тега a навешано 3 обработчика, на внутренних 2. Если удалить "лишний" обработчик и кликнуть на пункте меню, то все работает.
    Лишний обработчик обозначен на скрине:
    https://screenshots.firefox.com/rAH3gIewpHUUBi1C/null
    Ответ написан
  • Как правильно вставить таблицу в wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Будь я на вашем месте, поступил бы следующим образом:
    Установите плагин tablepress он основан на datatables и соответственно может автоматически создавать пагинацию на основе кол-ва строк (функционал можно отключать).
    Html таблицу можете легко импортировать на сайт через плагин и шорткодом добавить на сайт. Он поддерживает сортировку, поиск и т.д.
    Ссылка на плагин - https://ru.wordpress.org/plugins/tablepress/
    А если вам нужна адаптивность таблицы на других устройствах, то вот дополнение для него
    https://tablepress.org/extensions/responsive-tables/
    Ответ написан
    1 комментарий
  • Какой плагин можно использовать для счетчика достижений для Wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Я знаю плагин Visual Composer + Ultimate Addons for Visual Composer. В нем есть все, что нужно... А если не лень кодить, то можете на обычном html / css сделать. Возможно, что есть другие плагины...
    Ответ написан
    Комментировать
  • Как сделать в Wordpress переход с главной странице на 2 разных подглавных с разными меню?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Создаете Главную страницу и шаблон для нее front-page.php (если нужно).
    Далее создаете 2 шаблоны для страницы и 2 хедера. Например, page-moscow.php page-piter.php + 2 header.php с разными меню. Например, header-moscow header-piter.php После чего в page-moscow используете get_header('moscow') а в page-piter get_header('piter') ну и не забудьте создать 2 меню (https://codex.wordpress.org/Function_Reference/reg... Проще некуда)
    Ответ написан
  • После переноса стал дико загружать ресурсы, в чём проблема?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Не назову конкретной причины, ибо причина может быть разной.
    С фронт-энда я вижу следующее:
    1) у вас установлен https но при этом имеются ошибки
    https://screenshots.firefox.com/H2QKgyAyCjENEav8/null
    После переноса сайта вы заменяли урлы? Особенно на https? Если нет, то установите плагин better search replace и произведите замену.
    2) точно ли достаточно реусрсов для корректной работы сайта?
    например php memory_limit
    Ответ написан
  • Как реализовать блоги на WP?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Изучите WPMS (мультисайт).
    Установите ВП и включите режим мультисайта. Для основного домена сделайте новостной сайт, а на субдоменах или субдиректориях сделайте блоги.
    Ответ написан
    Комментировать
  • Как убрать ошибки в Wordpress после переноса на хостинг?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!

    Обычно при переносе сайта могут быть следующие проблемы:
    1) файлы перенесены не в полном объеме. Подключитесь при помощи Total Commander и синхронизируйте каталоги.
    2) БД перенесена неполностью или некорректно. (Заново импортировать БД). Желательно при переносе БД изменить только домен в таблице wp_options. А уже после переноса на хостинг установить плагин better search replace и произвести полную замену старого домена на новый. Не заменяйте домен напрямую в дампе БД поиском и заменой, так как вы можете потерять данные. Например, сериализованные данные...
    3) Проверьте права chmod на директории и файлы. 755 - для файлов, 644 для папок
    4) если у вас vps, то проверьте права пользователя апач или nginx.
    5) Включите дебаг wp_debug и посмотрите логи
    Ответ написан
    Комментировать
  • Как создать пагенацию для шаблона страницы в WordPress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Простое решение - dimox.name/wordpress-pagination-without-a-plugin
    Пример реализации -
    https://md7.info/surgery
    https://reporter.by/belarus

    Лучше используйте циклы query_posts или WP_Query

    А вы не разделили шаблон на footer.php & header.php ? Как я вижу у вас wp_footer() находится в том же шаблоне, где он вызывается...

    Готовый рабочий код:

    Добавьте в functions:
    function wp_corenavi(){
      global $wp_query;
      $pages = '';
      $max = $wp_query->max_num_pages;
      if (!$current = get_query_var('paged')) $current = 1;
      $a['base'] = str_replace(999999999, '%#%', get_pagenum_link(999999999));
      $a['total'] = $max;
      $a['current'] = $current;
    
      $total = 1; //1 - выводить текст "Страница N из N", 0 - не выводить
      $a['mid_size'] = 3; //сколько ссылок показывать слева и справа от текущей
      $a['end_size'] = 1; //сколько ссылок показывать в начале и в конце
      $a['prev_text'] = '&laquo;'; //текст ссылки "Предыдущая страница"
      $a['next_text'] = '&raquo;'; //текст ссылки "Следующая страница"
    
      if ($max > 1) echo '<div class="navigation">';
      if ($total == 1 && $max > 1) $pages = '<span class="pages">Страница ' . $current . ' из ' . $max . '</span>'."\r\n";
      echo $pages . paginate_links($a);
      if ($max > 1) echo '</div>';
    }


    Добавьте стили:
    /* pagination */
    .navigation {
        display: block;
        text-align: center;
        margin: 20px auto;
    }
    .pages {
        padding: 5px 7px;
        color: #fff;
        background: #333;
    }
    .page-numbers {
        background: #333;
        padding: 5px 7px;
        color: #fff !important;
        
    }
    .page-numbers.current {
        text-decoration: underline;
    }
    .page-numbers:hover {
        text-decoration:none;
        opacity: 0.8;
    }


    Добавьте код вывода пагинации в цикл:
    <?php if (have_posts()) :  while (have_posts()) : the_post(); ?>
    	<? //здесь ваш контент ?>
    <?php endwhile; ?>
    <?php if (function_exists('wp_corenavi')) wp_corenavi(); ?>
    <?php endif; ?>

    P.S. не забудьте передать ваши аргументы $args
    Ответ написан
  • Как решить проблему с длинным меню в Wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Когда меню слишком массивное, то я использую плагин Ubermenu. Можно разбить мен в несколько колонок https://wpmegamenu.com/
    Ответ написан
    Комментировать
  • Как ускорить загрузку сайта?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Общие рекомендации для ускорения сайта. Этим методом я могу оптимизировать сайты до 100%. Другой вопрос - нужно ли это)))

    1) Установите плагины Fastest cache + Fastest cache premium + Autoptimize.
    В плагине Fastest Cache & Premium включите все пункты, КРОМЕ 3-х пунктов касающихся CSS
    5b7010485d97c901632931.png
    В плагине Autoptimize включите пункт оптимизации CSS, перейдите в расширенные настройки поставьте галочку Inline All CSS и из исходного кода скопируйте код, которые между . После чего сгенерируйте критичный CSS на сайте https://jonassebastianohlsson.com/criticalpathcssg... и добавьте его в плагин autoptimize.
    Этим вы уберете проблемы:
    "удалить js & css код препятствующий отображению". Согласно оф. источнику сам fastest cache не убирает render blocking CSS из-за чего мы и используем autoptimize.
    https://www.wpfastestcache.com/premium/optimize-cs...
    P.S. У вас сейчас на сайте именно на это гугл и жалуется.
    2) оптимизируйте изображения. Рекомендую использовать EWWW Image Optimizer и если позволяют финансы, то берите премиум пакет, чтобы лучше оптимизировать. В противном случае, гугл все равно жалуется. Или же можете вручную сжать фотографии, предварительно скачав их на компьютер. Для ручного сжатия я использую jpegoptim & jpegtran
    Cсылка - https://sheensay.ru/optimization-png-jpg#kak-ustan...
    https://ruhighload.com/jpegoptim
    Достаточно оставить % сжатия 25-30%

    3) Если вы разместили счетчики и различные информеры и кнопки "поделиться", то чтобы гугл не жаловался можно подключать их локально. Так как гугл не рекомедует подключать скрипты локально, так как они могут устареть, то обязательно создайте Cron задачу и регулярно обновляйте эти файлы. Пример рнр скрипта, который регулярно обновляет js скрипты.
    В корне сайта создайте папку js & рнр файл со следующим содержимым. А далее по крону запускайте этот файл. Достаточно обновлять раз в неделю... Соответственно, все скрипты подключайте локально предварительно изменив js код
    <?php
    function downloadJs($file_url, $save_to)
    {
        $content = file_get_contents($file_url);
        file_put_contents($save_to, $content);
    }
    // Yandex Metrika
    downloadJs('https://mc.yandex.ru/metrika/watch.js', realpath("./js") . '/watch.js');
    // Yandex Share
    downloadJs('https://yastatic.net/es5-shims/0.0.2/es5-shims.min.js', realpath("./js") . '/es5-shims.min.js');
    downloadJs('https://yastatic.net/share2/share.js', realpath("./js") . '/share.js');
    // Google Analytics
    downloadJs('https://www.google-analytics.com/analytics.js', realpath("./js") . '/analytics.js');
    // Googla Adsense
    downloadJs('http://pagead2.googlesyndication.com/pagead/show_ads.js', realpath(".js") . '/show_ads.js');
    downloadJs('https://pagead2.googlesyndication.com/pagead/osd.js', realpath("./js") . '/osd.js');
    downloadJs('https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js', realpath("./js") . '/adsbygoogle.js');
    // VK
    downloadJs('http://vk.com/js/api/openapi.js?139', realpath("./js") . '/openapi.js');
    // Google Plus Widget
    downloadJs('https://apis.google.com/js/plusone.js', realpath("./js") . '/plusone.js');
    // Google Recaptcha
    downloadJs('https://www.google.com/recaptcha/api.js', realpath("./js") . '/api.js');
    downloadJs('https://www.google.com/recaptcha/api2/webworker.js', realpath("./js") . '/webworker.js');
    downloadJs('https://www.google.com/recaptcha/api.js', realpath("./js") . '/api.js');
    ?>

    4) Если на сайте ВП используете аватарки от gravatar, то закэшируйте их при помощи плагина FV Gravatar Cache или Harrys Gravatar Cache
    5) Если на сайте вы используете вставку картинок, которые добавляются извне, то плагин LH Cache Remote Images поможет вам их закэшировать и отдавать локально
    6) Если гугл жалуется на Query String from static resources, то установите плагин Remove Query Strings From Static Resources

    На самом деле многое из предложенного выше являются лишним и наверное не стоит гоняться за % оптимизации. У себя я использую плагин Fastest Cache & Fastest Cache Premium и все. Но иногда заказчики просят именно результата 100% и тогда приходится прибегнуть к вышеуказанным мерам.
    Ответ написан
    Комментировать
  • Как реализовать такое липкое меню?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Готовое простое решение -
    https://www.w3schools.com/howto/howto_js_sticky_he...
    https://www.w3schools.com/howto/howto_css_fixed_me...

    Пример реализации - https://reporter.by/
    Ответ написан
    Комментировать
  • Слайдер под Wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Берите связку
    Берите кастомные поля carbon fields или ACF
    А также скрипты flexslider2 или owl carousel
    А далее сверстайте макет на основе flexbox или CSS grid. И интегрируйте это все.
    Ответ написан
    Комментировать
  • Почему у меня дублируется футер в Wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!

    1) На момент просмотра я вообще не вижу футера
    2) Проверьте корректность подключения футера и шапки.
    перед закрывающим тегом </head>должен быть<?php wp_head(); ?>
    перед закрывающим тегом </body> должен быть<?php wp_footer(); ?>
    3) Может быть вы в index.php получаете header & footer, а потом тоже самое делаете в шаблоне footer.php ? Может быть у вас get_footer() вызывается 2 раза
    Ответ написан
    Комментировать
  • Почему не работает TOC+ WordPress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Я использую плагин - Easy Table of Contents
    Пример страницы - https://md7.info/demodekoz

    Что касается вашей проблемы, то нужно уточнить...
    1) Как имено выводится главная страница
    2) проверьте корректность подключения wp_footer & wp_header
    Ответ написан
    Комментировать
  • Задать класс записи имея id?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Если я правильно понял ваш пример, то вы используете плагин ACF.

    Простой пример, как можно задать класс при условии, что просматриваемая статья соответствует id записи.

    <?php if(is_single(array(22,37,12))) { ?>
    <!-- ваш код здесь -->
    <?php } ?>


    используя такой код, можно например, добавлять открывающие и закрывающие с тегами... пример:
    <?php if(is_single(array(22,37,12))) { ?>
    <div class="content"> <!-- открыв тег -->
    <?php } ?>
    <!-- bla bla content -->
    <?php if(is_single(array(22,37,12))) { ?>
    </div> <!-- закрыв. тег -->
    <?php } ?>
    Ответ написан
    Комментировать
  • Как реализовать автоматическую отправку промокода в форме заполнения заявки?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!

    Вы предоставили мало информации... Например, что за промокод и как он создается. Генерируется ли автоматически или речь идет о промокоде Woocommerce. Далее, что за плагин для отправки формы обратной связи вы используете? CF7 например...
    Я бы сделал это следующим образом... установите плагин ACF и изучите acf_form() https://www.advancedcustomfields.com/resources/usi...
    Далее при отправляйте сообщение при помощи wp_mail()
    https://wp-kama.ru/function/wp_mail
    А далее в теле функции, где есть отправка формы можете генерировать промокод, писать в переменную и включить в body письма.
    Ответ написан
    5 комментариев
  • Как ограничить доступ к wp-admin и wp-login.php на Wordpress портале?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте. Не смотрели случайно плагин Users Role Editor ?
    А для личного кабинета и единой системы авторизации посмотрите плагин Wp Recall
    Ответ написан
  • Вопрос о подстраничной навигации wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Не путайте шаблон со типами записей (Страницы, Записи, Кастомные типы записей и т.д.).
    Не помещал бы увидеть код постраничной навигации... А так могу посоветовать изучить WP_Query и вывести навигацию...
    https://wp-kama.ru/function/wp_query#parametry-kat...
    https://wp-kama.ru/question/paginatsiya-v-wp_query
    Ответ написан
  • Корзина обнуляется при второй перезагрузке страницы, В чем может быть проблема?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Может конфликт плагинов? например, плагин мультиязычности. который добавляет /en_GB/ и вукомерц...
    Ответ написан
    Комментировать