пʼятниця, 26 липня 2013 р.

Корисні функції WordPress

Функції в цьому списку - не є новими, використовують у багатьох преміум-шаблонах, з'являються в інших подібних вибірках.
Я переслідував одну мету - зібрати докупи те, що я використовую в себе чи на клієнтських проектах, щоб не шукати по усій Мережі в потрібний момент.


Перенаправлення на результат пошуку
Часто трапляється так, що стандартний пошук WP видає у результатах лише один запис. У мене це відбувається при пошуку по імені шаблону, наприклад. Логічним буде перенаправляти відвідувача відразу ж до цього запису, не виводячи список результатів пошуку.

add_action('template_redirect', 'redirect_search');
function redirect_search() {
if (is_search()) {
global $wp_query;
if ($wp_query->post_count == 1) {
wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
}
}
}

Видаляємо стандартні розміри завантажуваних зображень

Якщо ви не використовуєте розміри, котрі WP мені пропонує за замовчуванням. Можна сміло їх видалити ...

function remove_default_image_size( $size) {
unset( $size['thumbnail']);
unset( $size['medium']);
unset( $size['large']);
return $size;
}
add_filter('intermediate_image_sizes_advanced','remove_default_image_size');

Цей код залишає тільки повний розмір зображень, тобто той, який ви завантажуєте. Проте, не завжди один розмір - це добре.

Додаємо свої розміри зображень
Загалом, цей код потрібний для додавання додаткових розмірів, якщо стандартних не вистачає. Зазвичай достатньо встановити необхідний розмір в налаштуваннях медіафайлів

if (function_exists ('add_image_size')) {
add_image_size ('імя1', 200, 9999); / / 200 - ширина, висота не обмежена
add_image_size ('імя2', 220, 180, true); / / (обрізування під розмір, true)
}

Міняємо текст "Введіть заголовок"
Як ви знаєте, WordPress підтримує користувальницькі типи записів, це можуть бути відгуки клієнтів, продукти та багато іншого. Можна замінити стандартний заголовок при введенні нового запису, адаптувати його під тип запису.

function default_product_title( $title ){
$screen = get_current_screen();
if ( $screen->post_type == 'product' ) {
  return 'Уведіть назву продукту';
}
}
add_filter( 'enter_title_here', 'default_product_title' );

Цей код змінює заголовок для гіпотетичного типу запису "Продукти". Для заміни цього тексту в стандартних записах нам знадобиться ось така функція:

function title_custom( $title ){
  return $title = 'Щось цікаве';
}
add_filter( 'enter_title_here', 'title_custom');


Міняємо стандартний Email відправки
WordPress іноді надсилає мені листи з різними оповіщеннями, при цьому в якості відправника там вказано я сам. Це не зовсім "красиво" і викликає складності (несуттєві, але все ж) при автоматичному сортуванні пошти. Дану ситуацію легко виправити:

add_filter ('wp_mail_from', 'new_mail_from');
add_filter ('wp_mail_from_name', 'new_mail_from_name');

function new_mail_from ($ old) {
return 'vasya@site.ru';/ / вказуємо потрібну адресу
}
function new_mail_from_name ($ old) {
return 'Vasya blog'; / / вказуємо потрібне ім'я
}


Змінюємо текст у футері адмін-панелі
Ви напевно бачили напис "Спасибі вам за творчість з WordPress" в футері адмін-панелі. Мені вона порядком набридла, хоча й не впадає в очі. Змінювати її чи ні - справа ваша, я замінив ось так:

function remove_footer_admin () {
echo "GB: Make web better";/ / ваш текст
}
add_filter ('admin_footer_text', 'remove_footer_admin');

Стандартне стиснення JPEG
Я готую зображення для кожного запису блогу самостійно, мені не потрібна допомога движка в цьому. Однак, WordPress намагається мені допомогти і додатково стискає зображення, так само він чинить при генерації мініатюр (дивимося трохи вище, про створення і видалення розмірів зображень). Можна попросити його не робити це, використовуючи такий код:
add_filter('jpeg_quality',function($arg){return 100;});
Замість цифри - підставляйте необхідне вам значення, я залишив 100.

Віддаємо мініатюру в RSS
Це взагалі "бородата" функція, проте в самописному шаблоні обов'язкова, тож додав її до цього списку. Гадаю, не потрібно пояснювати, навіщо вона потрібна?
function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '<p>' . get_the_post_thumbnail($post->ID) .
'</p>' . get_the_content();
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');


Даємо блогу більше повітря
Ця функція WordPress не зовсім функція, точніше, зовсім навіть не функція. Однак, вона може бути корисна при деяких обставинах. Мені ось недавно на VPS збільшили розмір оперативної пам'яті, а чому б не побалувати блог, адже пам'ять зайвою не буває. Тим паче, WordPress достатньо вибагливий до оперативки. Відмінно, додамо ось такий код у файлик wp-config, що лежить у корені сайту:
define('WP_MEMORY_LIMIT', '128M');
За замовчуванням, WP використовує 32М оперативної пам'яті, та коли є ще - чому б не дати йому дихнути вільніше? Однак враховуйте ще й такий факт - це значення не працюватиме, якщо в php.ini (налаштування PHP у хостера) стоїть значення менше, ніж ви вказали. Буде використано саме воно. Так що код актуальний більше для хостингів рівня VPS і вище.


Ось і все на сьогодні. Сподіваюся, було пізнавально ...
  Вдалого дня:)))

Немає коментарів:

Дописати коментар