Ответы пользователя по тегу WordPress
  • Не корректно отображается поле в карточке товара, как исправить?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    У меня для Вас плохие новости, проблема в том, что карточка товара явно не была рассчитана на добавление дополнительных элементов в виде информации о вариации товаров (особенно радует абсолютное позиционирование у некоторых элементов там, где ожидаешь увидеть блочную верстку). У меня получилось их отобразить, но это выглядит крайне некрасиво:
    65af831d40aaf177497196.png
    Ответ написан
  • Как импортировать товары с чужого сайта Wordpress на свой wp?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Как импортировать товары с чужого сайта Wordpress на свой wp?

    Использовать готовые плагины WP для парсинга, например:
    WP Content Crawler
    Scrapes
    С wp работаю первый раз

    хотелось бы узнать у более опытных людей как это сделать «по человечески»

    Написать подробное тз и заказать на фрилансе.
    Ответ написан
  • Как добавить описание вариации товара, в карточку товара Woocommerce?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Использовать хук woocommerce_after_shop_loop_item и метод get_available_variations() у продукта, как то так:
    function test() {
      global $product;
    
      if ($product->is_type('variable')) {
        $current_variation_id = $product->get_variation_id();
        $variations = $product->get_available_variations();
    
        foreach ($variations as $variation) {
          if ($current_variation_id === $variation['variation_id']) {
            if (isset($variation['variation_description'])) {
              echo $variation['variation_description'];
            }
            break;
          }
        }
      }
    }
    
    add_action('woocommerce_after_shop_loop_item', 'test');
    Ответ написан
    6 комментариев
  • Import в скрипте вызывает ошибку консоли. Wordpress. Как решить?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Но сейчас я использую wordpress и wp_enqueue_script. Можно ли как-то добавить "module" к wp_enqueue_script?

    Попробуйте так:
    function my_scripts() {
      wp_enqueue_script('unique_script_id', get_template_directory_uri() . '/path/script.js', [], null, true);
      wp_script_add_data('unique_script_id', 'type', 'module');
    }
    
    add_action('wp_enqueue_scripts', 'my_scripts');
    Ответ написан
  • Как отменить правила в .htaccess для Logout ( Wordpress )?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Как сделать исключение для Logout?

    Отменяем любые правила, если обнаружен url /wp-login.php:
    # .htaccess
    RewriteEngine On
    
    # if url /wp-login.php
    RewriteCond %{QUERY_STRING} action=logout [NC]
    RewriteRule ^wp-login\.php$ - [L]
    
    # else other rulles
    RewriteCond %{THE_REQUEST} \?
    RewriteCond %{QUERY_STRING} !^p=
    RewriteCond %{REQUEST_URI} !^/wp-admin
    RewriteRule .? https://site.com%{REQUEST_URI}? [R=301,L]
    Ответ написан
    2 комментария
  • Какой тип Redis выбрать для высоконагруженного сайта WP?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Все очень субъективно, но некоторые особенности для каждого из решений можно выделить:
    • PhpRedis - это расширение, которое необходимо ставить вручную на Ваш сервер. Это может потребовать дополнительных технических знаний и доступа к серверу, но зато оно обеспечивает более высокую производительность.
    • Predis - простая установка через Composer, он не так быстр, как PhpRedis, но его легче добавить в проект.
    • Relay не рассматриваю, т.к. слишком новый (May 26, 2021).

    Если вам нужна максимальная производительность и Вы уверены в своих способностях по настройке сервера - выбирайте PhpRedis. Если же Вы цените простоту установки и удобство использования, Predis будет отличным выбором. Мой выбор для PHP сайтов - PhpRedis.
    Ответ написан
    1 комментарий
  • Инфоблоки как у битрикс, но в wordpress?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    имеется ли у wp что-то похожее на инфоблоки битрикса? Куда нужно копать, чтобы их найти?

    Информационные блоки - модуль, позволяющий каталогизировать и управлять различными типами (блоками) однородной информации. С помощью информационных блоков может быть реализована публикация различных типов динамической информации: каталоги товаров, блоки новостей, справочники и т.д.

    Вам нужны кастомные типы постов - Custom Post Types.

    Пример создания костюмного типа поста, register_post_type():
    function true_register_post_type_init() {
     
    	$labels = array(
    		'name' => 'Лиды',
    		'singular_name' => 'Лид',
    		'add_new' => 'Добавить лид',
    		'add_new_item' => 'Добавить лид',
    		'edit_item' => 'Редактировать лид',
    		'new_item' => 'Новый лид',
    		'all_items' => 'Все лиды',
    		'search_items' => 'Искать лиды',
    		'not_found' =>  'Лидов по заданным критериям не найдено.',
    		'not_found_in_trash' => 'В корзине нет лидов.',
    		'menu_name' => 'Лиды'
    	);
     
    	$args = array(
    		'labels' => $labels,
    		'public' => true,
    		'publicly_queryable' => false,
    		'has_archive' => false,
    		'menu_icon' => 'dashicons-email-alt2',
    		'menu_position' => 2,
    		'supports' => array( 'title', 'editor' )
    	);
     
    	register_post_type( 'lead', $args );
    }
    
    add_action( 'init', 'true_register_post_type_init' );
    Ответ написан
    Комментировать
  • Как называется событие, когда добавляешь запись в WP?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    wp_after_insert_post?
    Fires actions after a post, its terms and meta data has been saved.
    Ответ написан
    Комментировать
  • Что выбрать WP или Python+Django для сайта?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Короткий ответ (с учетом указанного ТЗ) - WP.

    Длинный ответ:
    публиковать страницы, создавать иерархию страниц, чпу url, какой то слайдер с картинками

    Учитывая типовое ТЗ, ответ - WP (все это уже реализовано, приимущественно бесплатно и в большом количестве).
    небольшое количество услуги в регионе

    Вы на старте выхода в интернет, предположу, что количество оказываемых услуг оффлайн - будет примерно равнозначно количеству оказываемых услуг онлайн, а значит производительность инструмента не первостепенна, ответ - WP.
    Нашли компанию, предлагает разработку сайта на WP или на Python+Django (дороже и дольше)

    Начнем с того, что это не равнозначные инструмент, ибо WP - это готовый движок/CMS для сайта + сам сайт (готовые шаблоны), развернул на хостинге и готово. А вот Django - это фреймворк, т.е. некий набор инструментов, да он позволяет сделать из него что угодно (ах*енно сделать (на правах отвечающего)), но потом. Соответственно, если вопроса в функционале и производительности не стоит (и предположу - сделать быстро) - выбираем WP, будет дешевле и быстрее.

    Что обычно я использую (от начального проекта к финальному):
    1. WP в стоке.
    2. Оптимизация производительности WP в 2-3 раза под конкретные задачи (от wp там мало что остается, но ценник и сроки еще не такие, как в п3).
    3. ASP.NET (если нужно быстрее любого WP и более специфический функционал).
    4. ASP.NET + кэширование (если прям совсем прижало по производительности).
    Ответ написан
    6 комментариев
  • Как в wordpress сделать чтобы url категории заканчивался слешем?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    WordPress functions.php (для категорий, нужно очистить кэш wp (если используется)):
    // add a slash at the end of the url for categories
    function add_url_slash_from_categories() {
        global $wp_rewrite;
        $wp_rewrite->category_base = 'category/';
        $wp_rewrite->tag_base = 'tag/';
        $wp_rewrite->flush_rules();
    }
    
    add_action('init', 'add_url_slash_from_categories');

    WordPress functions.php (для всех, нужно очистить кэш wp (если используется)):
    // add a slash at the end of the url of all urls, excluding files
    function add_url_slash($url) {
        if (!preg_match('/\.[a-zA-Z0-9]+$/', $url)) {
            $url = trailingslashit($url);
        }
        return $url;
    }
    
    add_filter('add_url_slash', 'add_slash_to_all_urls');

    .htaccess (для всех, 301 редирект):
    # set 301 redirects for all urls without a slash at the end to a slash
    RewriteEngine On
    RewriteBase /
    RewriteRule ^category/(.*)$ /category/$1/ [R=301,L]
    RewriteRule ^tag/(.*)$ /tag/$1/ [R=301,L]
    Ответ написан
    1 комментарий
  • Как исключить записи отдельной категории своей таксономии WordPress?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Параметры Таксономий

    Получаем все записи с таксономией offer_cat, исключая записи с id 100, 101 и 102:
    $q = new WP_Query([
      'post_type' => 'offer',
      'posts_per_page' => 99,
      'tax_query' => [
        [
          'taxonomy' => 'offer_cat',
          'field' => 'term_id',
          'terms' => [100, 101, 102],
          'operator' => 'NOT IN',
        ],
      ],
    ]);

    Получаем записи (3) с таксономией offer_cat и id 100, 101 и 102:
    $q = new WP_Query([
      'post_type' => 'offer',
      'posts_per_page' => 99,
      'tax_query' => [
        [
          'taxonomy' => 'offer_cat',
          'field' => 'term_id',
          'terms' => [100, 101, 102],
          'operator' => 'IN',
        ],
      ],
    ]);
    Ответ написан
    1 комментарий
  • Стоил ли экранировать вывод Contact Form 7?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Стоил ли экранировать вывод Contact Form 7?

    Если Вы под "экранировать" понимаете санитайзинг (Sanitize), то да. Лишний слой безопасности, который не зависит от конкретного плагина - хуже не сделает (если написан не криво).
    Ответ написан
    Комментировать
  • Как подключить вход через Google?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Nextend Social Login and Register
    Wp Social
    Login for Google Apps

    Настройка и создание токена выполняется в Google Developers Console (инструкция).
    Ответ написан
    6 комментариев
  • Какие методы сжатия изображений (миниатюр) для сайта есть?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Я так понимаю что создание миниатюр и сжатие это все таки разные вещи

    Верно.
    так как миниатюры создаются по принципу размера 1х1

    Не обязательно. Миниатюры создаются под определённые задачи. Бывает так, что существует несколько миниатюр единовременно, для одного изображения.
    Так как оптимизировать главную страницу с лентой записей с такими объемными миниатюрами?

    - Уменьшать количество единовременно загружаемых изображений.
    - Оптимизировать сами изображения.
    Конвертировать в webp формат. Я правильно понимаю?

    Верно.
    Ответ написан
    Комментировать
  • Как получить ближайшие вложенные страницы?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    'numberposts' => -1 рекурсивно получает все дочерние страницы указанного родителя, если его не указывать, то вернуться лишь те дочерние страницы, у которых parent_id == id родителя:
    <?php
    $id = 1;
    
    $config = [
      'parent' => $id,
      'post_type' => 'page',
      // 'numberposts' => -1,
      'post_status' => 'publish',
    ];
    
    $child = get_pages($config);
    
    if($child) {
      foreach($child as $page) {
        echo $page->ID;
      }
    } else {
      echo 'У этой страницы нет дочерних страниц.';
    }
    Ответ написан
    Комментировать
  • Как убрать WordPress Appliance - Powered by TurnKey Linux?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    просмотрели все файлы footer'a, но так и не нашли, может есть какой-нибудь ещё способ?

    Если в файлах темы не обнаружено подобное (надо проверить header.php, footer.php и functions.php), то вероятнее всего он подключается хуком и выводится в подвал. Ищите что то подобное:
    function add_copyright() {
      echo '<div class="copyright">Copyright 2024</div>';
    }
    
    add_action('wp_footer', 'add_copyright');

    Хук может располагаться в любом файле WP.
    Ответ написан
    Комментировать
  • Как исправить ошибку при редактировании сайта?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    - Включить другую тему и попробовать снова нажать "Редактировать сайт".
    - Отключить плагины и попробовать снова нажать "Редактировать сайт".
    - Возможно, у Вас слишком древний браузер, который не поддерживает JS метод .at(), зайдите с современного браузера и снова нажмите "Редактировать сайт".

    Попробуйте и сообщите о результате.
    Ответ написан
    9 комментариев
  • Что происходит после окончания подписки на плагин для Wordpress?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Плагины перестанут работать и сайт накроется? Или, может, я просто потеряю право на обновление и поддержку?

    Все указанное + размещение рекламы в местах, где ранее выводились плагины.
    Или у каждого плагина своя история?

    Верно, но зависит от лицензии.

    Предскажу Ваш возможный ход - при использование nulled плагинов, имеется уникальная возможность подцепить дополнительных пассажиров для Вашего сайта (от безобидного - реклама разных скамов, до более интересных вроде кражи различных данных пользователей и попытке заражения вирусами), так что аккуратнее.
    Ответ написан
  • Почему не удаётся пофиксить баг с внесением информации о вложении в базу данных при загрузке медиафайлов?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Помогло?

    А это?
    For those arriving at this question because of the question title (as I did), this solved my problem:
    This error can indicate that the table's PRIMARY KEY is not set to AUTO-INCREMENT, (and your insert query did not specify an ID value).

    To resolve:
    Check that there is a PRIMARY KEY set on your table, and that the PRIMARY KEY is set to AUTO-INCREMENT.
    Ответ написан
  • Как решить проблему с Allowed memory size в плагине Worpress?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Страниц на сайте много? Предположу, что проблема в пагинации...
    Еще интересный момент в том, что цикл while создает ссылки для каждой страницы.

    Я в php не силен, но быстрой гуглежкой нашел вариант логирования. Посмотрите, что будет писать и какое время займет различные части выполнения Вашего кода:
    - Пишем сообщение непосредственно в файл журнала ошибок сервера:
    error_log('Лог переменной: ' . print_r($var, true));

    - Получение временных меток перед и после выполнения кода:
    microtime(true)
    Ответ написан