Ответы пользователя по тегу WordPress
  • Как сделать h1 из блока на определенной страничке?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    <?php if( is_page('ID') ): ?>
    <h1 id="top_info">Изделия для малышей ручной работы</h1>
    <?php else: ?>
    <div id="top_info">Изделия для малышей ручной работы</div>
    <?php endif; ?>

    https://codex.wordpress.org/Conditional_Tags
    Ответ написан
    Комментировать
  • Перенос работающего сайта на WordPress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Смотря, что за сайт, на чем он написан.
    А почитать можно на оф. сайте документации ВП.
    1) установка ВП
    2) подбор плагинов, которые нужно использовать при переносе
    3) создание темы для сайта (с сохранением предыдущего дизайна или без)
    4) перенос контента (парсинг, адаптация БД текущего сайта под ВП, использование плагинов или платных сервисов)
    5) проверка урлов и настройка 301 редиректов, если нужно
    6) проверка ошибок, дебаг, а дальше уже перенос на production
    Все зависит от исходного сайта. Если он на CMSб то относительно легче, так как имеются уже готовые плагины. Есть платные сервисы типа CMS2CMS. Можно спарсить материалы сайта и залить плагином WP All Import.
    В общем, разный подход...
    https://codex.wordpress.org/Theme_Development
    https://wp-kama.ru/
    https://cms2cms.com/
    Ответ написан
    Комментировать
  • Почему не работает меню на страницах wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    1) у вас кнопка "Акции" ссылается на несуществующий ID секции #akcii
    2) сама реализация шапки вместе с верхнем меню не очень хорошая. Обычно, при скролле средствами js назначают position: fixed к существующей шапке. А у вас получается, что существующая шапка скрывается при скролле стилями, а шапка fixed отображается. Это не очень хорошо с точки зрения SEO, потому как у вас дубликат меню, который ссылается также на те же самые страницы.

    Если вам нужна похожая тема, то тема Kleo один в один похожа, если не применить к ней никаких готовых стилей.

    3) Что касается того, почему у вас кнопки во внутренних страницах некликабельны, то тут виноват js код. Я когда-то встречал в одной теме подобную проблему.

    На скрине (справа во вкладке Event Listeners отображены конфликтующие скрипты), если удалить их, то кнопки вновь становятся кликабельными. Но с js увы не помогу.
    Попробуйте обновить тему и плагины.

    5c5f6f42587b6776318845.png
    Ответ написан
    Комментировать
  • Как найти уязвимость на сайте?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    1) Установите плагин WordFence и просканируйте сайт.
    2) Проверьте содержимое файла functions.php
    3) Если вы устанавливали премиум обнуленные плагины из неизвестных источников удалите их или хотя бы посмотрите, где они подключают вредоносный код.
    Ответ написан
    1 комментарий
  • Сразу на Wordpress или дизайн-вёрстка-wp?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Однозначно, все начинается с дизайна. Вопрос с версткой и с созданием темы уже задача фротн-энд разработчика.
    Могу сказать следующее - при наличии хорошей верстки, создание темы довольно простая задача. Есть конечно же свои сложности, когда есть верстка, но надо "подружить" ее с определенным плагином. Например, вукомерц. Но все решаемо. Также используйте кастомные поля (carbon fields или ACF).
    WP довольно простая система и для создания простой темы достаточно иметь простые знания рнр и умение читать документацию (на англ. или на русском)))) Не бойтесь экспериментов)
    Ответ написан
    Комментировать
  • Как исправить надпись на странице wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Надпись может быть вставлена на страницу по-разному и соответственно, редактировать нужно соответственным образом.
    1) Скачайте тему, откройте локально любой файл текстовым редактором (например, NotePad++ или Sublimt Text 2). Проверьте поиск строки по ВСЕМ файлам темы. Если есть такая строка где-нибудь в шаблоне, то найдется.
    3) Строка может хранится в БД. Если она хранится в БД, то скорее всего есть в админке возможность смены строки. Посмотрите на страницах, если есть фреймворк темы для настройки, то там, если есть настройки темы во вкладке Внешний вид, то там.
    Если на страницах используется виз. редактор Visual Composer и текст вставлен в в виде html, то скорее всего поиск по БД не даст результатов, так как html код кодируется в base64.
    4) Посмотрите в файлах перевода (хотя, как вы сказали строки там нет)
    Ответ написан
  • Почему перестал работать скрипт модуляции аккордов и как это исправить?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Как я вижу это js код. И на новом сайте он отсутствует
    судя по всему у вас на сайте есть такой скрипт -
    Помимо того, что он там отсутствует, также отличаются селекторы, к которым он был привязан. Т.е. надо переделывать этот скрипт
    <!-- modulation buttons script -->
    <script type="text/javascript">
        var modulationSelector = 'span[style*="color: #ff0000"]';
        var photoSelector = '.entry pre img';
        var modulationCounter = 0;
        $(document).ready(function() {
            if ($(modulationSelector).length && !($(photoSelector).length)) {
                $('.modulation_block').show();
            }
            $('.modulation_increment').click(function(){moveChords(1);});
            $('.modulation_decrement').click(function(){moveChords(0);});
        });
    
        function moveChords(isUp)
        {
            modulationCounter = modulationCounter + (isUp ? 1 : -1);
            var counterElements = $('.modulation_counter');
            if (counterElements.length) {
                counterElements[0].textContent = modulationCounter;
            }
            console.log('moving chords ' + (isUp ? 'up' : 'down'));
            $(modulationSelector).each(function() {
                this.textContent = moveChordRow(this.textContent, isUp);
            });
        }
    
        function moveChordRow(chordRow, isUp)
        {
            var firstSpaceMatch = chordRow.match(/^([\s\n]*).*(\n\s*)?$/);
            var resultString = firstSpaceMatch[1];
    
            var pattern = /[^\s\n]+(?:\s+|$)/g;
            var matches;
            while (null !== (matches = pattern.exec(chordRow))) {
                resultString += moveChordBlock(matches[0], isUp);
            }
    
            return resultString + (firstSpaceMatch[2] ? firstSpaceMatch[2] : '');
        }
    
        function moveChordBlock(chordString, isUp)
        {
            var matches = chordString.match(/([A-H]#?)([^\s\/]*)\/?([A-H]?#?)([^\s]*)(\s*)/);
            if (null === matches) {
                return chordString;
            }
            var oldChord = matches[1];
            var modifiers = matches[2];
            var secondChord = matches[3];
            var hasSecondChord = secondChord.length > 0;
            var secondModifiers = matches[4];
            var spacesCount = matches[5].length;
            var newChord = moveChord(oldChord, isUp);
            var newSecondChord = hasSecondChord ? moveChord(secondChord, isUp) : null;
            if (null === newChord || (hasSecondChord && null === newSecondChord)) {
                console.error('Cannot parse chord string: ' + chordString);
                return chordString;
            }
    
            spacesCount = spacesCount + oldChord.length - newChord.length + (hasSecondChord ? secondChord.length - newSecondChord.length : 0);
            spacesCount = (spacesCount > 1 ? spacesCount : 1);
    
            return newChord + modifiers + (hasSecondChord ? '/' + newSecondChord + secondModifiers : '') + ' '.repeat(spacesCount);
        }
    
        function moveChord(chord, isUp) {
            var chords = ['A', 'B', 'H', 'C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#'];
            var index = chords.indexOf(chord);
            if (-1 === index) {
                return null;
            }
    
            return chords[ (index + chords.length + (isUp ? 1 : -1)) % chords.length ];
        }
    </script>
    <!-- end of modulation buttons script -->
    Ответ написан
    5 комментариев
  • Переменная с хидера не выводится в футере плагин ACF?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Проверьте корректно ли подключены header.php & footer.php ? Или wp_header() wp_footer()
    Обновите плагин до актуальной версии или же наоборот сделайте downgrade для исключения проблемы с плагином
    Ответ написан
  • Как подключить стили в Wordpress по методу Google (PageSpeed ​​Insights)?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    В принципе, вам правильно подсказали, что если все ок, то не нужно трогать и не надо гнаться за оценкой 100 из 100. Честно, это абсолютно ничего не дает. Конечно же оптимизировать сайты нужно, но в меру.
    Здесь, я подробно ответил насчет оптимизации - Почему Google ругается сам на себя в Google PageSpeed Insights по поводу шрифтов?
    Суть "метода подключения скриптов и стилей PageSpeed" заключается в том, что вы загружаете их в подвале, а не в шапке для устранения render blocking JS & CSS.
    С JS обычно, не возникают проблемы, а вот, с CSS могут быть проблемы с отображением (как вам уже и сообщили). Чтобы минимизировать проблемы с отображением надо сгенерировать критичный CSS.
    Можно применить плагины Autoptimize + Autoptimize Critical CSS (платный сервис) или же PageSpeed Ninja. Можно самому сгенерировать критичный CSS - онлайн сервисы, средствами nodejs и т.д.
    https://jonassebastianohlsson.com/criticalpathcssg...
    Критичный CSS подключаете инлайн в шапке, а все остальное убираете в подвал.
    Ответ написан
  • Как выводить на страницу archive-customtype.php записи по категориям?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Создаете 2 цикла. Первый проходится по терминам таксономии, а второй по записея текущего термина и выводите.
    Вот, пример - https://gist.github.com/DevinWalker/6fb2783c05b46a...
    Только надо код подправить под себя.
    Ответ написан
    1 комментарий
  • Карта сайта WordPress + woocommerce?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Я обычно использую этот плагин - https://wordpress.org/plugins/wp-sitemap-page/
    Он поддерживает кастомные типы записей и таксономии тоже.
    Почитайте на странице, как добавить доп. типы записей
    Ответ написан
    Комментировать
  • Поиск из двух форм на Wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Насчет плагина не подскажу...
    Но вот статья, как это можно реализовать
    https://www.smashingmagazine.com/2016/03/advanced-...
    Ответ написан
    Комментировать
  • Как обновить Debian, ISPmanager и PHP для WP сайта?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    1) Не трогаем production. Пусть, работает в штатном режиме.
    2) Создаем локальную копию сайта или копию сайта на сервере и обязательно закрываем от индексации. Можно даже запароллить через htaccess & htpasswd
    3) Включаем рнр версии 7.0 и выше, дорабатываем сайт, обновляем плагины, темы, исправляем баги
    4) Берем новый сервер с LAMP + ISP Manager 5 или Vesta. (например, Debian Stretch)
    5) Настраиваем новый сервер и переносим сайт
    6) включаем дебаг и окончательно проверяем сайт.
    7) Если все ок, то изменяем DNS записи, чтобы домен указывал на новый сервер.

    Может в ускорении поможет смена шаблона? Но в этом случае все может захромать...

    Посмотрите, что советуют вам на сайте
    https://gtmetrix.com/
    https://developers.google.com/speed/pagespeed/insights/

    Причин может быть много... Надо изучить для начала. Это и ресурсы сервера, и конфигурация сервера, и сам сайт ВП и т.д. Также поможет подключение CDN сервиса и подгрузка статичных файлов из кукис фри доменов или из субдомена сайта.
    Ответ написан
  • Как реализовать на вордпрессе личный кабинет?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Бесплатный плагин личного кабинета - WP Recall.
    Весь остальной функционал (получать от администратора индивидуальный заказ в личном кабинете) надо написать
    Ответ написан
  • Почему когда удаляю index.pxp сайт все еще работает?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    установите плагин query monitor и посмотрите какой шаблон использует текущая страница.
    На Главной согласно иерархии, помимо index.php могут использоваться шаблоны page.php home.php front-page.php
    Ответ написан
    4 комментария
  • Какое готовое решение использовать для создания сервиса аренды жилья?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Как насчет того, чтобы купить готовую премиум тему, в которую уже добавлен необходимый функционал?
    https://themeforest.net/
    Наберите Estate или Rental. Там много готовых решений.
    Например,
    https://themeforest.net/item/wp-rentals-booking-ac...
    https://themeforest.net/item/estate-property-sales...
    https://themeforest.net/category/wordpress/real-estate

    Только надо будет тему перевести. Кстати, если поискать в интернете, то можете найти эти же темы (обнуленные) бесплатно.
    Ответ написан
    4 комментария
  • Как отобразить определённых партнёров на определённых страницах WordPress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Уточните пожалуйста вопрос. Не совсем понятно, что вы подразумеваете под партнерами (являются ли они просто логотипами или кастомным типом записей и т.д.). Как вы редактируете страницы (виз. редактором, встроенными редакторами, кодом на уровне шаблона) и т.д.
    Общий ответ - используйте плагин ACF. Если вам нужно например, добавить изображения логотипов только и при этом избирательно отобразить их в зависимости от страницы, то простое решение - ACF Gallery добавляете ко всем страницам. А далее для нужной страницы добавляете свой набор изображений, но! это не самое изящное решение.
    Надо более детально задачу описать
    Ответ написан
    Комментировать
  • Парсинг контента на Wordpress - каким средством это можно реализовать?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Пример: нужно спарсить новости, список которых находится на site.ru/news/, а урл детальной новости имеет вид site.ru/nazvanie-novosti/. То есть отсутствует общий признак в URL

    Да, действительно и мне не удалось при помощи WPGrabber парсить подобные страницы.
    А почему бы не написать свой парсер на рнр или на любом другом языке и поставить на СRON? Грубо говоря, из /news получить список ссылок, пройтись по списку и спарсить контент. А дальше сформировать из него sql файл и скормить ВП (или как вариант спарсить в таблицу xls, а дальше плагином WP All Import импортировать на сайт + создать CRON задачу на импорт таблицы плагином WP All Import).

    Если нужно спарсить разово контент, то очень хорошая программа Visual Web Ripper. Визуально выбираешь что парсить, указываешь пагинацию и т.д., а дальше программа парсит и формирует таблицу. Остается при помощи WP All Import импортировать.
    Ответ написан
    Комментировать
  • Кто-нибудь знает бесплатный плагин, который подойдет для аренды авто?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Посмотрите, что лучше подойдет для вас. На ВП однозначно есть много плагинов, но надо подобрать для себя по функционалу. А так вы можете найти не только плагины, но и готовые темы, которые уже сделаны под аренду автомобилей с интегрированы/написаны нужные плагины.
    Плагины -
    https://ru.wordpress.org/plugins/car-rental/
    https://codecanyon.net/item/car-rental-system-nati...
    https://www.formget.com/car-rental-wordpress-plugins/
    (набрать в гугл wordpress car rental plugin )

    Темы:
    https://colorlib.com/wp/car-rental-wordpress-themes/
    Все они преимущественно платные и доступны для приобретения на themeforest. Однако, вы можете найти обнуленные версии бесплатно или за небольшую доплату.
    Вот, пример - https://themeforest.net/item/motors-automotive-car...

    (набрать в гугл wordpress car rental themes )
    Ответ написан
    Комментировать