Главная Движки WordPress


Правильная настройка Wordpress - полезные доработки.

Печать E-mail
Автор Administrator   
22.01.2011 г.

Рейтинг 4.0/5 (4 голосов)

Правильная настройка 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&c=$id").'">del</a> ';
    echo '| <a href="'.admin_url("comment.php?action=cdc&dt=spam&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"

 

 

 

Похожие темы

 

Добавить комментарий

Вы можете добавлять комментарии, относящиеся к данной теме. Регистрироваться при этом необязательно.


Защитный код
Обновить


Rambler's Top100