• Skip to main content

Lilumi - Wordpress PHP Full Stack Developer

Hide Search
You are here: Home / wordpress фішки / Десяток корисних хаків для Wordpress

Десяток корисних хаків для WordPress

lilumi · 26 Листопада 2010 · 14 коментарів

Вирішив зібрати колекцію хаків та фішок, які я останнім часом часто використовую при створенні сайтів на WordPress.

Брендована адмінка.

Задача: Зробити вивід власного логотипу замість логотипу WordPress на сторінці логіну в адмінку, та в заголовку адмінки.

Для виводу логотипу на сторінці логіну зкопіюйте цей код в файл functions.php вашої теми:

function my_custom_login_logo() {
    echo '<style type="text/css">
        html {background-color:#001721;}
        h1 a { background-image:url('.get_bloginfo('template_directory').'/images/logo.png) !important; } </style>';
}

add_action('login_head', 'my_custom_login_logo');

Цим самим ви замінюєте вивід логотипа на власний logo.png , що знаходиться в папці images вашої поточної теми. Як бачите, зміни стосуються лише css’у і ви можете туди додати ще свої стилі для інших елементів (я, наприклад, ще люблю поміняти фон під фірмові кольори та тінь додати яскравого кольору, щоб було як ефект м’ягкої підсвітки)

Ось приклади таких сторінок логіну:

А ось код, що змінить логотип в заголовку адмінки:

 function my_custom_logo() {
    echo '<style type="text/css">#header-logo { background-image: url('.get_bloginfo('template_directory').'/img/clogo.png) !important; }</style> ';
    }
add_action('admin_head', 'my_custom_logo');

Тут я теж люблю додавати стилі, щоб забрати заголовок сайту і зробити лого клікабельним. Приклад зміненої шапки адмінки

Заміна тексту в футері адмінки

Ще одна фішка, добавляє в футер адмінки дані про використану оперативку на хостингу і кількість запитів до MySQL та швидкість генерації сторінки:

function usage($value) {
	if ($value == 1)
		echo '<div class="usage">';
	
	printf(('%d / %s'), get_num_queries(), timer_stop(0, 3));
	echo ' / ' . round(memory_get_usage()/1024/1024, 2) . ' мб';
	
	if ($value == 1)
		echo '</div>';
}
add_action('admin_footer_text', 'usage');

Звичайно ви можете замінити це і в команді echo виводити якусь іншу інформацію.

Видалення непотрібних блоків в “Майстерні”

Наступний хак видаляє непотрібні блоки з головної сторінки адмінки, так званої “Майстерні” :

function custom_dashboard() {
	global $wp_meta_boxes;

	//unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
}
add_action('wp_dashboard_setup', 'custom_dashboard');

В кожному рядку видаляється по одному блоку з “Майстерні”:

dashboard_recent_comments — свіжі коментарі
dashboard_incoming_links — вхідні посилання
dashboard_plugins — rss новин плагіни
dashboard_quick_press — швидка публікація
dashboard_recent_drafts — нещодавні чернетки
dashboard_primary — rss новини WordPress
dashboard_secondary — rss інші новини WordPress

Я зазвичай видаляю все окрім основного блоку “Прямо зараз”. На сайтах з включеною можливістю коментування ще залишаю блок “Свіжі коментарі”. Ви можете так само вибірково видалити непотрібні елементи, видаливши рядок, що відповідає йому.

Видалення непотрібних блоків в head секції

Наступний хак я використовую на сайтах-візитках де не потрібно rss і перелінковки між постами, так як основний контент йде на сторінках. Він видаляє купу непотрібних рядків в секції head коду html.

remove_action('wp_head', 'feed_links', 2); //rss
remove_action('wp_head', 'feed_links_extra', 3); //atom 
remove_action('wp_head', 'index_rel_link'); // тут і нижче лінки для перелінковки сторінок
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
remove_action('wp_head', 'next_post_rel_link', 10, 0);
remove_action('wp_head', 'parent_post_rel_link', 10, 0);
remove_action('wp_head', 'rel_canonical');
remove_action('wp_head', 'start_post_rel_link', 10, 0);
remove_action('wp_head', 'rsd_link'); // лінка для трекбеків
remove_action('wp_head', 'wlwmanifest_link'); // лінка для редактора Windows Live Writer
remove_action('wp_head', 'wp_generator'); // тег, в якому пише версія вордпресу
remove_action( 'init', 'wp_version_check' ); // видалення провірки оновлень
remove_action( 'load-plugins.php', 'wp_update_plugins' ); // не провіряти оновлення плагінів
remove_action( 'load-update.php', 'wp_update_plugins' );
remove_action( 'admin_init', '_maybe_update_plugins' );
remove_action( 'wp_update_plugins', 'wp_update_plugins' );
remove_action( 'admin_init', '_maybe_update_themes' ); // не провіряти оновлення тем
remove_action( 'wp_update_themes', 'wp_update_themes' );

Використовувати це чи ні на вашому блозі це вже на ваш розсуд.

Заборона вставляти лінки в коментарях

Якщо ви не хочете, щоб лінки залишені коментаторами автоматично конвертувались в клікабельні посилання, то вставте цей код в functions.php:

remove_filter('comment_text', 'make_clickable', 9)

 

Показувати повідомлення про нову версію вордпреса лише для адмінів

< ?php
function stop_wpupdate() {
if ( current_user_can('manage_options') ) {
return;
} else {
remove_action( 'admin_notices', 'update_nag', 3 );
}
}
add_action( 'admin_notices', 'stop_wpupdate', 1 );
?>

 

Кнопки видалення коментарів на сторінці посту

Попередня фішка з показом повідомлень оновлень вордпресу для адмінів використовує функцію current_user_can яка визначає, чи має поточний юзер певні права. На основі цього я зробив фішку, що показує лінки на видалення коментарів і встановлення помітки “спам” для адміністраторів на сторінці посту. Цей код вставляєм в functions.php:

function delete_comment_link($id) {
  if (current_user_can('edit_post')) {
    echo '| <a href="'.admin_url("comment.php?action=cdc&amp;c=$id").'">del</a> ';
    echo '| <a href="'.admin_url("comment.php?action=cdc&amp;dt=spam&amp;c=$id").'">spam</a>';
  }
}

А саму функцію delete_comment_link вставляєм в файл comments.php вашої теми після функції edit_comment_link :

<?php edit_comment_link('Edit','',' '); delete_comment_link(get_comment_ID());?>

 

Анонс постів з певної рубрики в сайдбарі

В мене було завдання вивести в сайдбарі по першому реченню із трьох постів в рубриці “Проекти”. Я використав такий код в файлі sidebar.php :

     <div class="sidenews">
     <?php $my_query = new WP_Query('category_name=projects&showposts=3');
     while ($my_query->have_posts()) : $my_query->the_post(); ?>
     <h3><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>
     <?php preg_match( '/^.{150,}?[.?!]+(?=\s|$)/ ', get_the_content(), $A );
                               echo '<p>'.$A[ 0 ].'</p>'; ?>   
     <?php endwhile; ?>
     <p><a href="<?php echo get_category_link('4') ?>">Все проекты</a></p>
     </div>

Використаний регулярний вираз шукає перше речення, але якщо це речення менше 150 символів, то вона захопить і наступні речення. Таким чином я уникнув помилки, коли в першому реченні зустрічається чиєсь прізвище чи адрес сайту.

Вставка кнопки твітера Tweet

Щоб появилась кнопка з підрахуноком кількості ретвітів потрібно вставити ось такий код в файл single.php вашої теми (наприклад після коду the_title(); ):

<a href="http://twitter.com/share" class="twitter-share-button" data-text="<?php the_title(); ?>" data-url="<?php the_permalink(); ?>" data-count="horizontal">Tweet</a>
<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>

Це виведе горизонтальну кнопку з кількістю ретвітів з правої сторони. А щоб кількість ретвітів показувалось над кнопкою, то замініть data-count="horizontal" на data-count="vertical"

Ну і наостанок маленький хак: щоб в редакторі постів зробити перенос рядка br потрібно натискати Shift+Enter

пости по цій темі

  • Хитрий і ефективний метод боротьби зі спамерами. І без КАПЧ. (69)
  • wordpress: корисні функції в functions.php (14)
  • WordPress : проста і ефективна оптимізація бази данних (19)

wordpress фішки functions.php, php, wordpress hacks, wordpress фішки

Reader Interactions

Comments

  1. Андрей Сорвин says

    27 листопадаа 2010 at 06:52

    Однозначно в закладки ))

    Відповіcти
  2. Стас says

    2 Грудня 2010 at 15:46

    Дякую, корисні поради.

    Відповіcти
  3. Anri says

    17 Грудня 2010 at 18:59

    кльово!
    точно хочу забрендовану адмінку) але сам не наважуюсь лізти так глибоко…

    Відповіcти
    • lilumi says

      18 Грудня 2010 at 17:55

      та то ж не глибоко. Це ще дрібнички – спробуй. Просто зроби бекап файлів перед змінами

      Відповіcти
  4. teodor says

    6 Січня 2011 at 12:04

    А як на сторінці входу на блог замість фону прописати фонове зображення?

    Відповіcти
    • lilumi says

      10 Січня 2011 at 19:16

      пропиши css правило для тега body з потрібним бекграундом після тих правил, що в першому хаці описані – тобто в 4 рядку постав розрив рядка перед </style> і пиши щось по типу:
      body {
      background: url(“img/bg.png”);
      }

      Відповіcти
      • teodor says

        11 Січня 2011 at 18:58

        lilumi в css теми чи css вордпреса?
        В 4 рядку розрив? А попередні рядки міняти чи не чіпати? Буду вдячний якщо напишеш приклад.Дякую.

        Відповіcти
        • lilumi says

          11 Січня 2011 at 19:12

          писати в css хака. приклад: http://pastie.org/1448815

  5. Владислав says

    19 Січня 2011 at 16:52

    От я ніяк не зрозумію, що блогери знайшли в тому вордпресі? Мені з головою вистачає джумли, в якій я щодня відкриваю щось нове :)

    Відповіcти
    • lilumi says

      19 Січня 2011 at 16:58

      ну так можна і про любу cms’ку сказати – думаєш в вордпресі немає що відкривати щодня щось нового?

      Відповіcти
  6. Djalin says

    9 Липня 2011 at 12:54

    Привіт у мене питання, а є універсальний код який виміює споживання памяті та швидкість генерації сторінок – у мене не вордпрес але теж хочеться таку річ :)

    Відповіcти
  7. lilumi says

    9 Липня 2011 at 13:24

    споживання пам’яті можна дізнатись зі стандартної функції php: memory_get_usage
    А час вичисляти за допомогою функції microtime – в гуглі багато рішень по запиту “время генерации страницы”

    Відповіcти
  8. Андрій says

    7 Жовтня 2011 at 14:31

    Цікава стяття. Треба буде спробувати.

    Відповіcти
  9. Тусько says

    18 Грудня 2012 at 13:55

    дякую. зробив й собі “брендову” адмінку
    http://resto-bonjour.com/wp-admin
    http://ivacake.com/wp-admin

    Відповіcти

Залишити відповідь Скасувати відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Lilumi - Wordpress PHP Full Stack Developer