9 вставок кода для WordPress
25 Мар 2023г. в 11:52В данном уроке приводится несколько коротких, но весьма полезных вырезок кода для WordPress.
1. Скрываем верхнюю панель администратора
Начиная с версии 3.1, WordPress выводит верхнюю панель администратора для всех пользователей. От ее вывода можно отказаться с помощью профиля пользователя. Но если на сайте много пользователей/авторов, то лучше воспользоваться функцией show_admin_bar, чтобы одним действием решить задачу для всех:
1
show_admin_bar(FALSE);
2. Автоматическая очистка корзины
В файле /wp-config.php нужно вставить следующий код для автоматической очистки корзины от материалов, старше 5 дней:
1
define('EMPTY_TRASH_DAYS', 5 );
3. Включаем внутренний отладчик WordPress
При разработке сайта нужно видеть ошибки, которые возникают при выполнении кода. Не все ошибки вызывают остановку скрипта, они могут приводить к странным эффектам. Чтобы включить вывод отладочной информации WordPress вставьте следующий код в файл /wp-config.php:
1
define('WP_DEBUG', TRUE);
Вы будете удивлены той информацией, которая будет выводиться в нижний колонтитул. Только нужно помнить об отключении режима отладки перед публикацией сайта.
4. Перенаправление пользователей после авторизации
Когда пользователь авторизуется в системе, то по умолчанию он попадет на панель управления. Но с помощью фильтра login_redirect его можно перенаправить на главную страницу сайта, если он не является администратором системы:
add_filter("login_redirect", "subscriber_login_redirect", 10, 3);
function subscriber_login_redirect($redirect_to, $request, $user){
if(is_array($user->roles)){
if(in_array('administrator', $user->roles)) return home_url('/wp-admin/');
}
return home_url();
}
Используя роль пользователя , его можно перенаправлять на любую страницу.
5. Вывод миниатюры заметки по умолчанию
Начиная с версии v2.9 WordPress предоставляет для записей опцию выбора миниатюры. Для записи можно использовать изображение в качестве миниатюры по умолчанию.
В главном цикле добавляем код:
1
if(has_post_thumbnail()){
2
3
the_post_thumbnail();
4
5
}else{
6
7
echo '<img src="' . get_bloginfo('template_directory') . '/images/default_post_thumb.jpg" />';
8
9
}
Проверяем наличие миниатюры с помощью функции has_post_thumbnail()
если она есть, выводим ее функцией the_post_thumbnail()
в противном случае генерирует тег img для миниатюры по умолчанию
Вы можете иметь набор миниатюр по умолчанию и выбирать любую из них в случайном порядке.
6. Выводим "С момента публикации прошло: <время>" для записей и страниц
Если с момента публикации прошло меньше недели, то будем выводить прошедшее количество дней, а в другом случае - дату публикации. В главном цикле вставляем код:
$time_diff = current_time('timestamp') - get_the_time('U');
if($time_diff < 604800){//В неделе 604800 секунд
echo 'С момента публикации прошло: ' . human_time_diff(get_the_time('U'), current_time('timestamp'));
}else{
echo 'Опубликовано: ' . get_the_date() . ', ' . get_the_time();
};
human_time_diff() конвертирует дату в воспринимаемый человеком формат;
get_the_time() возвращает время создания записи (параметр ‘U’ используется для формирования значения в формате Unix);
current_time() возвращает текущее время (параметр ‘timestamp’ используется для формирования значения в формате Unix).
7. Задаем специальный стиль для комментария автора
Отличным решением является выделение комментариев, сделанных автором записи. Нужно определить класс для контейнера комментария и использовать его в теме. Чтобы найти комментарии автора записи, можно использовать следующий код:
if($comment->user_id == get_the_author_meta('ID')){
echo '<div class="comment_wrapper author_comment">';
}else{
echo '<div class="comment_wrapper">';
}
Мы сравниваем идентификатор автора комментария с идентификатором автора записи, полученным с помощью функции get_the_author_meta(). Если они идентичны, используем класс author_comment, стили которого задаются в CSS.
8. Подсчитываем количество комментариев, сделанных пользователем
Можно сделать прямой запрос к базе данных WordPress для получения информации о пользователе. Поместите код данной функции в файл functions.php темы и вызывайте ее тогда, когда нужно вывести информацию об активности пользователя.
function get_site_data(){
global $wpdb;
$users = $wpdb->get_var("SELECT COUNT(ID) FROM $wpdb->users");
$posts = $wpdb->get_var("SELECT COUNT(ID) FROM $wpdb->posts WHERE post_status = 'publish'");
$comments = $wpdb->get_var("SELECT COUNT(comment_ID) FROM $wpdb->comments");
echo '<p>' . 'Пользователь ' . $users . ' написал ' . $comments . ' комментариев в ' . $posts . ' записях</p>';
}