Представляем несколько коротких, но полезных фрагментов кода, которые немного упростят вашу жизнь, как WordPress разработчика, Мы поговорим обо всем понемногу, начиная с автоматического удаления постов, быстрого выбора иконки поста и заканчивая перенаправлением пользователей, как только они авторизировались. Начнем с нескольких простых сниппетов в одну строку.

1. Скрываем внешнюю панель управления

Начиная с версии 3. 1, WordPress предоставляет внешнюю панель администратора для всех пользователей. Вы можете посчитать, что она ухудшает вид вашего сайта. Чтобы отключить ее, используйте функцию show_admin_bar: show_admin_bar(FALSE);

Вы также можете отключить ее с помощью своего «Профиля пользователя», но наш способ особенно удобен, если у вас на сайте много авторов / пользователей, и вам необходимо отключить панель для всех.

2. Автоматически удаляем посты из корзины

Количество постов в корзине может нарастать, если вы забываете их удалять. Используйте этот код в /wp-config. php, чтобы очистить корзину: define(‘EMPTY_TRASH_DAYS’, 5);

3. Включаем внутренний отладчик WordPress

При разработке необходимо видеть ошибки, выдаваемые вашим кодом. Помните, что не все ошибки останавливают выполнение скрипта, но, тем не менее, это ошибки, и они могут странным образом влиять на другие части вашего кода. Потому, включите отладку WordPress в вашем файле /wp-config. php: 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. Показываем стандартную иконку поста

Начиная с версии 2. 9, WordPress предоставляет возможность создавать иконку поста, как, например, вы можете увидеть здесь, на wpcafe. org. При добавлении поста администратором это называется «Featured Image» (Миниатюра). Но если у вас нет особой картинки для поста, вы можете просто вызвать картинку по умолчанию.

Внутри цикла: if(has_post_thumbnail()){ the_post_thumbnail();

}else{ echo ”;

} проверяем, есть ли иконка у поста с помощью has_post_thumbnail

Если да, показываем ее с помощью the_post_thumbnail ()

Иначе генерируем тег img для стандартной картинки

У вас даже может быть несколько картинок по умолчанию, одну из которых вы будете выбирать случайным образом.

6. Показываем время с момента публикации для постов и комментариев

Вместо «Опубликовано 25/11/1011» можно вывести «Опубликовано 3 дня назад».

Используется в цикле: echo human_time_diff(get_the_time(‘U’), current_time(‘timestamp’)). ‘ ago’;

Также можно использовать для комментариев: echo human_time_diff(get_comment_time(‘U’), current_time(‘timestamp’)). ‘ ago’;

Или можно показывать обычную дату / время только если пост старше недели, в противном случае выводить время с момента публикации.

$time_diff = current_time(‘timestamp’) – get_the_time(‘U’); if($time_diff < 604800){//seconds in a week = 604800 echo ‘Posted ‘. human_time_diff(get_the_time(‘U’), current_time(‘timestamp’)). ‘ ago’;

}else{ echo ‘Posted on ‘. get_the_date(). ‘, ‘. get_the_time();

};

7. Отдельный стиль для комментариев автора

Хорошее решение — показать пользователям, что автор поста пишет комментарий к посту. Все, что для этого нужно сделать, это добавить класс для контейнера комментария, а затем прописать этот стиль в теме.

Чтобы определить, какие комментарии были написаны автором поста, мы используем этот код для вывода названия класса: if($comment->user_id == get_the_author_meta(‘ID’)){ echo ”;

}else{ echo ”;

}

Мы сравниваем идентификатор пользователя, оставившего комментарий, с идентификатором автора поста, который получаем с помощью функции get_the_author_meta. Если они совпадают, мы выводим класс author_comment, стиль для которого мы прописываем в css.

8. Показываем информацию о пользователях, постах, комментариях вашего сайта на WordPress

Вы можете сделать запрос напрямую в вашу базу данных WordPress, чтобы показать нужную информацию по сайту. Вставьте эту функцию в файл темы functions. php и вызывайте ее в любом месте с помощью get_site_data () 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 ”. $users. ‘ members have made ‘. $comments. ‘ comments in ‘. $posts. ‘ posts’;

}

Это лучше, чем вызывать стандартные функции WordPress, так как можно подсчитать посты всех типов, а также только опубликованные на данный момент посты.

9. Правильное добавление файла JavaScript

WordPress предоставляет функцию wp_enqueue_script для безопасного добавления скриптов.

Допустим, наша папка со скриптами находится внутри папки шаблонов, и там у нас есть файл do_stuff. js Так что путь у нас получается такой: url_to_template_dir/scripts/do_stuff. js

Давайте теперь правильно вставим наш скрипт. Код нужно вставить перед wp_head в ваш файл шапки (header. php):

$script_url = get_template_directory_uri(). ‘/scripts/do_stuff. js’; wp_enqueue_script(‘do_stuff’, $script_url);

Здесь мы соединяем путь к нашему скрипту и его название с результатом WordPress-функции get_template_directory_uri

Затем мы добавляем наш скрипт, задавая для него идентификатор (для возможного дальнейшего использования) и URL скрипта. Теперь WordPress будет подключать наш скрипт на каждой странице.

Реальное преимущество этого в том, что если, например, наш скрипт do_stuff – это jQuery скрипт, нам также нужно иметь подгруженный jQuery.

Теперь же jQuery по умолчанию подключен в WordPress и был предварительно зарегистрирован с идентификатором jQuery. Так что все, что нам нужно – это добавить наш jQuery, а затем добавить наш do_stuff. js, вот так: wp_enqueue_script(‘jquery’);

$script_url = get_template_directory_uri(). ‘/scripts/do_stuff. js’; wp_enqueue_script(‘do_stuff’, $script_url, array(‘jquery’));

Обратите внимание на третий параметр в wp_enqueue_script для do_stuff: он сообщает WordPress, что наш скрипт do_stuff зависим от скрипта с идентификатором jquery. Это важно, так как значит, что jquery будет подгружен перед do_stuff.

Вы можете поменять местами команды wp_enqueue_script и это не будет иметь значения, так как установленные зависимости между скриптами позволяют WordPress подгружать скрипты в правильном порядке, чтобы они могли спокойно вместе работать.