Робота з CRON в CMS WordPress
Робота з CRON в CMS WordPress

У цій короткій нотатці я наведу невеликий приклад роботи з кроном у такому популярному рушії як WordPress.

Для регулярно повторюваної задачі (тобто коду, який потрібно виконувати регулярно), можна використати наступну заготівку коду:

add_filter('cron_schedules', function ( $schedules ) {
	$schedules['10sec'] = array(
		'interval' => 10,
		'display'  => __('Every 10 sec'),
	);
	return $schedules;
});

add_action('init', function(){
	if(!wp_next_scheduled('post_event_cron_action'))
	{
		wp_schedule_event( time(), '10sec', 'post_event_cron_action');
	}
});

add_action('post_event_cron_action', function () {
	echo 'Mail sent';
	mail('test@example.com', 'Test subject', 'Test body');
});

читати далі...

Як у WordPress отримати свій тип записів відфільтрувавши за потрібною таксономією
Як у WordPress отримати свій тип записів відфільтрувавши за потрібною таксономією

Щоб у WordPress отримати певний тип записів, відфільтрованих за кастомною таксономією (або стандартною), скористайтеся наступним сніпетом:

$Posts = get_posts(array(
	'post_type' => 'my-post-type',
	'order' => 'ASC',
	'tax_query' => array(
	array(
			'taxonomy' => 'my-taxonomy',
			'field' => 'slug',
			'terms' => 'event'
		)
	),
	'meta_query' => array(
		'AND',
		array(
			'type' => 'NUMERIC',
			'key' => 'event_date',
			'compare' => '<', 'value' => time()
		),
		array(
			'type' => 'NUMERIC',
			'key' => 'is_archive',
			'compare' => '==',
			'value' => 0
		)
	)
));

читати далі...

Як у Yii2 написати свій екшин (action) і повторно використовувати його у різних контролерах
Як у Yii2 написати свій екшин (action) і повторно використовувати його у різних контролерах

Перш ніж розробляти якийсь більш-менш великий продукт на фреймворку, я б порадив глибоко вивчити його можливості.

Сьогодні мова піде про екшени. Але не ті, що "жорстко" прописані в наших контролерах. А ті, які можна використовувати в різних контролерах, підключаючи через метод контролера actions():

public function actions()
{
	$actions = parent::actions();
	
	$actions['aj-avatar-upload'] = [
		'class' => 'commonactionuserAjaxAvatarUploadAction',
	];
	$actions['aj-avatar-delete'] = [
		'class' => 'commonactionuserAjaxAvatarDeleteAction',
	];
	
	return $actions;
}

З подібною «дією» ми стикаємось ще на самому початку свого шляху, відкриваючи файл конфігурації, де вказується action помилки:

'errorHandler' => [
	'errorAction' => 'site/error',
],

читати далі...

Як створити дочірню тему у WordPress
Як створити дочірню тему у WordPress

Вітаю, шановні читачі блогу!

Сьогодні розглянемо стандартну тему для більшості блогів, присвячених WordPress — створення дочірньої теми.

Для чого нам може знадобитися створення такої теми:

  1. Потрібно змінити дизайн деяких сторінок блогу, не зачіпаючи інший функціонал теми.
  2. Потрібно змінити функціонал певної сторінки — наприклад, головної або форми коментування.
  3. Потрібно додати новий функціонал.

Так, звісно, всі ці зміни можна вносити і в поточну тему. Якщо вона розроблена вами або створена на замовлення. Але якщо ви використовуєте тему з репозиторію WordPress, краще вносити зміни через дочірню тему. Оскільки при зміні батьківської теми, і подальшому її оновленні, всі ваші зміни буде втрачено.

читати далі...

Програмне створення сторінок у WordPress та їх відображення
Програмне створення сторінок у WordPress та їх відображення

Вітаю, шановні читачі блогу!

Сьогодні ми торкнемося ще однієї важливої теми, а саме — програмне створення сторінок у WordPress. А також їх відображення за заданим URL.

На перший погляд, подібна функція може здатися абсолютно непотрібною. Але! Що, якщо на сторінці перегляду плагіна потрібно додати текстову інформацію? Так, тут ми можемо реалізувати наш плагін (наприклад, форму зворотного зв’язку) у вигляді шорткода, і вставити його в текст сторінки. Але ж бувають ситуації, коли одного шорткода недостатньо. І потрібно розробляти окрему сторінку, відображаючи на ній як форму (наприклад реєстрації чи замовлення), так і текстові пояснення до неї. І дуже важливо, щоб цей текст можна було редагувати через адмінку. Чому? Наприклад, якщо це сторінка з формою замовлення, то текст пояснення може містити інформацію про поточну знижку. Яка може змінюватися в залежності від пори року чи інших побажань замовника. Суть, гадаю, зрозуміла і завдання ясне (або прошу до коментарів).
читати далі...