Как установить фавикон (favicon) на сайт в WordPress?

Заходим в раздел Настройки -> Общие

Как добавить favicon

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

Значок сайта который Вы видите во вкладках браузера, строке закладок, и внутри мобильных приложений WordPress. Он должен быть квадратной формы с разрешением не менее 512 × 512 пикселей.

официальная рекомендация из панели управления WordPress
favicons

Как копировать файлы между Linux-серверами при помощи утилиты rsync?

rsync — быстрая и гибкая программа, позволяющая копировать файлы на/с удалённых машин.

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

Задача: скопировать всю директорию (включая все файлы) размером более 50ГБ с удаленного сервера под управлением Debian/Ubuntu.

Решение: Воспользуемся утилитой rsync. Подробная информация.

Общий синтаксис команд достаточно простой.

rsync [ОПЦИИ...] ОТКУДА... [КУДА]
    Pull (получение):
        rsync [ОПЦИИ...] [USER@]HOST:ОТКУДА... [КУДА]
    Push (отправка):
        rsync [ОПЦИИ...] ОТКУДА... [USER@]HOST:КУДА

Следуя этим схемам давайте выполним нашу поставленную задачу.

  rsync --archive --verbose --progress -e "ssh -p 22888" root@00.000.00.000:/var/www/site/ ~/newsite/public_html

Данная команда скопирует всё содержимое директории /var/www/site/ удалённой машины в домашнюю директорию пользователя /newsite/public_html текущей машины (с которой осуществлялось подключение).

Данный пример рассматривает подключение по нестандартному ssh порту 22888 (по умолчанию 22-ой).

Опции:

  • —archive (можно сокращённо -a) команда для удобства объединяет в себе ряд других команда (равносильно -rlptgoD). То есть, утилита пройдёт рекурсивно по всем вложенным каталогам, перенесёт символические ссылки как символические ссылки ( -l ), сохранит изначальные права доступа к файлам ( -p ), сохранит время модификации ( -t ) и т.д.
  • —verbose вывод подробной информации о процессе синхронизации.
  • —progress показывать строку прогресса для синхронизации.
  • -e указывает удаленную оболочку для подключения (использования)

Рекомендация

При неуверенности запускайте в пробном режиме, при котором ничего не произойдёт, а только утилита продемонстрирует в консоли свою работу, но файлы скопированы не будут. Для этого нужно добавить опцию —dry-run

В таком случае наша консольная команда может выглядеть вот так:

sudo rsync --dry-run -azvv -e ssh /home/path/folder1/ ЮЗЕР@ХОСТ:/home/path/folder2

На что обратить внимание?

  1. Это закрывающие слэши. Закрывающий слэш означает «внутреннее содержимое». То есть, если в случае /var/www/site/ убрать закрывающий слэш /var/www/site то в итоге будет создана эта директория и мы получим немного неожиданный результат. Наши копируемые файлы окажутся вот тут /newsite/public_html/site
    • При этом, наличие или отсутствие закрывающего слэша в имени директории, в которую будет происходить копирование, значения не имеет. Важно обращать внимание на слэш источника.
  2. Это символы двоеточия при подключении к удалённым машинам.

Как добавить заголовок «Last Modified» на сайте WordPress + Nginx?

Подробнее о заголовке Last-Modified можно почитать тут. Пожалуй, для SEO добавлю описание:

HTTP заголовок Last-Modified сообщает клиенту (браузеру, поисковому боту) время последнего изменения страницы (объекта). Если клиент получил заголовок Last-Modified, то при следующем обращении к адресу, при условии, что страница (объект) есть в локальном кэше, он добавит заголовок-вопрос If-Modified-Since (не изменилась ли страница после даты, полученной в Last-Modified).

В свою очередь сервер, получив запрос If-Modified-Since должен сверить полученную временную метку с временем последнего изменения страницы и, если страница не изменялась ответить 304 Not Modified.

Как добавить HTTP заголовок Last-Modified на PHP в WordPress?

В целом на официальном сайте уже существует реализация на PHP, которую остаётся немного адаптировать для WP.

Отправка Last-Modified и обработка HTTP_IF_MODIFIED_SINCE на PHP

// время последнего изменения страницы в формате unix time
$lastModified = strtotime('2022-06-18 19:01:58');

// дата последней загрузки, отправляемая клиентом
$ifModified = strtotime(substr($_SERVER['HTTP_IF_MODIFIED_SINCE'] ?? '', 5));

if ($ifModified && $ifModified >= $lastModified) {
    // страница не изменилась, отдача http статуса 304
    header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified');
    exit;
}

header('Last-Modified: ' . gmdate("D, d M Y H:i:s \G\M\T", $lastModified));
// дальнейшая загрузка страницы

Получаем время последнего изменения страницы, проверяем наличие If-Modified-Since, если есть — отдаем 304 Not Modified и останавливаем работу скрипта, иначе генерируем заголовок Last-Modified и отдаем страницу.

Версия для WordPress

Этот готовый код необходимо добавить в functions.php или через плагин. Я рекомендую добавлять этим методом.

/**
 * Last-Modified and If-Modified-Since Headers
*/

add_action('wp', poet_'last_if_modified_headers' );

function poet_last_if_modified_headers() {
    global $post;
        if(isset($post)){
            $LastModified_unix = strtotime($post->post_modified);
            $LastModified = gmdate("D, d M Y H:i:s \G\M\T", $LastModified_unix);
            $IfModifiedSince = false;

            if (isset($_ENV['HTTP_IF_MODIFIED_SINCE'])) {
                $IfModifiedSince = strtotime(substr($_ENV['HTTP_IF_MODIFIED_SINCE'], 5));
            }
            if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
                $IfModifiedSince = strtotime(substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 5));
            }

            if ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) {
                header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified');
                exit;
            }

            header('Last-Modified: '. $LastModified);
        }
}

Настройки HTTP-сервера Nginx

Если вы используете в качестве веб-сервера Nginx , то есть вероятность столкнуться с проблемой отдачи заголовка. Всё дело в том, если у вашей конфигурации включена директива ssi

Модуль ngx_http_ssi_module — это фильтр, обрабатывающий команды SSI (Server Side Includes) в проходящих через него ответах.

https://nginx.org/ru/docs/http/ngx_http_ssi_module.html

Пример конфигурации при котором разрешается обработка команд SSI в ответах:

location / {
    ssi on;
    ...
}

Следовательно, прицепом к этой директиве необходимо включить еще одну, которая по умолчанию выключена:

location / {
    ssi on;
    ssi_last_modified on;
}

Позволяет сохранить поле заголовка “Last-Modified” исходного ответа во время обработки SSI для лучшего кэширования ответов.

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

Вот и всё 🙂

Обязательно перезапустите HTTP-сервер Nginx и протестируйте отдачу заголовка.

Вот правильная работа заголовка:

протестируйте отдачу заголовка

Как установить Node.js в ОС Windows?

Шаг 1. Делаем запрос в поисковой системе

Делаем запрос в поисковой системе

Шаг 2. Переходим в раздел загрузки на официальный сайт

Переходим в раздел загрузки на официальный сайт

Шаг 3. Скачиваем установочный файл

Шаг 4. Запускаем процесс установки…

Скачиваем установочный файл

Выполняем последовательно действия при установке. Next

Запускаем процесс установки...

Принимаем условия и нажимаем Next

Принимаем условия и нажимаем Next

Это путь распаковки файлов программы. Ничего не меняем и нажимаем Next

Ничего не меняем и нажимаем Next

Ничего не меняем и нажимаем Next

Ничего не меняем и нажимаем Next

Важно! Нужно поставить галочку для установки дополнительных зависимостей в систему и нажимаем Next

