Пачка полезных сниппетов для блога. Часть 26

Функция условия 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]

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

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
Scroll To Top