Финты WordPress
777 subscribers
219 photos
12 videos
6 files
341 links
Авторский канал о WordPress. Новости, обзоры, код, решения и многое другое

Канал на YouTube https://www.youtube.com/@wpruse

Контакт админа @artikus13

6522ewm3kti85ia9
Download Telegram
Обновление WordPress 6.2

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

Подробно про обновление

Кратенько, что нового:
- обновился интерфейс Гутенберга;
- появились дополнительные вкладки;
- группировка паттернов по типам элементов;
- отдельная вкладка Медиа со встроенной библиотекой Openverse для загрузки бесплатных картинок;
- настройка глобалых стилей блока прямо в админке
для разрабов:
- экранирование имен таблиц и полей с помощью wpdb::prepare();
- функция get_page_by_title() устарела, вместо нее используте WP_Query;
- самая вкусняшка - новый аргумент search_columns для управления поиском по полям в поисковом запросе через WP_Query

Это далеко не все обновки, подробнее смотрите по ссылке.

P.S. На боевых сайтах не торопитесь обновляться, чтобы что-нибудь, где-нибудь не отвалилось)

#wordpress #update #core
👍20
🌐 С днем вебмастера всех!

У WPShop скидка 20% на все до 7 апреля!

Забрать скидку
🎉4
Forwarded from WordPress Digest (WordPress Digest Bot)
WP All Import: Атрибуты на русском языке в запросах XPath

XPath не позволяет делать запросы на кириллице вида {param[@name="Рулевая колонка"]}, но мы попробуем обойти это ограничение.

👉️ https://www.kobzarev.com/wordpress/wpai-cyrillic-attributes/

#PHP #wpdigest #WordPress #WPAI #XPath

Источник: @wordpress_digest
🔥5
Несколько видосов о нативной разработке блоков под Gutenberg и темы FSE

Первые два на английском, но по коду там все понятно что делается))

1️⃣ How to Create Custom eCommerce Theme with WordPress (FSE) and WooCommerce

2️⃣ WordPress Plugin Development: Gutenberg Blocks, React & More

3️⃣ Разработка Wordpress Gutenberg Blocks. Создание динамического блока с REST API.

Если знаете еще какие видео или статьи по нативной разработке блоков, то кидайте линки в коментах
🔥32👍1
Плагин пагинации и глоссариев от WPShop

Уже в релизе, можно купить, скачать и пользоваться

Поддерживает любые типы записей и любые таксономии. Работает через шорткод с кучей параметров.

Пример с городами

Купить плагин со скидкой 15%
👍5
Небольшой кейс.

Недавно тут с коллегой разбирали.

Задачка: Необходимо при создании поста произвольного типа, подчеркиваю, именно при создании поста, а не обновлении, отправлять данные из меты поста в CRM.
Произвольные поля создаются, сохраняют данные штатным функционалом ВП.

Вполне себе такая задачка, не особо эксклюзивная.

Решение: Все тривиально - вешаемся на хук save_post_{$post->post_type} собираем нужные данные, включая данные из меты и отправляем.

Что-то вроде такого

add_action( 'save_post_my_custom_post_type', function ( $post_id, $post ) {

/*
* тут код
*/
}, 100, 2 );

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

Начинаем разбираться:
1. Проверяем ключ полей меты - это первое, что надо проверить, часто бывает так что в форме ключ поля меты одно, а в базу пишется с каким-нибудь префиксом.
Нет, в нашем случае, с ключом поля все четко
2. Код верный, ключи верные, в чем дело? Смотрим исходники, как в плагине который создает CPT и мету для них происходит сохранение значений меты.
Оказывается, что сохранение меты вешается на хук save_post с приоритетом 2.
Теперь смотрим исходники ядра, где вообще стоит хук save_post в функции wp_insert_post

Видим вот такое
do_action( "save_post_{$post->post_type}", $post_id, $post, $update );

/**
* Fires once a post has been saved.
*
* @since 1.5.0
*
* @param int $post_id Post ID.
* @param WP_Post $post Post object.
* @param bool $update Whether this is an existing post being updated.
*/
do_action( 'save_post', $post_id, $post, $update );

/**
* Fires once a post has been saved.
*
* @since 2.0.0
*
* @param int $post_id Post ID.
* @param WP_Post $post Post object.
* @param bool $update Whether this is an existing post being updated.
*/
do_action( 'wp_insert_post', $post_id, $post, $update );

if ( $fire_after_hooks ) {
wp_after_insert_post( $post, $update, $post_before );
}

return $post_id

Продолжение 👇
🔥2
Продолжение 👆