Важно! Нужно поставить галочку для установки дополнительных зависимостей в систему и нажимаем Next

Нажимаем Install

ScreenShot00009 - Как установить Node.js в ОС Windows?

Начинается процесс распаковки (установки) файлов в систему

процесс распаковки (установки) файлов в систему

Шаг 4. Дожидаемся завершения установки дополнительных зависимостей

ScreenShot00011 - Как установить Node.js в ОС Windows?

Чтобы начать установку дополнительных компонентов нужно в консоли нажать любую клавишу

установка

После завершения установки проверьте версию Node.js и ее менеджера пакетов при помощи простых команд в консоли

node -v
npm -v
Результат

Поздравляю! На этом всё!

Как быстро улучшить производительность сайта на WordPress?

Самый простой плагин для оптимизации скорости WordPress, который позволяет ускорить работу сайта в несколько кликов, встречайте! Бесплатный плагин — Jetpack Boost.

После установки плагина и его активации в меню появится специальный раздел. Нас интересует ссылка Boost

Boost

Чтобы начать использовать функции плагина необходимо выбрать тарифный план. Его бесплатной версии более чем достаточно.

бесплатная версия плагина

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

Jetpack Boost — Настройки ‹ Мой сайт — WordPress 2 - Как быстро улучшить производительность сайта на WordPress?

Ну а если нет, то давайте улучшим эти показатели.

Оптимизация загрузки CSS

Первая настройка Оптимизация загрузки CSS создаёт критически важные CSS вашей главной страницы, публикаций и других страниц. Это позволяет значительно ускорить отображение контента на экране, в особенности на мобильных устройствах.Подробнее о создании критически важных CSS см. на web.dev

По умолчанию эта настройка включена. Единственное нужно дождаться ее завершения и не покидать страницу.

Оптимизация загрузки CSS

Кеш страниц

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

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

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

Кеш страниц

P.S. Рекомендую включить журнал и проверить работу кеширования. Если проблем на сервере нет, то при включенном страничном кешировании вы должны видеть попадание в кеш посещенных страниц.

кеширование

Отложенное выполнение второстепенного кода Javascript

Отложенное выполнение второстепенного кода Javascript переносит выполнение ряда задач на время после загрузки страницы. Таким образом важная визуальная информация отображается раньше, а веб-сайт загружается быстрее. Подробнее об отложенном выполнении javascript см. на web.dev

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

Объединить и минифицировать CSS и JS

Объединить и минифицировать CSS и JS: объединяет и сжимает ресурсы JavaScript и CSS, чтобы снизить количество и объём запросов к серверу, что позволяет быстрее загружать контент.

Опытные пользователи могут найти для себя полезную настройку — исключений JS:

Jetpack Boost — Настройки ‹ Мой сайт — WordPress 4 - Как быстро улучшить производительность сайта на WordPress?

CDN изображений

CDN изображений позволяет вашему сайту загружать изображения автоматически изменённого размера в современных веб-форматах прямо из всемирной сети доставки контента Jetpack.

Руководство по изображениям — функция, необходимая всем, кому требуется оптимизировать изображения на веб-сайте. С помощью этого руководства вы сможете гарантировать отображение всех изображений на вашем веб-сайте в нужном размере. Это необходимо для удобства пользователей, быстрой загрузки страниц и повышения рейтинга сайта. Следуя советам и методикам, приведённым в руководстве, вы сможете уменьшить размеры файлов изображений и ускорить загрузку вашего веб-сайта.

Доставка изображений из сети предоставления содержимого Jetpack. Автоматически изменяет ваши изображения до подходящего размера, конвертирует их в современные эффективные форматы, такие как WebP, и загружает их из глобальной сети серверов.

Ну вот и всё! В несколько кликов мы заложили неплохой фундамент для повышения производительности нашего сайта на WordPress.

Как получить текущий год на JavaScript?

