TGViewer
Channel Public Channel
Вадим Фоминов | Создаю сайты на Wordpress

Вадим Фоминов | Создаю сайты на Wordpress

@wordpress_by

Про сайты со сложной структурой: интернет-магазин, сайт-каталог, блог, сайт-портфолио или личный кабинет любой сложности.

Для связи: @vadimfominov
Subscribers
1.53K
Photos
233
Videos
5
Links
112

Showing posts older than #368 · Back to latest

Older Posts 20 shown
Post #366 1.41K
wp_ajax_(action) — срабатывает при WP AJAX запросе для авторизованного пользователя. Это запрос на файл /wp-admin/admin-ajax.php.

wp_ajax_nopriv_(action) — срабатывает при WP AJAX запросе для НЕ авторизованного пользователя. Это запрос на файл /wp-admin/admin-ajax.php.

(action) — это динамическая часть хука, в которой нужно указать название AJAX события. Это название нужно будет использовать как GET|POST параметр action в самом AJAX запросе на файл /wp-admin/admin-ajax.php. А также, на основе этого названия нужно будет создать хук, который будет обрабатывать AJAX запрос.
Post #364 1.37K
Акция в интернет-магазине заканчивается. Ключ активации у плагина подходит к концу. А как об этом сообщить пользователю или админу сайта?

Обычно известен конец мероприятия. Перевожу эту дату в секунды.
Потом перевожу в секунды текущую дату и узнаю разность между ними.
Полученный результат делю на 60*60*24 и получаю количество дней до конца акции.
Post #362 1.38K
Интересно получается, если нужно вывести контент поста, то использую the_content() и радуюсь. Выводит всё красиво со всеми тегами p и т.д.

Но, если хочу контент записать в переменную, то использую get_the_content() и когда использую эту переменную, то никаких тегов нет. Один сплошной текст.

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

$content = get_the_content();
$content = apply_filters('the_content',$content);
$content = str_replace(']]>',']]>',$content);

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

$content = $post[0]->post_content;
$content = apply_filters('the_content',$content);
$content = str_replace(']]>',']]>',$content);
Post #361 1.32K
Для эндпоинта отдельного поста в маршруте можно указать id этого поста или slug.

add_action('rest_api_init', function () {
  register_rest_route('art/v1', 'posts/(?P<slug>[a-zA-Z0-9-]+)', [
    'methods' => 'GET',
    'callback' => 'art_post',
  ]);
});

И в функции укажу какую информацию об этом посте я хочу получить.

function art_post($slug)
{
  $data = [];
  $args = [
    'post_type' => 'post',
    'name'  => $slug['slug'],
  ];
  $post = get_posts($args);
  $id = $post[0]->ID;
  $get_the_post_thumbnail_url = get_the_post_thumbnail_url($id);

  // Added to api
  $data['id'] = $id;
  $data['title'] = $post[0]->post_title;
  $data['get_the_post_thumbnail_url'] = $get_the_post_thumbnail_url;
  $data['content'] = $post[0]->post_content;
  $data['slug'] = $post[0]->post_name;

  return $data;
}
Post #359 1.45K
Для создания нового маршрута использовал функцию register_rest_route().

add_action('rest_api_init', function () {
  register_rest_route('art/v1', 'page/posts', [
    'methods' => 'GET',
    'callback' => 'art_page_posts',
    'permission_callback' => '__return_true'
  ]);
});

И с помощью функции укажу какой контент нужно выводить по зарегистрированному эндпоинту.

function art_page_posts()
{
  return "Контент страницы постов";
}
Post #356 1.4K
get_rest_url() - получает URL конечной точки REST API.
register_rest_field() - регистрирует новое REST поле для указанного типа REST объекта (ресурса).
register_rest_route() - регистрирует маршрут REST API и его эндпоинты (конечные точки). Говоря проще регистрирует URL по которому будет срабатывать указанная PHP функция.
rest_ensure_response() - проверяет и, если надо, преобразует переданные данные в объект класса WP_HTTP_Response.

Ещё больше информации по ссылке ниже 👇👇
Post #354 1.32K
WordPress REST API - позволяет пользователям удаленно управлять сайтом, например получать/создавать:
- посты,
- элементы таксономии,
- юзеров,
- комментарии и т.д.
Делается все это через HTTP запросы, так называемые «маршруты».

