Перенаправляем на нужную страницу после регистрации
Вот очень полезный сниппет для перенаправления пользователя на нужную вам страницу после регистрации на вашем сайте или блоге WordPress. Пригодится тем, кто использует ВП в качестве CMS.
Просто вставьте следующий код в файл functions.php вашей темы или в плагин для сайта WordPress:
function __my_registration_redirect(){
return home_url( '/my-page' );
}
add_filter( 'registration_redirect', '__my_registration_redirect' );
Автоматически добавляем класс к body_class, если есть сайдбар
По-умолчанию, функция body_class() добавляет некоторые классы к тегу < body >, что позволяет проще стилизировать ваш сайт. Однако, ни один класс не добавляестя, если в вашем шаблоне есть сайдбар. Вот простая функция для решения проблемы.
Для применения хука просто вставьте код в functions.php.
function devise_has_sidebar($classes) {
if (is_active_sidebar('sidebar')) {
// добавляем 'class-name' к массиву $classes
$classes[] = 'has_sidebar';
}
// return the $classes array
return $classes;
}
add_filter('body_class','devise_has_sidebar');
Добавляем собственное сообщение в панель редактирования
При создании сайтов на WordPress для клиентов довольно полезно оставлять им подсказки в административной панели «на всякий случай». Добавим хелп в окно редактирования записи/страницы с помощью небольшого сниппета.
![customizing-the-wordpress-admin-part4-metabox-above-editor[1]](http://wpincode.com/wp-content/uploads/2013/10/customizing-the-wordpress-admin-part4-metabox-above-editor1.jpg)
Копируем следующий код и редактируем под свои нужды в строке 5. Вставляем, как обычно, в файл functions.php.
// Добавляем текст помощи справа вверху
function devise_metabox_top_right(){
add_meta_box( 'after-title-help', 'Публикация и сохранение изменений', 'devise_top_right_help_metabox_content', 'post', 'side', 'high' );
}
// вызываем функцию для отображения метабокса
function devise_top_right_help_metabox_content() { ?>
<p>Убедитесь, что вы нажали кнопку "Опубликовать" для публикации новой статьи, или "Обновить" для сохранения изменений после редактирования.</p>
<?php }
add_action( 'add_meta_boxes', 'devise_metabox_top_right' );
// // Добавляем метабокс над формой редактирования
function devise_text_after_title( $post_type ) { ?>
<div class="after-title-help postbox">
<h3>Использование этой формы</h3>
<div class="inside">
<p>Эта форма используется для добавлений новых статей/страниц или редактирования существующих. Убедитесь, что вы нажали кнопку "Опубликовать" для публикации новой статьи, или "Обновить" для сохранения изменений после редактирования.</p>
</div><!-- .inside -->
</div><!-- .postbox -->
<?php }
add_action( 'edit_form_after_title', 'devise_text_after_title' );
Автоматические email-уведомления о новых записях для пользователей сайта наWordPress
Полезный способ уведомления пользователей о новых записях без необходимости подключать сторонний сервис. Необходимо лишь, чтобы пользователь был зарегистрирован на вашем сайте. Код вставляем в functions.php:
function true_send_notification_mails($post_ID) {
$wp_user_search = new WP_User_Query( array( 'fields' => array('user_email') ) );
$users = $wp_user_search->get_results();
$user_emails = array();
for ($i = 0; $i < count($users); $i++) {
$user_emails[] = $users[$i]->user_email;
} // endfor
$user_emails = implode(",", $user_emails); // список адресов через запятую
$subject = "На нашем блоге появилась новая запись " . get_bloginfo('name'); // тема письма
$message = "Чтобы ознакомиться, перейдите по ссылке <a href='" . get_permalink($post_ID) . "'>" . get_permalink($post_ID) . "</a>"; // текст сообщение
$headers = "Content-type: text/html; charset=utf-8 \r\n"; // кодировка письма
$headers .= "From: ". get_bloginfo('name') ." <no-reply@". ltrim(site_url(),'http://') .">\r\n"; // от
wp_mail($user_emails, $subject, $message, $headers );
return $post_ID;
}
add_action('publish_post', 'true_send_notification_mails');
Проверяем, есть ли у сайдбара виджеты
Сниппет проверяет, есть ли у сайдбара хоть один добавленный виджет. Полезно, когда вам нужно скрыть блок на сайте, если в нем нет виджетов.
function is_sidebar_active($index) {
global $wp_registered_sidebars;
$widgetcolums = wp_get_sidebars_widgets();
if ($widgetcolums[$index])
return true;
return false;
}
Пример использования:
if( is_sidebar_active( 'sidebar-name' ) ): // здесь код endif;
