Перенаправляем на нужную страницу после регистрации
Вот очень полезный сниппет для перенаправления пользователя на нужную вам страницу после регистрации на вашем сайте или блоге 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 для клиентов довольно полезно оставлять им подсказки в административной панели «на всякий случай». Добавим хелп в окно редактирования записи/страницы с помощью небольшого сниппета.
Копируем следующий код и редактируем под свои нужды в строке 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;