const currentYear = new Date().getFullYear().toString();
  • new Date() — создаём объект который хранит в себе текущий момент времени
  • getFullYear() — выдёргиваем из объекта год указанной даты. Так как мы создавали экземпляр Date() без аргументов, то год будет соответствовать текущему моменту, а следовательно быть актуальным
  • toString() — возвращаем тип данных строку.

Ну вот и всё! Теперь в константе currentYear будет находится текущий год

пример

Как изменить имя учетной записи Майкрософт в Windows 11?

Чтобы изменить имя администратора для своей учетной записи Майкрософт, сделайте следующие шаги:

Шаг №1

Нажмите правой кнопочкой мышки на фирменной кнопке ПУСК и выберите ссылку Управление компьютером:

Управление компьютером

Шаг №2

Выберите Локальные пользователи и группы

Локальные пользователи и группы

Шаг №3

Выберите раздел Пользователи

Пользователи

Вы увидите всех доступных в системе пользователей.

Шаг №4

Выделите нужного и нажмите правой кнопочкой мышки на нём, выбрав ссылку Переименовать:

2024 04 09 230509 - Как изменить имя учетной записи Майкрософт в Windows 11?

Шаг №5

Переименуйте пользователя

Переименуйте пользователя

Шаг №6

Перезагрузите компьютер. После перезагрузки новое имя пользователя будет отображаться в системе:

Новое имя

Как изменить свой пароль от сайта WordPress с помощью WP-CLI?

Забыли пароль пользователя? Не беда! В этой статье мы его восстановим при помощи командной строки и инструмента WP-CLI (WP Command Line Interface) — это интерфейс командной строки для WordPress.

Откройте терминал, выберите директорию с нужным сайтом и введите первую команду:

wp user list

Эта команда отобразит всех пользователей вашего сайта.

+----+------------+--------------+---------------------------+---------------------+---------------+
| ID | user_login | display_name | user_email                | user_registered     | roles         |
+----+------------+--------------+---------------------------+---------------------+---------------+
| 1  | @admin     | @admin       | admin@gmail.com | 2023-11-29 10:25:31 | administrator |
| 2  | author     | author       | author@gmail.ru          | 2024-02-16 08:11:28 | subscriber    |
| 3  | dasha      | Даша         | dasha@gmail.ru  | 2024-03-14 09:58:12 | shop_manager  |
+----+------------+--------------+---------------------------+---------------------+---------------+

Нас интересует первый столбик. Запомните ID пользователя которому будете менять пароль и введите следующую команду:

wp user update id --user_pass=password

Вместо id — укажите нужное числовое значение, а вместо password — новый пароль. Всё!

Рекомендуемые (избранные) товары в WooCommerce

В WooCommerce есть крайне полезная функция Рекомендуемых товаров, которую, в силу каких то причин, мало кто использует ?‍♂️

В этой обзорной статье мы рассмотрим функцию Рекомендуемые товары.

Как включить Рекомендуемые товары?

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

включите рекомендуемые товары

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

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

Если необходимо массово изменить статус Рекомендуемых товаров, то удобным способом будет массовое редактирование. Выделяем нужные товары, и нажимаем Изменить

После этого в режиме массового редактирование устанавливаем Да или Нет

ставим массово Рекомендуемые товары

В режиме редактирования карточки товара функция отметки товара как Рекомендуемый тоже доступна, правда немного скрыта. Нужно распахнуть раздел в блоке Опубликовать:

Видимость

и сделать отметку

Включаем  рекомендуемый товар

Как выводить рекомендуемые товары?

Что ж, мы отметили ряд товаров, как Рекомендуемые и теперь наша задача вывести их отдельно на странице. Для этого в WooCommerce есть полезный и безопасный для новичков функционал — шорткоды, при помощи которых мы выведем наши Рекомендуемые товары.

