Оформление WordPress

При создании темы для сайта WordPress, нужны некоторые дополнительные функции. На странице, немало полезных функции для оформления WordPress.

Оглавление:
  1. Отменить авто-сохранение
  2. Удалить ревизии
  3. Правильно выбрать постоянные
  4. Блокировка IP адреса
  5. Закрываем доступ для спам-ботов
  6. Миниатюры в rss
  7. Кнопка Facebook для виджета
  8. Изменить: Читать далее
  9. Удалить: #more из URL
  10. Фильтры для текстового редактора
  11. Очистка от лишних тегов в header
  12. Стиль для первого параграфа
  13. Добавить к профилю соц-сети
  14. Удалить атрибуты изображения, ширину и высоту
  15. Скрыть сообщение об обновлениях от пользователей
  16. Удалить url из комментариев wordpress
  17. Поиск и замена в базе данных
  18. Отмена авто параграфа для нужной страницы

Отменить авто-сохранение

function disable_autosave()
    { wp_deregister_script('autosave'); }
    add_action('wp_print_scripts', 'disable_autosave');

Удалить ревизии

Зайти в phpmyadmin выбрать базу данных выполнить SQL команду:

DELETE FROM `wp_posts` WHERE post_type='revision'

И все ревизии исчезнут.

Правильно выбрать постоянные

URL не должен начинаться с /%category%/, /%tag%/, /%author%/ и /%postname%/. Можно выбрать, например, /blog/%category%/%postname%/ или /%year%/%postname%/ — этого достаточно, чтобы WordPress мог отличить адрес записи от адреса страницы, и в этом случае он не будет создавать расширенный набор правил.

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

Блокировка IP адреса

Добавить в .htaccess:

<Limit GET POST>
order allow,deny
deny from xxx.xxx.xxx.xxx
allow from all
</Limit>

Закрываем доступ для спам-ботов

Добавить в .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*yourdomain.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) http://%{REMOTE_ADDR}/$ [R=301,L]
</IfModule>

Миниатюры в rss

function uawp_rss_post_thumbnail($content) { /** Миниатюры в rss*/
global $post;
if ( has_post_thumbnail( $post->ID ) ){
$content = '' . get_the_post_thumbnail( $post->ID, 'full', array( 'style' => 'float: left; margin: .7em;' ) ) . '' . $content;
}
return $content;
}
add_filter('the_excerpt_rss', 'uawp_rss_post_thumbnail');
add_filter('the_content_feed', 'uawp_rss_post_thumbnail');

Кнопка Facebook для виджета

<div id="fb-root"></div>
<script src="http://connect.facebook.net/ru_RU/all.js#xfbml=1"></script>
<fb:like href="<?php echo get_permalink(); ?>" data-send="false" data-layout="button_count" data-width="50" data-show-faces="true" data-action="recommend" data-font="verdana"></fb:like>

Изменить: Читать далее

function new_excerpt_more($text) {
return ' [...]';
}
add_filter('excerpt_more', 'new_excerpt_more');

Удалить: #more из URL

function remove_more_link_scroll( $link ) {/** отмена #more в URL */
	$link = preg_replace( '|#more-[0-9]+|', '', $link );
	return $link;
}
add_filter( 'the_content_more_link', 'remove_more_link_scroll' );

Фильтры для текстового редактора

remove_filter('the_content', 'wptexturize');
remove_filter('the_excerpt', 'wptexturize');
remove_filter('comment_text', 'wptexturize');
remove_filter('the_content', 'wpautop');

Очистка от лишних тегов в header

function clean_wp_header() {
        remove_action('wp_head', 'wp_generator');
        remove_action('wp_head', 'rel_canonical');
        remove_action('wp_head', 'rsd_link');
        remove_action('wp_head', 'feed_links',2);
        remove_action('wp_head', 'feed_links_extra',3);
        remove_action('wp_head', 'wlwmanifest_link');
        remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
        remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
} 

add_action('init', 'clean_wp_header');

Стиль для первого параграфа

function first_paragraph($content){
  global $post;
  if ($post->post_type == "post") {
  return preg_replace('/<p([^>]+)?>/', '<p$1 class="first">', $content, 1); }
  else { return $content; }
} 

add_filter('the_content', 'first_paragraph');

Добавить к профилю соц-сети

function cusom_social_contact_links($contacts) {
 // Adding
 $contacts['facebook'] = 'Facebook';
 $contacts['youtube'] = 'YouTube';
 $contacts['dribbble'] = 'Dribbble';
 // Removing unset
 ($contacts['yim']); unset
 ($contacts['aim']); unset
 ($contacts['jabber']);
  return $contacts; } 

 add_filter('user_contactmethods','cusom_social_contact_links', 10, 1);

Удалить атрибуты изображения, ширину и высоту

function remove_image_size_atts($html) {
     $html = preg_replace('/(width|height)=\"\d*\"\s/', "", $html);
     return $html; } 

     add_filter('post_thumbnail_html', 'remove_image_size_atts', 10);
     add_filter('image_send_to_editor', 'remove_image_size_atts', 10);

Скрыть сообщение об обновлениях от пользователей

global $user_login; get_currentuserinfo();
      if(!current_user_can('update_plugins')) {
      add_action('init', create_function('$a',
      "remove_action('init', 'wp_version_check');" ), 2); 

      add_filter('pre_option_update_core', create_function('$a', "return null;"));

Удалить url из комментариев wordpress

function remove_url_from_comments($fields) { // удалил url в комментах
    unset($fields['url']);
    return $fields;
}
add_filter('comment_form_default_fields', 'remove_url_from_comments');

Поиск и замена в базе данных

UPDATE wp_posts SET `post_content`
= REPLACE (`post_content`,
'Найти текст',
'Заменить этим');

Отмена авто параграфа для нужной страницы

function no_wpautop_single($content) { /** отмена для редактора */
    global $post;
    if (is_single( array(5136,3820))){
        remove_filter( 'the_content', 'wpautop' );
        return $content;
    } else {
        return $content;
    }
}
add_filter('the_content', 'no_wpautop_single', 9);
htmlhook.ru | Скрипты для веб-приложений