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

Для связи: @vadimfominov
Download Telegram
get_current_user_id() - Получает ID текущего (авторизованного) пользователя.

Использование:
$cur_user_id = get_current_user_id();
echo $cur_user_id;
get_post_meta() - Позволяет получить все метаполя.

$units_sold = get_post_meta($product->get_id(), 'total_sales', true);

В переменную $units_sold можно занести количество проданных товаров.
get_header() - подключает файл шаблона header.php (шапку). Если передан параметр $name, то будет подключен файл header-{name}.php.

<?php
if ( is_home() ){
get_header('home');
}
elseif ( is_404() ) {
get_header('404');
}
else {
get_header();
}
?>
Нужно узнать ID текущей категории поста и поставить его в массив параметров нужных постов. Потом стандартным циклом выводить посты.

<ul>
  <?php
  $category = get_the_category();
  $cat_add_id = $category[0]->term_id;
  $real_id = get_the_ID();

  $args = array(
    'cat' => $cat_add_id,
    'numberposts' => 6
  );
 
  $query = new WP_Query( $args );
  if( $query->have_posts() ){
    while( $query->have_posts() ){
      $query->the_post();
      if ($post->ID != $real_id) {
      ?>
      <li>
        <a href="<?php the_permalink(); ?>">
          <?php the_title(); ?>
        </a>
      </li>
      <?php
      }
    }
    wp_reset_postdata();
  }
  ?>
</ul>
Была необходимость выводить картинки категорий. Пример как это сделать 👇

<?php
$args = array('hide_empty' => 0);
$terms = get_terms('product_cat', $args);

foreach ($terms as $term) {

$thumb_ID = get_term_meta($term->term_id, 'thumbnail_id', true);
$image = wp_get_attachment_url($thumb_ID); ?>

<img
src="<?php echo $image; ?>"
alt="<?php echo $term->name; ?>">
<?php
}
?>
При создании своей темы для интернет-магазина с помощью Woocommerce, нужно сделать её совместимой с этим плагином.
Добавь код ниже в файл functions.php чтобы плагин Woocommerce работал с новой темой👍

function mytheme_add_woocommerce_support() {
add_theme_support( 'woocommerce' );
}
add_action( 'after_setup_theme', 'mytheme_add_woocommerce_support' );
Добавление на сайт AJAX фильтра постов по категориям, произвольным полям, либо по дате. Сортировка по убыванию / возрастанию.
Этот же принцип можно применять и при разработке фильтра товаров в интернет-магазине.
Ниже я собрал основные функции WP, которые использую при создании карточек постов.

the_title(); - выводит заголовок поста
the_excerpt(); - выводит краткое описание поста
the_permalink(); - выводит ссылку на пост
the_post_thumbnail(); - выводит миниатюру поста
the_time('j F Y'); - выводит дату публикации поста

Все эти функции использовать внутри одного из циклов вывода постов.
wp_enqueue_style() - правильно добавляет файл CSS стилей. Регистрирует файл стилей, если он еще не был зарегистрирован.

Принимает пять параметров
wp_enqueue_style( $handle, $src, $deps, $ver, $media );

Подробнее👇
wp_enqueue_script() - правильно подключает скрипт (JavaScript файл) на страницу.

Использовать эту функцию для подключения js файлов важно, потому что так вы в дальнейшем сможете без лишних проблем объединять JS файлы в один. Также в некоторых случаях избавитесь от конфликтов скриптов, когда зависимый скрипт подключается до основного (того от которого он зависит).

Принимает пять параметров
wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );

Подробнее 👇
Установил плагин, загрузил пару тестовых товаров, а страниц магазина нет?
Возможно ты забыл добавить <?php the_content(); ?> в файл index.php. Страницы магазина выводятся шорткодами и вставляются в поле для контента в админке, поэтому и нужно добавить the_content() для отображения страниц.
get_self_link()  - получает URL (ссылку) текущей страницы (запроса), которая запустила текущий работающий код.

Например вернет URL https://example.com, если мы вызовем эту функцию на главной странице сайта.
admin_enqueue_scripts - через этот хук принято подключить файлы стилей или скриптов для всех страниц админ-панели.

Это такой же хук как wp_enqueue_scripts, только для админки.
⚡️В 70% случаев вашему клиенту проще заплатить конкуренту

Почему? Просто потому, что он не нашел удобный способ оплаты

Внедрите в свой проект более 7 способов приема платежей! Как это сделать - пройдите регистрацию на сайте ENOT.io и мы все расскажем

Наши клиенты получают:
• инструменты и способы приёма платежей
• экономию на комиссиях и быстрый вывод денег
• оперативную связь с тех. поддержкой

Регистрируйтесь и подключайте свой проект на ENOT.io, чтобы клиент заплатил вам 😉
FiboSearch - плагин поиска товаров WooCommerce. Он дает пользователям хорошо разработанную AJAX панель поиска с предложениями в реальном времени.
Страница с опциями позволяет добавлять дополнительные страниц в панель администратора WP и использовать всю мощь полей ACF! Каждая страница администратора может быть полностью настроена.
После регистрации каждая страница параметров будет отображаться в правилах «условий отображения» для группы полей, что упрощает назначение определенных групп полей на определенные страницы параметров.
Для тех кто хочет разобраться или по какой-то причине не любит плагины.

Создаем форму обратной связи без плагина. Алгоритм простой:
1. Создание и вывод формы
2. Подключение ajax
3. Подключение обработчика
Поле «редактор WordPress» содержит опцию для выбора панели инструментов.
По умолчанию можно выбрать «Full» или «Basic», однако можно расширять панели инструментов, чтобы создать свои собственные, редактировать существующие и даже удалять существующие варианты.
Отключение лишнего функционала на сайте: емодзи, rest api и лишних ссылок в шапке

Eсли у вас просто блог или сайт, то функционал, который появился в WordPress новых версий вам может быть и не нужен. К такому функционалу относятся:
1. Rest api — новая инфраструктура предназначенная для разработки приложений на WP
2. Emoji (емодзи) — наборы смайлов
3. Лишний мусор в шапке — такие вещи как ссылки на предыдущие/следующие посты и т.д.

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