Создайте произвольную страницу и в тело страницы вставьте вот этот шорткод [featured_products]. У меня это выглядит вот так:

добавим шорткод [featured_products]

Теперь, перейдя на эту страницу в публичной части сайта, мы увидим наши отмеченные товары

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

codeispoetry 078 - Рекомендуемые (избранные) товары в WooCommerce

Вывод при помощи виджетов

В разделе виджеты доступны независимые блоки для вывода Рекомендуемых товаров. Они не зависимы от ваших отметок, которые мы рассматривали ранее. То есть добавив этот блок вам необходимо заново отметить товары которые будут выступать в качестве Рекомендуемых. По сути это отдельный функционал. Что бы избежать путаницы я бы его назвал иначе, например, Группировка товаров или Избранные.

Добавив блок нужно отметить заново товары.

отметьте товары

Это справедливо и для категорий. То есть можно выводить все товары которые принадлежат Избранной категории.

Учтите, что это разные функционалы. И отмеченные ранее товары как Рекомендуемые не будут учитываться в этих блоках.

Figma: Как экспортировать фреймы в формат PDF?

Задача: Экспортировать отдельный фрейм в формате PDF.

Экспорт отдельного фрейма

Решение: Выделяем файл для экспорта

выделение фрейма

Справа, в разделе Экспорта нажимаем на «плюсик»

Затем выбираем нужный формат — PDF

выбираем формат ПэДээФ

и нажимаем Export

Выделенный фрейм будет экспортирован как файл в формате PDF

Экспорт файла

Экспорт всех фреймов по отдельности

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

экспорт отдельных слоёв

Экспорт этих слоёв произойдет в заархивированном виде. Внутри архива будут выделенные фреймы каждый в своём файле.

Экспорт всех фреймов в единственный файл

Если требуется экспортировать все фреймы одним файлом PDF, то для этого нам нужно обратится к меню в левом верхнем углу веб-страницы. Menu > File > Export frames to PDF…

2024 03 21 223747 - Figma: Как экспортировать фреймы в формат PDF?

Учтите, что в этом случае будут экспортированы все фреймы на вашей странице, в той последовательности, в которой они располагаются слева направо.

Вот итоговый файл после экспорта:

Для наглядности вы можете посмотреть процедуру экспорта в этом видео:

Как экспортировать одним файлом выборочные фреймы?

Невольно напрашивается вопрос: а как же сделать экспорт отдельных фреймов в единственный файл PDF? Здесь можно прибегнуть к небольшой хитрости — перенести (скопировать) их на отдельную страницу и затем осуществить экспорт, либо временно удалить фреймы которые не должны попадать в экспорт, сделать экспорт и потом вернуть удалённые фреймы обратно.

Ну или найти для решения этой задачи плагин 🙂

Как сделать текст бегущей строкой?

Пожалуй, самый простой и быстрый способ решить эту задачу является заключение текста в специальный HTML-элемент <marquee>, который используется для создания на странице прокручивающегося текста (бегущей строки).

Текс помещенный в теги этого элемента сразу начинает выполнять прокрутку. Ниже можно увидеть пример:

<marquee>Каждая кухарка должна научиться управлять государством</marquee>
Каждая кухарка должна научиться управлять государством
<marquee
  direction="left"
  bgcolor="yellow"
  width="480"
  behavior="scroll"
  style="display:block">
  <span>Каждая кухарка должна научиться управлять государством</span>
</marquee>
Каждая кухарка должна научиться управлять государством

Реализация на CSS

Ранее мы решили эту задачу мгновенно за счёт HTML, а теперь давайте рассмотрим пример на CSS.

Вот такой вид будет иметь наш HTML

<div class="scroll-wrap">
  <div class="scroll-text">Каждая кухарка должна научиться управлять государством.<div>
</div>

А вот такой CSS:

.scroll-wrap {

  overflow: hidden;
}

