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

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Как убрать кавычки после php кода?

    Проблема не здесь. WP функция the_post_thumbnail() уже возвращает полный img тег (включая атрибуты src и alt) и получается, что у Вас внутри атрибута src вставляется еще один полноценный img тег.

    Попробуйте так ("full" аргумент указывает на размер изображения):
    <a href="<?php the_permalink(); ?>">
        <?php the_post_thumbnail('full', ['class' => 'lazy']); ?>
    </a>

    Но, если необходимо собрать свой собственный тег с указанием адреса до изображения, то можно использовать функцию get_the_post_thumbnail_url():
    <a href="<?php the_permalink(); ?>">
        <img class="lazy" src="<?php echo get_the_post_thumbnail_url(null, 'full'); ?>" >
    </a>
    Ответ написан
    3 комментария
  • Как автоматически проверять наличие способов оплат для неавторизованных пользователей на странице checkout (Woocommerce)?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Если оплата не появилась, значит возникла проблема, эту проблему необходимо обработать, для этого можно использовать что то вроде Sentry. В админке будет полный traceback с подробностями (кто, куда и при каких обстоятельствах зашел, какой софт использовал итп).
    Ответ написан
    8 комментариев
  • Как заполнять атрибуты Alt и прочее к фото, если сайт на WordPress?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    что именно нужно вписывать при загрузке фотографий через админку, в пустые “Окна”, те, что находятся под уже загруженным фото, а именно - Атрибут alt, Заголовок, Подпись, Описание, и на каком именно языке?

    Yoast SEO

    В контексте SEO оптимизации:
    - alt - короткий текст описывающий изображение, по примеру title страницы.
    - "заголовок" - если это атрибут title тега img, то обычно указывается аналогично alt (при наведение мышкой на изображение - будет выводить этот текст).
    - "описание" как и "подпись" - обычно указывается, для расширения seo контекста, в Вашем случае не обязательно.
    - Язык аналогичен основному языку страницы.
    Ответ написан
  • Как минифицировать HTML в WordPress?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Поделитесь, какие способы используете вы.

    WebPack + html-minifier-terser.
    Ответ написан
    Комментировать
  • Wordpress sass - Почему проблема с обновлением файла scss?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Столкнулся с проектом в дизайне находиться gulpfile.js

    Консоль:
    1. Поставить ноду (рекомендую использовать nvm).
    2. Поставить галп глобально.
    3. Перейти в корень с проектом.
    4. Выполнить установку зависимостей (npm install), для этого в корне проекта должен лежать package.json с нужными зависимостями.
    5. Запустить галп (gulp), остальные команды можно посмотреть в package.json.
    Ответ написан
  • Как можно установить чат с поддержкой на сайт?

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

    - Установив плагин (множество бесплатных), онлайн-чаты для WP.
    - Руками, вставив соответствующий код в тему или плагин WP:
    -- Бесплатные: Quickley, Chatra, Бесплатный онлайн-чат для сайта на JS?
    -- Условно бесплатные: Bitrix24 chat, AmoCRM chat, Umnico Live Chat итп.
    -- Платные: JivoChat, Carrot quest, LiveChat итп.
    Ответ написан
    Комментировать
  • Как создать шаблон вывода записей с произвольным типом?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    'has_archive' => true,

    - Для архивной страницы: /wp-content/themes/ваша-тема/archive-services.php
    - Для отдельной страницы: /wp-content/themes/ваша-тема/single-services.php
    'has_archive' => false,

    /wp-content/themes/ваша-тема/services.php
    Ответ написан
  • Как увеличить стоимость товара при помощи чекбоксов?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Использовать woocommerce и вариативный товар.
    Ответ написан
    Комментировать
  • Как сделать ссылку на полное изображение?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Попробуйте так (при необходимости, поправить регулярку и формирования нового тега):
    // functions.php or any plugin
    
    function test($content) {
        // Регулярка для поиска изображений
        $pattern = '/<img[^>]+src="([^"]+)"[^>]+>/';
        
        preg_match_all($pattern, $content, $m);
        if (isset($m[1])) {
            foreach ($m[1] as $i => $url) {
                // Получаем url "полного" изображения
                $full_url = preg_replace('/-\d+x\d+(\.\w+)$/', '$1', $url);
                
                // Изменяем стандартный <img/> на <a><img/></a>
                $r = '<a href="' . $full_url . '" target="_blank">' . $m[0][$i] . '</a>';
                $content = str_replace($m[0][$i], $r, $content);
            }
        }
        return $content;
    }
    
    add_filter('the_content', 'test');
    Ответ написан
    1 комментарий
  • Неизвестные скрипты на сайте (plupload и moxie). Для чего?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Это основные скрипты, которые входят в состав wp для обеспечения функциональности загрузки файлов:
    - plupload - загрузка файлов для wp.
    - moxie - расширение возможностей plupload.
    Ответ написан
  • Как реализовать индексацию страниц каталога с фильтрацией?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    1. Поставить фильтр товаров, который сможет формировать get запрос. Соответсвенно, магазин должен отвечать на этот запрос и формировать выдачу с запрошенными товарами.
    2. Переписать шаблон поиска товаров так, чтобы он подставлял все необходимые данные в title, h1 и прочие важные seo элементы. Так же, переписать формирование микроразметки для более точечного отображения ссылки, рейтинга итп в поиске.
    3. Заранее создать маршруты из п1. так, чтобы они были доступны для индексации.
    4. Проследить, чтобы в меню и sitemap были проставлены ссылки на п3.

    Либо, воспользоваться плагинами, искать примерно так - woocommerce filtering with save url params (Premmerce WooCommerce Product Filter).
    Ответ написан
    Комментировать
  • Как переопределить класс в WP?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Наследованием и переопределением?
    class My_ReviewsListTable extends Automattic\WooCommerce\Internal\Admin\ProductReviews\ReviewsListTable {
        public function get_review_count($product_id) {
            $args = [
                'post_type' => 'product_review',
                'post_status' => 'publish',
                'meta_query' => [
                    [
                        'key' => 'custom_field',
                        'compare' => 'NOT EXISTS',
                    ],
                ],
                'fields' => 'ids',
            ];
    
    
            if($product_id) {
                $args['meta_query'][] = [
                    'key' => '_product_id',
                    'value' => $product_id,
                    'compare' => '=',
                ];
            }
    
            $query = new WP_Query($args);
            return $query->found_posts;
        }
    }
    Ответ написан
    1 комментарий
  • Я могу использовать модифицированную тему в интернете?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Я хочу отредактировать тему Вордпресса, распространяемую под лицензией GNU General Public License v2.
    Я могу использовать эту модифицированную тему для своего сайта в интернете? Как сделать это правильно, чтобы избежать юридических казусов?

    GPLv2 позволяет свободно использовать и изменять ПО, при условии, что вы также распространяете его под той же лицензией.
    Мне кажется, что использование модифицированной темы на сайте в интернете не является распространением, так ли это?

    Если Вы не предлагаете скачать или продать эту тему, то да.
    Ответ написан
    1 комментарий
  • Дожна ли быть папка wp-json в корне сайта (для работы с Rest API в Wordpress)?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Дожна ли быть папка wp-json в корне сайта (для работы с Rest API в Wordpress)?

    Нет.
    Перед этим установил и активировал соответствующий плагин

    Какой?
    Он выдает ошибку

    Ошибку покажите?
    Ответ написан
    Комментировать
  • Что за файл p.log?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Что это за файл? Откуда он?

    Похож на обычный лог файл, ничего криминального.
    Ответ написан
    Комментировать
  • Как правильно добавлять данные о кол-ве просмотров постов в базе данных WordPress?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Корректно ли это делать при каждом просмотре поста?

    Или тут зависит от посещаемости? Чем больше она, тем больше проблем от этого способа будет?

    Все верно, нагрузка на сервер/бд будет прямо пропорциональна посещаемости.
    Хотел узнать, каким образом правильно обновлять количество просмотров в БД.

    Или данные где-то сохраняются и в базу добавляются потом, а не так часто?

    Все верно, но зависит от нагрузки:
    - Малая нагрузка: делаем стандартным образом, при обновление поста - обновляем счетчик в бд.
    - Средняя нагрузка: обновляем код так, чтобы он мог использовать транзитное кэширование wp (set_transient()).
    - Большая нагрузка: используем внешние очереди (например redis или rabbitmq), данные с которых снимаем и пишем в бд раз в N сек/мин.
    Ответ написан
    Комментировать
  • Как вывести ссылку в echo через acf?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    $link_bc = get_field('link-bc');
    $bc = get_field('bc');
    
    echo '<a href="' . esc_url($link_bc) . '"><span class="breadcrumbs__current">' . esc_html($bc) . '</span></a>';
    Ответ написан
    Комментировать
  • Как изменить только главную страницу WordPress?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Подключение отдельного css файла для главной страницы, functions.php:
    function test() {
        if (is_home() || is_front_page()) {
            wp_enqueue_style('home-style', get_stylesheet_directory_uri() . '/path/to/style-from-home.css');
        }
    }
    
    add_action('wp_enqueue_scripts', 'test');
    Ответ написан
    2 комментария
  • Как создать небольшой Интернет Магазин без Woocommerce?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    преподаватель сказал, что нам нельзя использовать Woocommerce, Elementor для создания магазина.

    1. Создать 3 новых типа записей "Товар", "Категория товара" и "Корзина", с необходимыми полями.
    2. Написать php код, который будет добавлять товар в корзину, если кликнули на соответствующую кнопку.
    3. Наполнить тестовыми товарами и протестировать работу своего велосипеда.
    Подскажите, пожалуйста, как можно создать более менее рабочий магазин?

    и прочие функции типичного Интернет магазина.

    Я бы начал с ТЗ, а не реализации, т.к. слово "прочие функции" слишком широко трактуется.
    Не очень понимаю, как возможно реализовать "добавление товара в корзину"

    Пример работы через сессии:
    if (!session_id()) {
        session_start();
    }
    
    function test_session() {
        if (!session_id()) {
            session_start();
        }
    }
    
    add_action('init', 'test_session', 1);

    Функция добавление товара в корзину:
    function add_to_cart($id, $q = 1) {
        if (isset($_SESSION['cart'][$id])) {
            $_SESSION['cart'][$id] += $q;
        } else {
            $_SESSION['cart'][$id] = $q;
        }
    }

    Функция получения товаров из корзины:
    function show_cart() {
        if (!empty($_SESSION['cart'])) {
            foreach($_SESSION['cart'] as $id => $q) {
                $product = get_post($id);
                echo "<div>{$product->post_title} (x$q)</div>";
            }
        } else {
            echo "Cart has empty";
        }
    }
    Ответ написан
    Комментировать
  • Как реализовать две цены в карточках товаров (вариативных) в каталоге?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Примерно так:
    function test() {
        global $product;
    
        if($product->is_type('variable')) {
            $variations = $product->get_available_variations();
            echo '<div class="custom-variations-wrapper">';
    
            foreach($variations as $variation) {
                if(isset($variation['display_price'])) {
                    $variation_id = $variation['variation_id'];
                    $variation_price = $variation['display_price']; // or 'display_regular_price'
    
                    echo '<form action="' . esc_url($product->add_to_cart_url()) . '" method="post" enctype="multipart/form-data">';
                    echo '<div class="variation" data-variation-id="' . esc_attr($variation_id) . '">';
                    echo '<p class="price">' . sprintf(__('%s'), wc_price($variation_price)) . '</p>';
                    echo '<input type="hidden" name="product_id" value="' . esc_attr($product->get_id()) . '" />';
                    echo '<input type="hidden" name="variation_id" value="' . esc_attr($variation_id) . '" />';
                    foreach($variation['attributes'] as $attribute => $value) {
                        echo '<input type="hidden" name="' . esc_attr($attribute) . '" value="' . esc_attr($value) . '">';
                    }
                    echo '<button type="submit">' . __('В корзину') . '</button>';
                    echo '</div>';
                    echo '</form>';
                }
            }
    
            echo '</div>';
        }
    }
    
    add_action('woocommerce_after_shop_loop_item', 'test', 20);
    Ответ написан
    5 комментариев