Чрезвычайно полезные лайфхаки для WordPress, которые вы, вероятно, еще не использовали

51
Содержание Скрыть

Теперь, каким бы «повседневным» WordPress, возможно, не стал — из-за того, что каждый второй или третий веб-сайт, с которым вы сталкиваетесь, работает на WordPress — всегда есть частые «как, черт возьми, они это сделали!» моменты, когда вы прокручиваете область WordPress.

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

Взломы WordPress прочно закрепились и завоевывают все большую популярность, поскольку веб-мастера, не умеющие программировать, обращаются за помощью к некоторым веб-разработчикам, чтобы внедрить несколько функций на свой веб-сайт, которые действительно помогут им улучшить его функциональность и вывести его на новый уровень. Мы, однако, облегчаем вашу работу, подбрасывая вам несколько фрагментов кода, которые вам понадобятся (и вы захотите), чтобы ваш сайт развивался именно в том направлении, в котором вы хотите.

Следующий список посвящен таким приемам, которые вы можете реализовать на своем веб-сайте, чтобы он мог похвастаться исключительными пользовательскими возможностями и выставлять напоказ функции, которые в противном случае кажутся довольно невероятными.

1 Включение шорткодов в виджетах

Виджеты никогда не перестают придавать нашему веб-сайту то преимущество, за которое мы всегда боремся. Они являются неотъемлемой частью практически каждого веб-сайта WordPress, и поэтому всегда приветствуется способ улучшить их внешний вид или их функции, и это именно то, для чего предназначены шорткоды. Используйте фильтр для того же:

add_filter( 'widget_text', 'do_shortcode' );
2 Делаем верхнюю навигацию более заметной

Меню в верхней панели навигации вашего сайта, вероятно, можно игнорировать просто из-за его положения. И вот почему вам нужно переместить его, и вот здесь перемещение поможет:

#top-nav {float: right;}
3 Переместите меню навигации в центр (любезно предоставлен код: GitHub).

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

#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 = '<p>'. get_the_post_thumbnail($post->ID, 'thumbnail'). '</p>'. $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:

<?php function redirect_user_on_role() { //retrieve current user info global $current_user; get_currentuserinfo(); //If login user role is Subscriber if ($current_user->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' => '<div id="%1$s" div class="widget">',
 'after_widget' => '</div>',
 'before_title' => '<h3>',
 'after_title' => '</h3>'
 ));
add_action( 'woo_header_inside', 'custom_canvas_header' );
function custom_canvas_header() {
?>
<div id="header-widget">
<?php if (function_exists('dynamic_sidebar') && dynamic_sidebar('header-widget')): else: ?>
<?php endif; ?>
</div>
<?php
}
}
13 Дайте приборной панели персонализированный логотип

Многие веб-мастера стремятся иметь более персонализированный логотип для своей панели инструментов в бэкэнде WordPress. Следующий код служит цели, даже если это клиент, который пришел к вам с таким запросом:

add_action('admin_head', 'custom_logo');
function custom_logo() {
echo '
<style type="text/css"><!--
#header-logo { background-image: url('.get_bloginfo('template_directory').'/images/custom-logo.webp) !important; }
--></style>';
}
14 Установите нужный редактор по умолчанию

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

# Visual Editor as default
add_filter( 'ks29so_default_editor', create_function('', 'return "tinymce";') );
 
# HTML Editor as default
add_filter( 'ks29so_default_editor', create_function('', 'return "html";') );
15. Cast Away the Primary or Top Navigation
Canvas, in particular, has two navigation bars. One navigation bar is located above the header and it is thereby called the Top Navigation Bar. Then, you have the Primary Navigation that is located below the header. Now, whether you wish to use both or just one is entirely your prerogative, on our end, we can show you how to remove them:
Primary Navigation can be gotten rid of by this code:
add_action( 'init', 'remove_canvas_main_navigation', 10 );
  
function remove_canvas_main_navigation() {
    // Remove main nav from the woo_header_after hook
    remove_action( 'woo_header_after','woo_nav', 10 );
}
And to remove the Top Navigation, you will need this:
add_action( 'init', 'remove_canvas_top_navigation', 10 );
  
function remove_canvas_top_navigation () {
    // Remove top nav from the woo_top hook
    remove_action( 'woo_top', 'woo_top_navigation', 10 );
}

Итак, вот некоторые из самых невероятно эффективных хаков WordPress, которые привлекают все ваше внимание. Когда на повестке дня стоит возможность свободно управлять функциональностью вашего веб-сайта, вышеперечисленные хаки WordPress служат цели наиболее плавным и хирургическим образом.

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