Работа с 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 получить свой тип записей отфильтровав по нужной таксономии

Для того что бы в ВордПресс получить определенный тип записей отфильтрованных по кастомной таксономии (или существующей), воспользуйтесь следущим снипеттом:

$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 и их отображение

Здравствуйте, уважаемые читатели блога!
Сегодня мы затронем еще одну важную тему, а именно — программное создание страниц в WP движке. А так же их отображение по заданному URL.

На первый взгляд, подобная функция может показаться совершенно не нужной. Но! Что если на странице просмотра плагина, нужно добавить текстовую информацию? Да, здесь мы можем реализовать наш плагин (к примеру форму обратной связи) в виде шорткода, и вставить его в текст страницы. Но ведь бывают ситуации, когда одним шорткодом не отделаешься. И нужно разрабатывать отдельную страницу, отображая на ней как форму (к примеру регистрации или заказа) так и текстовое пояснения к ней. И очень важно, что-бы этот текст можно было редактировать через админку. Почему? К примеру, если это страница с формой заказа, то текст пояснения может содержать информацию о текущей скидке. Которая может меняться в зависимости от сезона года или других предпочтений заказчика. Суть думаю понятна и задача ясна (или прошу к комментариям).
читать полностью...