Чрезвычайно полезные лайфхаки для WordPress, которые вы, вероятно, еще не использовали
Теперь, каким бы «повседневным» WordPress, возможно, не стал — из-за того, что каждый второй или третий веб-сайт, с которым вы сталкиваетесь, работает на WordPress — всегда есть частые «как, черт возьми, они это сделали!» моменты, когда вы прокручиваете область WordPress.
Несмотря на то, что сообщество веб-разработчиков так активно занимается WordPress, оно никогда не переставало придумывать невероятные трюки и сюрпризы в рукаве. Несмотря на то, что существует целый набор плагинов, которые всегда расширяют функциональность веб-сайта WordPress за пределы значений по умолчанию и позволяют веб-мастерам формировать свой веб-сайт именно так, как они хотят, именно взломы WordPress действительно дают веб-мастерам возможность настройки. возможности, подобные которым, не могут быть реализованы никакими плагинами.
Взломы WordPress прочно закрепились и завоевывают все большую популярность, поскольку веб-мастера, не умеющие программировать, обращаются за помощью к некоторым веб-разработчикам, чтобы внедрить несколько функций на свой веб-сайт, которые действительно помогут им улучшить его функциональность и вывести его на новый уровень. Мы, однако, облегчаем вашу работу, подбрасывая вам несколько фрагментов кода, которые вам понадобятся (и вы захотите), чтобы ваш сайт развивался именно в том направлении, в котором вы хотите.
Следующий список посвящен таким приемам, которые вы можете реализовать на своем веб-сайте, чтобы он мог похвастаться исключительными пользовательскими возможностями и выставлять напоказ функции, которые в противном случае кажутся довольно невероятными.
1 Включение шорткодов в виджетах
Виджеты никогда не перестают придавать нашему веб-сайту то преимущество, за которое мы всегда боремся. Они являются неотъемлемой частью практически каждого веб-сайта WordPress, и поэтому всегда приветствуется способ улучшить их внешний вид или их функции, и это именно то, для чего предназначены шорткоды. Используйте фильтр для того же:
add_filter( 'widget_text', 'do_shortcode' );
Меню в верхней панели навигации вашего сайта, вероятно, можно игнорировать просто из-за его положения. И вот почему вам нужно переместить его, и вот здесь перемещение поможет:
#top-nav {float: right;}
Есть все шансы, что вы, возможно, решили изменить свой логотип, чтобы разместить его в центре заголовка, поэтому вам нужно будет переместить меню навигации в центр, чтобы оно не выглядело неуместно. И вот как вы это делаете:
#navigation {
position: relative;
}
#main-nav {
clear: left;
float: left;
list-style: none;
margin: 0;
padding: 0;
position: relative;
left: 50%;
text-align: center;
}
.nav li {
display: block;
float: left;
list-style: none;
margin: 0;
padding: 0;
position: relative;
right: 50%;
}
.nav li.hover, .nav li.hover {
position: relative;
}
.nav li ul li {
left: 0;
4 Отложите публикацию вашего поста в RSS-каналах
Нередки ошибки при написании сообщения, но когда сообщения уже отправлены в RSS, мелкие ошибки могут оказаться достаточно дорогостоящими. И тут на помощь приходит затягивание процесса.
Теперь вы можете убедиться, что сообщения не попадут в RSS-канал, как только вы опубликуете их в своем блоге. Все, что вам нужно сделать, это добавить этот фрагмент кода в файл functions.php в бэкенде вашего сайта:
function publish_later_on_feed($where) {
global $wpdb;
if (is_feed()) {
$time_now = gmdate('Y-m-d H:i:s');
$time_delay = '15'; // integer
$time_span = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
$where = " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$time_now') > $time_delay ";
}
return $where;
}
add_filter('posts_where', 'publish_later_on_feed');
5 Больше не нужны круглые аватары? Сделайте их квадратными
Тема, которую вы выбрали для своего веб-сайта WordPress, может автоматически изменять изображения аватара, чтобы представить их в круглой форме. Но многие веб-мастера предпочли бы, чтобы их аватары отображались в квадратной форме. Для того же, этот код GitHub работает исключительно хорошо:
#post-author .profile-image img, #comments .avatar img {
border-radius: 0;
-moz-border-radius: 0;
-webkit-border-radius: 0;
}
6 Пусть ваш RSS-канал содержит избранное изображение публикации
Использование изображений в ваших сообщениях всегда дает дополнительный импульс вашей аудитории и побуждает их читать и делиться ими со своими кругами. И когда вы можете использовать избранное изображение публикации в своих RSS-каналах, вы еще больше увеличиваете охват публикации, делая ее визуально более привлекательной:
add_filter('the_content_feed', 'rss_post_thumbnail');
function rss_post_thumbnail($content) {
global $post;
if( has_post_thumbnail($post->ID)) $content = '
'. get_the_post_thumbnail($post->ID, 'thumbnail'). '
'. $content;
return $content;
}
7 Удалить заголовок определенной страницы
Хотя существуют инструменты, облегчающие удаление заголовков со всех страниц сайта, иногда вам нужно удалить их только с определенных страниц. И вот код, который вам нужен для этого — просто замените «abcd» на номер страницы для любого поста:
.page-id-xxxx .title {
display: none;
}
8 Не хотите HTML в комментариях? Идите вперед и отключите его
HTML в разделе комментариев может привести к куче спама, который в конечном итоге может иметь серьезные последствия для вашего сайта. И именно поэтому отключение HTML в разделе комментариев так важно, чтобы защитить ваш сайт от спама. Для этого добавьте этот фрагмент кода в файл functions.php:
//As soon as someone comments
function plc_comment_post( $incoming_comment) {
// convert everything in a comment to display literally
$incoming_comment['comment_content'] = htmlspecialchars($incoming_comment['comment_content']);
// the one exception is single quotes, which cannot be #039; because WordPress marks it as spam
$incoming_comment['comment_content'] = str_replace( "'", ''', $incoming_comment['comment_content'] );
return( $incoming_comment );
}
// This will occur before a comment is displayed
function plc_comment_display( $comment_to_display) {
// Put the single quotes back in
$comment_to_display = str_replace( ''', "'", $comment_to_display );
return $comment_to_display;
}
add_filter( 'preprocess_comment', 'plc_comment_post', '', 1 );
add_filter( 'comment_text', 'plc_comment_display', '', 1 );
add_filter( 'comment_text_rss', 'plc_comment_display', '', 1 );
add_filter( 'comment_excerpt', 'plc_comment_display', '', 1 );
// This stops WordPress from trying to automatically make hyperlinks on text:
remove_filter( 'comment_text', 'make_clickable', 9 );
9 Когда пользователь ищет определенную публикацию на вашем сайте, просто направьте его прямо к полной публикации.
Возможно, вы не сочли это слишком необходимым, но если пользователи, которые ищут определенные сообщения, переходят непосредственно к полному сообщению, а не к миниатюре с выдержкой, они были бы признательны за это. Это не заставляет их продолжать навигацию и, таким образом, значительно улучшает пользовательский опыт.
add_action('template_redirect', 'redirect_single_post');
function redirect_single_post() {
if (is_search()) {
global $ks29so_query;
if ($ks29so_query->post_count == 1 && $ks29so_query->max_num_pages == 1) {
ks29so_redirect( get_permalink( $ks29so_query->posts['0']->ID) );
exit;
}
}
}
10 Отображать наиболее точную и текущую дату авторского права
Авторское право является неотъемлемой частью любого веб-сайта, который содержит много полезной информации, которую веб-мастер не хочет копировать другими рандомизаторами в Интернете. Вот почему важно отображать информацию об авторских правах точно и синхронно с текущим годом. Следующий фрагмент кода позволяет вам постоянно автоматически обновлять информацию об авторских правах:
function comicpress_copyright() {
global $wpdb;
$copyright_dates = $wpdb->get_results("
SELECT
YEAR(min(post_date_gmt)) AS firstdate,
YEAR(max(post_date_gmt)) AS lastdate
FROM
$wpdb->posts
WHERE
post_status = 'publish'
");
$output = '';
if($copyright_dates) {
$copyright = "© ". $copyright_dates[0]->firstdate;
if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) {
$copyright .= '-'. $copyright_dates[0]->lastdate;
}
$output = $copyright;
}
return $output;
}
11 Перенаправляйте пользователей после входа в систему
Как только любой пользователь войдет на ваш сайт, его или ее можно легко перенаправить на другой URL-адрес по вашему выбору. Все, что вам нужно, это этот фрагмент кода в файле functions.php:
user_level == 0)
{
ks29so_redirect( home_url() ); exit;
}
//If login user role is Contributor
else if ($current_user->user_level > 1)
{
ks29so_redirect( home_url() ); exit;
}
//If login user role is Editor
else if ($current_user->user_level >8)
{
ks29so_redirect( home_url() ); exit;
}
// For other roles
else
{
$redirect_to = 'http://google.com/';
return $redirect_to;
}
}
add_action('admin_init','redirect_user_on_role');
?>
12 Пусть заголовок отображает некоторые персонализированные виджеты
Шапка вашего сайта — это отличная рекламная область, где вы можете показывать действительно заметную рекламу. Однако наблюдается одна общая вещь: администраторы сайта не имеют большого контроля над тем, как они хотят отображать элементы в заголовке, и это приводит к отсутствию гибкости.
То, что нужно администратору, — это возможность настройки, позволяющая им добавлять все, что они хотят, справа от логотипа, и следующие строки кода позволяют им сделать именно это:
if (function_exists('register_sidebar')) {
register_sidebar(array(
'name' => 'Header Widget',
'id' => 'header-widget',
'description' => 'This is a widgetized area in the right side of the header.',
'before_widget' => '',
'after_title' => '
'
));
add_action( 'woo_header_inside', 'custom_canvas_header' );
function custom_canvas_header() {
?>
',
'before_title' => '