• Как и откуда формируются страницы ?postID в wordpress?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    1. При переходе на https://easyvisavdk.ru/stranica-vizy/ - выдает пустую страницу, но с кодом 200.
    2. При переходе на https://easyvisavdk.ru/stranica-vizy/?postID=1238:
    2.1. Вначале сервер отдает страницу "Процесс оформления визы в Германию" (да да, мы загружали Мексику).
    2.2. Затем, происходит динамическая замена контента на Мексику. Для этого, в п2.1. предусмотрен div#usa_visa, который заменяется контентом в скрипте https://easyvisavdk.ru/wp-content/themes/visa-lend... на 189 строке. Данные запрашиваются из API WP по адресу https://easyvisainc.ru/wp-json/wp/v2/posts/1238.
    КартинкО

    66b0aaddb8e90296004489.png

    66b0ab0c45c81425402865.png

    Т.к. не видно самих постов в админке, то предположу один из вариантов:
    - Используется всего 1 страница со слагом stranica-vizy, где с помощью ACF полей созданы данные под каждую страну, которые потом динамически заменяют основной контент страницы.
    - Используется какой то CPT (Custom Post Types) со своими записями, тогда надо искать плагин, который взаимодействует с такими записями.
    - Данные зашиты в файлы, без возможности изменения из админки.

    P.S. SEO будет хромать!

    P.P.S. Точно нужно писать в консоль все данные о записи?
    КартинкО
    66b0ab4881c55369561823.png

    Ответ написан
    1 комментарий
  • Как в кастомной теме включить поддержку yoast seo?

    @qfenix
    Разработчик
    Просто установите плагин и настройте. Он сам будет внедрять метатеги в код страниц (согласно его настройкам).
    А для попадания в поисковую выдачу этого не достаточно. Roman правильно сказал.
    Ответ написан
    Комментировать
  • Как в кастомной теме включить поддержку yoast seo?

    @Kypidon4ik
    Фрилансер, Wordpress developer
    У меня были подозрение, в комментариях я их подтвердил...
    Вы думаете, что указав мета теги через yoast вы сразу же получите ваш сайт в выдаче в первых рядах. Так не бывает. Есть разные типы запросов. С точки зрения SEO запросы делятся на категории по частотности – параметру, который показывает, насколько часто запрос вводится в поисковик: низкочастотные (НЧ) – до 100 показов в месяц; среднечастотные (СЧ) – до 1000 показов в месяц; высокочастотные (ВЧ) – от 1000 показов в месяц. Это целая ниша SEO. За позиции в поиске нужно бороться. Также еще нужно краулерам ПС пройтись на вашем сайта (это тоже время). Также еще важно как давно создан домен, сколько авторитетных доменов ссылаются на него. Прошлое доменного имени и тд
    PS Единственное, что нужно проверить еще это метатег robots, он должен быть
    <meta name="robots" content="follow, index">
    Ответ написан
  • Можно ли привязать wordpress сайт(отдельностоящий) к wordpress.com?

    r3n0
    @r3n0
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    Можно ли привязать wordpress сайт(отдельностоящий) к wordpress.com?

    Нельзя. Это две разные, скажем так, сущности.

    Что можно: при наличии плана "Бизнес" можно мигрировать со своего сайта на wordpress.com, таким образом, сайт появится в списке сайтов под учётной записью заказчика на wordpress.com. Инструкция здесь, вторая инструкция здесь. Есть ограничения, с которыми стоит ознакомиться заранее.
    Ответ написан
    Комментировать
  • Как вывести иерархическое дерево термов в WordPress?

    @weart
    function get_categories_tree(string $taxonomy = 'category'): array
    {
        $terms = get_terms([
            'taxonomy' => $taxonomy,
            'parent' => false,
            'hide_empty' => false,
        ]);
    
        if (empty($terms) || $terms instanceof WP_Error) {
            return [];
        }
    
        $categories = [];
    
        foreach ($terms as $term) {
            $categories[] = (object) [
                'value' => $term->term_id,
                'name' => $term->name,
                'children' => get_children_categories($term->term_id, $category_id),
            ];
        }
    
        return $categories;
    }
    
    function get_children_categories(int $parent_term_id, int $category_id): array
    {
        $children = array();
        $child_terms = get_terms([
            'taxonomy' => 'category',
            'parent' => $parent_term_id,
            'hide_empty' => false,
        ]);
    
        foreach ($child_terms as $child_term) {
            $child = (object) [
                'term_id' => $child_term->term_id,
                'name' => $child_term->name,
                'value' => $child_term->term_id,
            ];
    
            $grandchildren = get_children_categories($child_term->term_id, $category_id);
            if (!empty($grandchildren)) {
                $child->children = $grandchildren;
            }
    
            $children[] = $child;
        }
    
        return $children;
    }


    $list = get_categories_tree();

    Как вывести в цикле с рекурсией думаю разберетесь..
    Ответ написан
    4 комментария
  • Как-то закрывается тег в html! Что делать?

    divside
    @divside
    Chupapi Munyanyo
    Потому что H5 не может быть в теге P. Ровно как и картинка там быть не должна. H - это заголовок, а P - это параграф (обычный строчный текст).

    Браузеры тоже не тупые, вот и пытаются исправить твою семантическую ошибку. Не все теги можно пихать друг в друга. Максимум что ты можешь пихнуть в P - это spanс background-image.

    Зачем тебе там вообще P, если у тебя там нет строчного текста...Делаешь просто div

    Должно быть так:
    <div id="test-answer">
        <h3 id="test-answer-text">Здесь находится какой-то вопрос, который должен адаптивно вписаться в определенные 
        границы</h3>
          <div id="test-answer-price">
            <img src="/assets/coin.png" id="test-answer-price-img" />
              <span>15</span>
          </div>
        </div>
    Ответ написан
    6 комментариев
  • Есть ли сервис для создания визуального HTML редактора со своими шаблонами?

    dima9595
    @dima9595
    Junior PHP
    По хорошему ненужно добавлять разрешения редактору копаться в HTML. По идеи должна быть форма, где этот редактор добавляет заголовок, описание и т.п. в эту форму и нажимает кнопку "Сохранить" (называйте как хотите). Максимум в форме можно сделать (прикрутить) простенький редактор для выделения текста жирным, курсивом, сделать ссылки и т.п.
    Так же стоит задуматься о безопасности, т.к. если можно встраивать html - есть вероятность что можно добавить что-то "неприятное".
    Ответ написан
    Комментировать
  • Должен ли фронтенд разработчик уметь верстать (css)?

    @strelok011
    Фронтэнд должен верстать лучше профессионального верстальщика??? Судя по всему мало кто понимает что такое проф верстка.

    Верстка, при всей своей кажущейся простоте, имеет большую кучу подводных камней и нюансов, спасибо разнообразию браузеров и технологий.

    Пренебрежительное отношение к верстке скорее всего из-за отношения к результату 'и так сойдет'.

    И если фронт не умеет в верстку - он будет костылить на js и писать чудовищную разметку, лишь бы работало.

    5 лет был чистым верстальщиком, сейчас второй год пишу на реакте (в основном).

    И да - качественный фронт лучше растить из верстака. Но такое встречается все реже и реже.
    Ответ написан
    1 комментарий
  • Как вы разрабатываете и поддерживаете сайты на Worpdress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    В целом все ок, разница всегда будет в каких-то нюансах. В зависимости от типа проекта, нюансов будет больше или меньше. У нас плюс-минус так:

    - Локальная разработка на macOS + Laravel/Valet (Nginx, PHP 7+, MariaDB, Redis/Memcached).
    -Staging/production могут быть как отдельными серверами, так и находиться на одном сервере, а также могут быть много сайтов на одном сервере, или это может быть не наш сервер, а какой-нибудь Kinsta или вообще клиентская инфраструктура к которой у нас доступа нет. Поэтому devops кухня вообще отделена. С нашей стороны только автодеплой из репы через CI/CD. Ветка develop -> staging, ветка master -> production.
    - WordPress, плагины, тема, и весь кастомный код являются зависимостями проекта, управляется с помощью Composer.
    - Работа с функциональностью WordPress строится полностью на командной строке с помощью WP-CLI. При необходимости пишутся свои команды для него.
    - Вся конфигурация проекта в .env (база, ключи, лицензии и прочее, что не попадает в git) и в папочке config в виде PHP-конфигураций (все что уже влияет на функциональность).
    - Медиа-файлы на локалке либо вообще не хранятся (Valet проксирует запросы на staging/production), либо синхронизируются со staging/production. Делается это с помощью отдельного cli-скрипта, который под капотом использует rsync.
    - Базы данных - отдельная история которая очень сильно зависит от специфики проекта. Где-то это простой push/pull с помощью WP Migrate DB, где-то тот же push/pull c помощью WP-CLI, где-то это целые миграции. В идеале надо стараться контент забирать с прода на стейдж и избегать публикации с dev/staging на продакшн. Но ситуации и проекты бывают разные, здесь нет одного правильного ответа.
    Ответ написан
    Комментировать
  • Wordpress меню активный класс для подменю?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Хуки меню почти на все случаи.

    wp_nav_menu([
        'theme_location' => 'top_left',
        'container'=> false,
        'items_wrap' => '<ul class="nav navbar-nav %2$s">%3$s</ul>',
        'menu_class' => '',
        'ul_class' => 'navbar-nav',
        'ul_child_class' => 'dropdown-menu',
        'li_class' => 'nav-item',
        'li_child_class' => 'nav-item',
        'a_class' => 'nav-link',
        'a_child_class' => 'nav-link',
    ]);


    ## Добавление стилей для стандартного меню
    add_filter('nav_menu_css_class', 'add_menu_list_item_class', 1, 3);
    function add_menu_list_item_class($classes, $item, $args) {
        if (property_exists($args, 'li_class') && !$item->menu_item_parent) {
            $classes[] = $args->li_class;
        }
        if (property_exists($args, 'li_child_class') && $item->menu_item_parent) {
            $classes[] = $args->li_child_class;
        }
        return $classes;
    }
    
    add_filter( 'nav_menu_link_attributes', 'add_menu_link_class', 1, 3 );
    function add_menu_link_class( $atts, $item, $args ) {
        if ( strpos( $atts['href'], home_url() ) === false ) {
            $atts['target'] = '_blank';
        }
        if (property_exists($args, 'a_class') && !$item->menu_item_parent) {
            $atts['class'] = $args->a_class;
        }
        if (property_exists($args, 'a_child_class') && $item->menu_item_parent) {
            $atts['class'] = $args->a_child_class;
        }
        return $atts;
    }
    
    add_filter( 'nav_menu_submenu_css_class', 'my_nav_menu_submenu_css_class', 1, 3);
    function my_nav_menu_submenu_css_class($classes, $args, $depth) {
        if (property_exists($args, 'ul_child_class')) {
            $classes[] = $args->ul_child_class;
        }
        return $classes;
    }
    Ответ написан
    Комментировать
  • Закрытие бесплатного G Suite (Workspace), куда мигрировать?

    @rrambo
    почему никто не рекомендует арендовать веб хостинг за пару баксов в мес, туда можно привязать домен и создать нужное колво почтовых аккаунтов
    Можно выбрать сервак в конкретной стране.. что бы не в Пахомии и не в Сша
    Самый простой же способ, не? к чему эти яндекс или мейлру для домена все
    Ответ написан
    6 комментариев
  • Закрытие бесплатного G Suite (Workspace), куда мигрировать?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Внезапно вариантов не так много, при этом половина хоть и дешевле будущей стоимости, но тоже не бесплатные:
    • Zoho (на бесплатном нет pop/imap/smtp)
    • Yandex для бизнеса
    • Biz.Mail.ru (aka "for business")
    • Microsoft 365 (Office 365) (использование своего домена включено в планы Family и Personal)
    • inbox.eu
    • iCloud+
    • Amazon Simple Email
    Ответ написан
    Комментировать
  • Как сделать такую анимацию?

    Vlad_IT
    @Vlad_IT Куратор тега CSS
    Front-end разработчик
    Крайне простая анимация, делается на чистом CSS + JS (для обработки смены слайда и последовательного включения анимации, если потребуется). В этой анимации все можно решить при помощи transform и opacity. Присмотритесь к видео (лучше скачайте его, чтобы мотать покадрово), разбейте каждый переход по пунктам. Я вижу, что фон через скейл анимируется отдельно от контента, а в контенте каждая строчка анимируется с transform: translateY(100%) в translateY(0%), последние строки еще анимируют переход opacity: 1 в opacity: 0.
    Когда слайд закрывается, весь блок с слайдом анимируется в transform: scale (какое-нибудь число больше единицы).

    Готовый код вам никто не даст, т.к. анимация слишком уникальна. Да и как правило, легче самому сделать анимацию, чем подстраивать чужую под свои нужды/

    Чтобы анимация не получилась глючной, смотрите, какие css свойства вы анимируете, сверяйте с списком https://csstriggers.com/opacity желательно, чтобы ваши свойства в основных браузерах не влияли на геометрию (пункт layout), идеально, чтобы не влияли и на отрисовку (пункт paint).
    Ответ написан
    1 комментарий
  • Редирект на 404 спасает от фишинга?

    PageAuditRU
    @PageAuditRU
    Senior SEO Анализатор
    Решение будет работать. Поисковики будут оценивать самый последний HTTP-код.
    На некоторых сайтах (правда по другой причине) эксплуатирую аналогичную схему много лет. Ни с Яндексом, ни с Гуглом проблем нет, они отлично, практически моментально, отрабатывают редиректы и в конце цепочки получают 404/410.
    Но стоит заметить, чем короче цепочка, тем "кошернее" будет выглядеть реализация.
    Ответ написан
    1 комментарий
  • Что лучше табы или пробелы?

    @anton_myaso
    в Python, например либо то либо то. Предпочтительнее пробелы.
    Тут правильно выше написали:
    Есть официальные рекомендации к коду
    Есть сложившиеся в проекте устои.

    В случае с Python: Юзай, кодер, пробелы, но пришел работать в контору, где табы - юзай табы. В конечно итоге, все на хоткей можно настроить
    Ответ написан
    Комментировать
  • Что лучше табы или пробелы?

    Один таб, определенно. Лаконичнее, красивее и четче, чем засорять пространство пробельными символами (да и поставить 3 пробела вместо 4х гораздо легче, чем один таб вместо ни одного таба).
    Табы - для отступов, пробелы - для пробелов между словами. Семантика-с.

    А если табы воспринимаются не так, как кому-то хочется - вэлкам в настройки.

    P.S. А для соблюдения чьих-то стандартов достаточно установить правило замены таба на 4 пробела в сборщике проектов, и будет счастье.

    P.P.S. Сейчас, в 2к20, радикально изменил свое мнение - пробелы выигрывают по всем показателям. Скажу так, джуны любят табы, а сеньоры отдают должное пробелам.
    Ответ написан
    2 комментария
  • Что не так с UX/UI этого интерфейса?

    1. Какой-то нечитабельный текст в самом начале (просто не приятно его читать)
    2. Раз уж это сайт отеля, то где тут самое важное - бронирование номера?
    3. Какие-то странные иконки в преимуществах. Что означают эти цвета и почему в преимуществе о пляже нарисован геймпад?
    4. Какое-то контринтуитивное и странное содержимое подвала. Как я должен догадаться, что там есть поиск?
    5. Что за "Идеи"?
    6. Что мне даст кнопка "Войти"? Нигде не сказано о необходимости входа и преимуществах регистрации на сайте.
    7. Крайне посторонне выглядит блок с "парнёрами" - наталкивает о мысли о вирусно-рекламных, типа новостных сайтах.
    8. В целом сайт выглядит очень странно.

    Я ни разу не дизайнер. Оценивал с точки зрения пользователя.
    Ответ написан
    Комментировать
  • Macbook Pro M1 8гб или Air M1 16гб?

    fedorez
    @fedorez
    Хатуль мадан
    Долго думал на этим вопросом. Взял эйр и не жалею. Больше скажу - очень доволен.
    Вообще вопрос сформулирован с недостатком инфы - надо бы указать конкретику - зачем вам комп.
    Несколько личных мыслей.
    - Мы два месяца назад взяли в семью три Air 16-256. У нас в семье один фронтенд, один бэк и я - iOS-мобайл. Для всех этих трех сфер (плюс кино/проигрывание музыки/интернет/рисование иконок в пиксельматоре) этот компьютер просто шикарен. Я переезжал с MacBook Pro late 2013, остальные со свежих винтел буков. Все очень довольны.
    - Отсутствие карлсона внутри эйра считаю плюсом. Не надо обслуживать будет. лишних дырок нет. Плюс на ютьюбе есть ролики как человек поставил термопрокладку, и эйр стал охлаждаться лучше прошки.
    - По поводу яркости, которая у Эйр меньше чем у Про на 100 нит. Я бы не сказал что это проблема-проблема с моей точки зрения - на первых ретинах было 250-300 нит, на прошках 2015 дотянули до 400 - все кричали какие шикарные экраны - а теперь это видите-ли мало и тускло. Субъективно - я и на старой прошке 2013 года в основном работал на 60-70% яркости, и здесь так же.
    - Лично мне больше нравится корпус у прошки. Ну вот плашка равной толщины как-то солиднее чем клин Эйра. Но это дело вкуса.
    - 8 Гб памяти не берите. Памяти много не бывает.
    Ответ написан
    1 комментарий