Надзвичайно корисні хакі WordPress, якими ви, ймовірно, ще не користувалися

31

Тепер, яким би «щоденним» став WordPress, оскільки кожен другий чи третій веб-сайт, який ви зустрічаєте, працює на базі WordPress, завжди часто звучать «як, біса, вони це зробили!» моменти, коли ви гортаєте сферу WordPress.

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

Зломи 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, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі