Функция условия 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. Он позволяет разработчику добавить дополнительные ссылку под описанием своего плагина и рядом с кнопками Активировать либо Деактивировать. Очень полезно для того, чтобы быстро указать ссылки, относящиеся к вашему плагину или его автору.
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