Функция условия true in_category
Это продвинутая версия стандартной функции in_category. Она не только проверяет существование записи в определенных рубриках, но также во всех дочерних (вложенных) рубриках. У функции те же параметры, что и у in_category, поэтому ее можно использовать в качестве замены in_category.
Применение
in_category_tree('abc-category'); // второй параметр не обязателен внутри цикла
in_category_tree(array('category1','category2')); // используйте массив для указания нескольких рубрик
Сниппет
function in_category_tree($cats, $post = null) {
if ($post == null)
global $post;
if (!is_array($cats))
$cats = array($cats);
foreach ((array) $cats as $cat) {
if (in_category($cat, $post)) {
return true;
} else {
if (!is_int($cat)) {
$cat = get_category_by_slug($cat);
$cat = $cat->term_id;
}
$descendants = get_term_children($cat, 'category');
if ($descendants && in_category_tree($descendants, $post))
return true;
}
}
return false;
}
Дополнительные ссылки в консоли плагинов
Следующий сниппет очень пригодится разработчикам плагинов WordPress. Он позволяет разработчику добавить дополнительные ссылку под описанием своего плагина и рядом с кнопками Активировать либо Деактивировать. Очень полезно для того, чтобы быстро указать ссылки, относящиеся к вашему плагину или его автору.
![plugin-links[1]](https://wpincode.com/wp-content/uploads/2014/03/plugin-links1.png)
add_filter('plugin_row_meta', 'wpds_plugin_links', 10, 2);
add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), 'wpds_plugin_link_actions' );
function wpds_plugin_links($links, $file) {
$base = plugin_basename(__FILE__);
if ($file == $base) {
$links[] = '<a href="admin.php?page=plugin_settings">' . __('Настройки') . '</a>';
$links[] = '<a href="http://pluginwebsite.com/docs/">' . __('Документация') . '</a>';
$links[] = '<a href="http://pluginwebsite.com/report-bug">' . __('Сообщить о проблеме') . '</a>';
}
return $links;
}
function wpds_plugin_link_actions( $links ) {
return array_merge(array('settings' => '<a href="admin.php?page=plugin_settings">' . __( 'Настройки', 'domain' ) . '</a>'), $links);
}
Настройка работы Cron в WordPress
Обычно вы используете Crontab вашего сервера для планировки заданий. Однако, если у вас нет доступа к панели управления сервером или вы не полностью понимаете ее функционал, то вы можете использовать планировщик WordPress для своих задач. Можно настроить ежечасное выполнение, ежедневное или же дважды в день. Вот способ настройки для ежечасных и ежедневных задач.
register_activation_hook(__FILE__, 'wpds_cron');
add_action('perform_hourly_tasks', 'perform_task_1');
add_action('perform_hourly_tasks', 'perform_task_2');
add_action('perform_daily_tasks', 'perform_task_3');
function wpds_cron() {
wp_schedule_event( current_time( 'timestamp' ), 'hourly', 'perform_hourly_tasks');
wp_schedule_event( current_time( 'timestamp' ), 'daily', 'perform_daily_tasks');
}
function perform_task_1() {
// Эта функция вызывается каждый час.
}
function perform_task_2() {
// Эта функция вызывается каждый час.
}
function perform_task_3() {
// Эта функция вызывается один раз в день.
}
Источник: WPDevSnippets