Получается, что хук save_post_{$post->post_type} при создании поста срабатывает раньше save_post. Именно поэтому, не можем получить мету.

Переписываем код

add_action( 'save_post', function ( $post_id, $post ) {

if ( $post->post_type !== 'my_custom_post_type' ) {
return;
}

if ( $post->post_status !== 'publish' ) {
return;
}
/*
* тут код
*/
}, 100, 2 );

Вот теперь работает как надо.

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

Так что, коллеги, изучайте исходники, благо ВП это позволяет делать без проблем)

Удачи!
👍8
Forwarded from WordPress Digest (Mikhail Kobzarev)
Вышла новая версия плагина Yandex Turbo Feed 1.6.0 от mihdan

Плагин создаёт RSS ленты для сервиса Яндекс.Турбо.

Что нового в версии 1.6.0

- Добавлена возможность удалить все турбо-страницы для определённой ленты
- Добавлена возможность массового редактирования настроек турбо-страниц
- Добавлена возможность быстрого редактирования настроек турбо-страницы
- Подняты минимальные подерживаемые версии PHP 7.4 и WordPress 5.0

🔥 https://wordpress.org/plugins/mihdan-yandex-turbo-feed/

#plugins #wordpress #yandexturbo
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3💩1
⚠️ Повышение стоимости продуктов

У нас важная новость для всех текущих клиентов. На следующей неделе, 20 мая будет повышение стоимости лицензий.

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

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

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

Купить по старой цене
Новая стоимость на картинке ниже:
https://telegra.ph/file/98889aaf953f95647457d.png
💩4👍2
Forwarded from Злой полицейский (Mikhail Kobzarev)
Ребята из @wpkama, сложили все предложенные варианты воедино и на выходе получилось идеальное решение для полного запрета индексирования сайта во время его разработки, основываясь на окружении.

👉 https://wp-kama.ru/note/zapreshhaem-poiskovikam-indeksirovat-dev-versiyu-sajta
👍3
Фичи ядра

С версии ядра 6.2 в для поиска через WP_Query можно добавлять новый параметр search_columns через который указывать по каким колонкам в базе делать поиск.

Очень удобная штука, иногда надо отключить поиск по контенту или добавить что-то

Например так

$query = new WP_Query( [
'post_type' => 'post',
'post_status' => 'publish',
'no_found_rows' => true,
'cache_results' => false,
'posts_per_page' => 100,
's' => $term,
'search_columns' => [ 'post_title' ],

] );


Источник

#core
🔥5👍2
О как!

C 8.0 WooCommerce (релиз ожидается в августе) окончательно переводит заказы на отдельные таблицы и High-Performance Order Storage

Так что всем, кто разрабатывает решения под WooCommerce, имеет смысл проверить и допилить поддержку HPOS

Источник

#woocommerce #news

Подписаться
🔥6
Forwarded from Злой полицейский (Mikhail Kobzarev)
Ну наконец-то нормальные инструменты для прогнозирования деплоя, а не эта ваша бигдата!

Вашему вниманию предоставляется астрологический календарь деплоинга: deployhoroscope.ru

Полная таблица лучших и худших дней для деплоинга по вашему знаку зодиака теперь в ваших руках. Следуйте ей и прод больше никогда не упадёт.
👍6🤣3🔥1
Для тех кто не смотрел, крайне рекомендую доклад Кати Леурдо

Дебаг WordPress используя плагина Query Monitor

https://www.youtube.com/watch?v=0sM7UyNHfpI
🔥10
Forwarded from Злой полицейский (Mikhail Kobzarev)
В ACF 6.2 готовится новая важная фича - двухсторонняя связь типов записей через поле Relationship, а если все это ещё хранить в отдельной таблице, то и плагин posts to posts от scribu станет не нужным.

👍 https://www.advancedcustomfields.com/blog/acf-chat-fridays-options-pages-in-the-ui-and-bidirectional-relationships-coming-in-6-2/

#wordpress #acf #relationship #fields
🔥9
Плагин Product Feed Manager for WooCommerce

Условно-бесплатный. Скачать и установить можно с репозитория

Позволяет создавать фиды для кучи различных площадок, в том числе для Я.Маркета и любые кастомные фиды.

- обновляет фиды по крону
- можно делать отдельные фиды для нужных категорий
- работает с любыми атрибутами

В бесплатной версии есть ограничение на количество товаров в фиды, только 200 шт.

Но, если сильно надо, за небольшое вознаграждение расскажу как включить поддержку про в пару строк) Для этого пишем в личку. А описании канала есть личка админа

#wordpress #plugins
🔥5👍2