sitemap archive

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

в категорії wordpress фішки

теґи :

Вирішив зібрати колекцію хаків та фішок, які я останнім часом часто використовую при створенні сайтів на 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

Post to Twitter

14 коментарівrss-comments

[@] ]]>Андрей Сорвин]]> 27 листопадаа 2010 06:52

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

 
[@] ]]>Стас]]> 2 Грудня 2010 15:46

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

 
]]>Anri]]> 17 Грудня 2010 18:59

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

]]>lilumi]]> 18 Грудня 2010 17:55

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

 
 
[@] ]]>teodor]]> 6 Січня 2011 12:04

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

]]>lilumi]]> 10 Січня 2011 19:16

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

[@] ]]>teodor]]> 11 Січня 2011 18:58

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

]]>lilumi]]> 11 Січня 2011 19:12

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

(нижче коментарі будуть на тому ж рівні)
 
 
 
 
[@] ]]>Владислав]]> 19 Січня 2011 16:52

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

]]>lilumi]]> 19 Січня 2011 16:58

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

 
 
[@] ]]>Djalin]]> 9 Липня 2011 12:54

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

 
]]>lilumi]]> 9 Липня 2011 13:24

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

 
]]>Андрій]]> 7 Жовтня 2011 14:31

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

 
[@] ]]>Тусько]]> 18 Грудня 2012 13:55

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

 

Ваш коментар

LilumiМене звати LiluMi, а це мій блоґ. Тут про веб-розробку та лайфхаки. Рекомендую підписатись на RSS Інформацію про мене читайте на сторінці me LiluMi
UA TOP Bloggers
Рейтинг блогов Рейтинг блога lilumi.org.ua Рейтинг блогов



Тобі передають привіт 95 медвежаток. Це підняло тобі настрій на 2,755 а в Австралії живе колібрі у якої дзьобик довжиною на 41.17см.