WordPress REST API:
- Предоставляет структурированный, расширяемый и простой способ получить или передать данные в WordPress.
- Использует json в качестве формата запроса и ответа, включая ответы на ошибки.
- Предоставляет разные данные: публичные и личные (доступны только после аутентификации).
- После аутентификации rest API позволяет управлять контентом сайта.
- Позволяет работать с любым языком программирования, который может обрабатывать HTTP-запросы и интерпретировать JSON, например JavaScript, Node.js или Java.
- Позволяет создать новые способы управления сайтом. К примеру, можно создать плагин, позволяющий администрировать сайт, или создать совершенно новый интерактивный интерфейс во фронэнде.
- Может заменить способ обработки ajax запросов.
Post #353 1.27K
Если проще, то REST API — это когда серверное приложение дает доступ к своим данным клиентскому приложению по определенному URL.

В API-системе четыре классических метода запроса:
GET — получить запись. Если хочешь что то забрать себе и показать на экране.
POST — создание новых записей. Если хочешь создать что то новое.
PUT — редактирование записей. Если хочешь отредактировать существующую запись (посмотри ещё про PATCH).
DELETE — удаление записей. Если хочешь удалить запись.

Чаще всего REST API применяют:
- создание мобильных приложений
- создание SPA
- предоставления доступа к программам сторонних разработчиков.
Post #352 1.27K
Нужно узнать 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>
Post #351 1.31K
Любите WordPress? Мы в REG.RU его тоже любим! 💙

Специально для вас мы приготовили ряд бонусов:
— SSL и хостинг в подарок к домену;
— 500 бонусных рублей на баланс Облачных VPS;
— REG.Site на 7 дней всего за 1 рубль (конструктор сайтов на базе WordPress).

Больше акций и скидок вы найдёте у нас в Telegram-канале: @regru. Здесь мы пишем о том, как продвигать сайты в поисковых системах, какими решениями лучше всего пользоваться сейчас и про бизнес в IT.
Post #350 1.38K
Для тех кто хочет разобраться или по какой-то причине не любит плагины.

Создаем форму обратной связи без плагина. Алгоритм простой:
1. Создание и вывод формы
2. Подключение ajax
3. Подключение обработчика
Post #349 1.32K
Все еще каждый день какие-то компании уходят из РФ или что-то ограничивают. Ребята из ИТ-компании iiii Tech завели канал, где рассказывают, как и чем заменить софт и сервисы, которые ушли. А ещё о том, как организовать работу, если часть твоих сотрудников уехала из страны. 

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

Любой желающий может задать свой вопрос через бота https://t.me/HelperIT2022_bot и получить ответ.

Подписывайтесь, внутри много полезной инфы
Post #348 1.45K
get_post_meta() - Позволяет получить все метаполя.

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

В переменную $units_sold можно записать количество проданных товаров.
Post #346 1.54K
admin_enqueue_scripts - через этот хук принято подключить файлы стилей или скриптов для всех страниц админ-панели.

Это такой же хук как wp_enqueue_scripts, только для админки.
Post #344 1.71K
current_user_can() - проверяет права текущего пользователя. Если записать конструкцию if(){} и внутрь вставить current_user_can('administrator'), то контент будет доступен только для администраторов сайта.
Post #340 1.9K
get_current_user_id() - Получает ID текущего (авторизованного) пользователя.

Использование:
$cur_user_id = get_current_user_id();
echo $cur_user_id;
Post #337 2.28K

Forwarded from WP-Kama.ru

block_core_social_link_services() | WP 5.4

Только увидел, что с недавних пор в ВП из коробки есть SVG социалок: телеграм и ВК в том числе - это порадовало :)

https://wp-kama.ru/function/block_core_social_link_services

По логике, выпиливать эту штуку в будущем не должны, так что полгаю можно юзать.
Post #336 2.41K
get_header() - подключает файл шаблона header.php (шапку). Если передан параметр $name, то будет подключен файл header-{name}.php.

<?php
if ( is_home() ){
get_header('home');
}
elseif ( is_404() ) {
get_header('404');
}
else {
get_header();
}
?>
Post #334 2.24K
При создании своей темы для интернет-магазина с помощью Woocommerce, нужно сделать её совместимой с этим плагином.
Добавь код ниже в файл functions.php чтобы плагин Woocommerce работал с новой темой👍

function mytheme_add_woocommerce_support() {
add_theme_support( 'woocommerce' );
}
add_action( 'after_setup_theme', 'mytheme_add_woocommerce_support' );
Post #333 2.09K
Хочешь стать программистом и получать от 150к в месяц?

Появился канал Войти в IT. Там пишет предприниматель и Fullstack-программист. Он делится 15-летней личной экспертизой и бесплатно обучает подписчиков, прямо с самых основ. Это твоя возможность легко и быстро научиться новой профессии:

🔵 Освоить PHP, JavaScript, C#, Python
🔵 Узнать о лучших инструментах для веб-разработки
🔵 Достойно зарабатывать на фрилансе уже через 6 месяцев

Подпишись и войди в IT!
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →