Вадим Фоминов | Создаю сайты на Wordpress
1.53K subscribers
233 photos
5 videos
15 files
112 links
Про сайты со сложной структурой: интернет-магазин, сайт-каталог, блог, сайт-портфолио или личный кабинет любой сложности.

Для связи: @vadimfominov
Download Telegram
Код меняет название у кнопки "Добавить в корзину" на странице archive-product.php. В functions.php прописываем:

<?php
add_filter( 'woocommerce_product_add_to_cart_text', 'woocommerce_custom_product_add_to_cart_text' ); function woocommerce_custom_product_add_to_cart_text() { return __( ' Название_Кнопки ', 'woocommerce' );}
in_the_loop()
Проверяет активен ли цикл WordPress.

have_posts()
Проверяет есть ли записи для вывода.

the_post()
Устанавливает следующий пост в цикле и global $post.

setup_postdata()
Устанавливает global $post.

the_ID()
Выводит ID текущего поста.
the_title()
Выводит заголовок текущей записи.

the_title_attribute()
Выводит заголовок записи для атрибута html тега.

the_content()
Выводит контент записи.

the_excerpt()
Выводит отрывок записи, со вставкой в конце [...].

the_excerpt_rss()
Выводит отрывок (цитату) (для RSS).
get_permalink()
Получает URL записи.

the_permalink()
Выводит URL записи.

comments_number()
Выводит число комментариев записи.

edit_post_link()
Выводит ссылку (html) на редактирование поста.
 
the_date()
Выводит/получает дату публикации записи.

get_the_date()
Получает дату создания текущего поста.
Forwarded from WP-Kama.ru (campusboy)
Идея: при регистрации Типа записи и Таксономии сразу указывать, какой шаблон будет использоваться для Архива, а какой для Записи, а также сколько выводить в этом шаблоне записей.

Реализация:
https://wp-kama.ru/note/podklyuchenie-shablonov-dlya-ctp-i-tax-pri-ih-registratsii

Благодаря такому подходу, вы можете при регистрации указать любой свой параметр, а потом в фильтрах registered_post_type/registered_taxonomy его применить, что делает работу с WordPress ещё удобнее!
add_action( 'woocommerce_after_shop_loop_item', 'bbloomer_show_free_shipping_loop', 5 );
 
function bbloomer_show_free_shipping_loop() {
   echo '<p class="shop-badge">Бесплатная доставка</p>';
}
Прописывается в functions.php:
add_filter( 'wc_add_to_cart_message_html', '__return_null' );
Прописывается в functions.php:
add_filter( 'wc_add_to_cart_message_html', 'bbloomer_custom_add_to_cart_message' );
 
function bbloomer_custom_add_to_cart_message() {
   $message = 'свой_текст_уведомления!' ;
   return $message;
}
В карточках новостей лучше выделять заголовок новости большим размером шрифта и цветом. На изображениях выше хорошо видно для чего это делается.
Aimylogic — сервис для создания чат-ботов на сайте, в соцсетях или мессенджерах

Основа платформы — визуальный no-code конструктор, для работы не требуются знания кода. В сервисе можно создавать чат-ботов, которые умеют понимать естественную речь пользователя и реагировать на нее согласно сценарию.

Доступен ежемесячный бесплатный тариф.