.scroll-text {
  transform: translateX(100%);
  animation: scroll-animation 15s linear infinite;
}

@keyframes scroll-animation {
  from {
    transform: translateX(100%);
  }
  to {
    transform: translateX(-100%);
  }
Каждая кухарка должна научиться управлять государством.

Как в WooCommerce отображать товары только из наличия?

Если требуется скрыть товары которых нет в наличии, то необходимо выполнить два условия:

  1. Включить функцию Управления запасами. Перейдите в раздел WooCommerce > Настройки > вкладка Товары > Запасы и включите функцию управления запасами
codeispoetry 052 - Как в WooCommerce отображать товары только из наличия?
  1. Далее, в нижней части страницы отметьте чекбокс Спрятать отсутствующие товары из каталога
спрятать товары которых нет в наличии

Вот и всё! Теперь давайте посмотрим, как это работает. Перейдём в карточку любого товара к разделу его статуса:

статус наличия

Когда отмечен статус В наличии мы можем наблюдать наш товар на витрине нашего электронного магазина:

В наличии

Теперь поставим настройку Нет в наличии и снова обратимся к витрине нашего магазина:

Нет в наличии

Товар исчез. Так мы и ожидали. Но что будет, если попробовать найти его через поиск?

товар не доступен для поиска

Да! Ожидаемое поведение, хороший UX. Исключенные товары (которых нет в наличии) при этой настройке не доступны для поиска.

Но у нас остался ещё один статус — Предзаказ. Давайте отметим его и посмотрим, что из этого получится.

  1. Товар появится на витрине
  2. Товар будет доступен для поиска

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

В WordPress есть специальный хук-action pre_get_posts, который позволяет изменять информацию экземпляра текущего запроса $wp_query и при помощи «сеттеров» мы можем повлиять на текущий запрос. Выглядит в виде кода это примерно так:

add_filter( 'pre_get_posts', 'poet_show_in_stock_only', 100 );

function poet_show_in_stock_only( $query ) {
	// не админка и это основной запрос с публичной части сайта
	if ( ! is_admin() && $query->is_main_query() ) {

		$query->set(
			'meta_query',
			[
				[
					'key'     => '_stock_status',
					'value'   => [ 'outofstock', 'onbackorder' ], // исключаем
					'compare' => 'NOT IN'
				]
			]
		);

	}
}

На самом деле тут нет ничего хитрого. Мы подключились в момент вызова это «экшена» с нашей функцией и сразу начали с проверки того, что: это не административная часть (т.к. запрос предназначен только для публичной, клиентской части сайта). Далее проверка что это основной запрос который выполняется в стандартном цикле WordPress и далее при помощи set мы устанавливаем новые аргументы в наш запрос, в которых исключаем товары со статусом: нет в наличии и предзаказ.

Но этого мало. При помощи условных тегов, которые справедливы только для WooCommerce, мы можем конкретизировать наш запрос и добавить ещё блок условий при которых будет вызываться наш «сеттер»:

add_filter( 'pre_get_posts', 'poet_show_in_stock_only', 100 );

function poet_show_in_stock_only( $query ) {
	// не админка и это основной запрос с публичной части сайта
	if ( ! is_admin() && $query->is_main_query() ) {

		if ( is_shop() || is_product_category() || is_product_tag() ) {

			$query->set(
				'meta_query',
				[
					[
						'key'     => '_stock_status',
						'value'   => [ 'outofstock', 'onbackorder' ],
						'compare' => 'NOT IN'
					]
				]
			);

		}
	}
}
  • is_shop() — Главная архивная страница товаров (как правило адрес /shop/ )
  • is_product_category() — Страница Категории товаров
  • is_product_tag() — аналогично Категории, но только страница каталога с товарами объединённых определённым тегом (меткой)

После добавления данного кода будут отображаться товары только со статусом В наличии (instock), а Нет в наличии (outofstock) и Предзаказ (onbackorder) — скрыты.