Попробовать!
Интересное наблюдение, сделал приложение на Next.js. Передавал данные из формы в виде JSON строки POST запросом по API на сторону бэкенда (API Wordpress`a использовал) . Почему то бэк принимал не JSON строку, а массив состоящий из ключа (та самая длинная JSON строка) и значение в виде пустой строки. Не выяснил почему так, но с помощью
json_decode(array_key_first($_POST), true);
распарсил нужную строку и отправил данные в Битрикс.

array_key_first - Получает первый ключ массива.

Может у кого есть идеи почему фронт передавал JSON сроку, а бэк принимал такой массив 👆
⬜️ Что нужно сделать при создании сайта на wordpress ⬜️

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

⬜️ Настройка ЧПУ. Обязательно после установки wordpress ставьте ЧПУ ссылки. Перейдите в настройки » постоянные ссылки и выберите "Название записи"/"Sample post" для ссылок. На работающем сайте делать не рекомендую, так как может испортить seo. Не забудьте настроить редиректы для старых ссылок на новые страницы.

⬜️ Рекомендуйте посетителям сайта связанный контент или другими словами — перелинковка. Обязательно делайте ссылки с одних страниц на другие. Это улучшит пользовательский опыт и seo.

⬜️ Настройте транслитерацию имени файлов и url. Особенно важно настроить транслитерацию файлов, так как многие плагины для оптимизации картинок плохо работают с кириллическими названиями.

⬜️ Настройте защиту от взлома и спама.

⬜️ Настройте кеширование и сжатие файлов.

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

WEB PANDA | #оптимизация #wordpress
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
💡Как использовать WP и Next js в связке

✓ На базе WP пишем API и выгружаем как любой сайт на поддомен api.site.com который находится на обычном хостинге.
✓ Используя это API пишем фронт на Next.js и выгружаем проект через GitHub на vercel.com.
✓ Подключаем к проекту на vercel свой домен site.com.
✓ Готово.

Заказчик получает привычную админку от Wordpress и молниеносную работу сайта на Next.js.
👍2
🔥 Блоки Гутеберга для статей сайта

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

✓ Необходимо было настроить webpack для компиляции jsx кода в js
✓ Создал свой плагин чтобы переносить этот функционал и в другие проекты
✓ Плюсом оказались начальные знания по React
💡 Про распределение задач на проекте

Новый проект разделил на дедлайны - каждые две недели. За две недели нужно выполнить +- одинаковое количество работы. План составлялся в понедельник, потом его утверждали, подписывали договора и доступ к админке старого сайта у меня оказался в среду вечером. Начал работать в четверг. Хотелось успеть сделать всё что планировал и три дня перед дедлайном работал с утра до ночи. Вот и получилось что сделано много, но с багами. Плюс завалил изучение реакта и другие важные задачи.

Сделал для себя вывод, что лучше предоставить нормально работающую часть проекта, чем всё с багами и недостатками.

Поделитесь своим опытом в этой теме, интересно будет почитать.
Про решаемые задачи

Как то сложилось, что я разрабатываю сайты последние три года и практически в каждом проекте встречается что-то новое.

✓ Лендинг на WordPress.
✓ Сайт-каталог на WordPress.
✓ Интернет-магазин на WordPress + Woocommerce.
✓ Авторизация, регистрация, профиль пользователя и личный кабинет на сайте.
✓ Ajax фильтры любой сложности для магазина или каталога.
✓ Ajax пагинация страниц.
✓ Интеграция по API с фэйскаст и 1с фитнес клуб.
✓ Написал своё API для приложения на базе WordPress.
✓ Разработал приложение на Next.js.
✓ Разработал блоки Гутенберга на js и через поля ACF.

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

*Бесплатно
This media is not supported in your browser
VIEW IN TELEGRAM
Про липкие блоки в статье

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

Проблемы: на сайте контент статьи выводится в одном div. Сложность выполнения в том, что липкие блоки работают в пределах одного контейнера, а на странице таких блоков может быть больше.

Ход выполнения:
Вся задача решалась с помощью JS:
- добавил ко всем липким блокам .block-sticky
- записал в массив html теги из которых состоит контент
- с помощью метода map записал в новый массив индексы тегов, в которых есть .block-sticky
- в div с контентом статьи добавил изменённую структуру контента статьи

Методом .slice я выбирал какие теги вставлять в изменённую структуру.

Спасибо Александру за саму идею реализации этого функционала т.к. до этого я высчитывал высоту каждого блока до верхней части браузера и исходя из этого высчитывал где должен появляться липкий блок.
This media is not supported in your browser
VIEW IN TELEGRAM
Реализовал функционал работы с бонусами.

1) Начисление бонусов за покупку товара
2) Оплата товара накопленными бонусами
3) Добавил страницу в ЛК с информацией о бонусах за каждую покупку

Система бонусов на сайте позволяет:
1) Увеличить прибыль. Вознаграждения стимулируют покупать чаще, класть больше товаров в корзину и увеличивать средний чек.
2) Удержание клиентов. Системы поощрений удерживают пользователя внутри сайта.
3) Привлечение новых клиентов. За счет прямой рекламы программы лояльности.

____________________________

Пишите мне, если застряли с проектом и не знаете как решить задачу. Буду рад помочь в зависимости от своей загруженности.
This media is not supported in your browser
VIEW IN TELEGRAM
Про задачу с xlsx таблицей

📄 Задача:
Есть таблица, в которой каждый столбец - это часть адреса, к примеру Город, Район, Улица и дом. Каждая строка в этой таблице - это адрес, по которому осуществляется услуга. Нужно составить несколько выпадающих списков исходя из данных в этой таблице ( выпадающий список Городов, Районов, Улиц и т.д. ). По умолчанию доступны все города для выбора. Пользователь выбирает нужный город и в остальных списках остаются только те районы и улицы, которые есть в этом городе, потом пользователь выбирает район и корректируются списки улиц, домов и т.д.

Для админа сайта всё просто, загрузил файл с доступными адресами и на странице в списках появились новые города, районы, улицы...

✏️ Решение:
Для решения этой задачи использовал много Javascript`a.
1) Конвертировать файл в массив
2) Убрать из массивов дубли
3) Написать логику при которой при выборе Города, сортируются остальные пункты списка.
4) Все это сделать шорткодом, что бы удобно добавлялось на сайт в любом месте
🔥4
Forwarded from WordPress Digest (WordPress Digest Bot)
Компонентный подход в WordPress

Рассказываю о своём опыте написания тем для самой популярной CMS.
#development #themes #wordpress
https://wp-digest.com/guides/komponentnyj-podhod-v-wordpress/
🔥3