У цій статті пропоную вам дізнатися про те, як легко перейти до розширеного налаштування шаблонів виведення контенту з підтримкою кількох колонок у верстці і при цьому заощадити ресурси, час і зробити все за допомогою звичайного WYSIWIG-редактора. Ця інструкція підійде не тільки для новачків, але й для просунутих користувачів, які хочуть стандартизувати та поставити на потік роботу з контент-проектами.
Створюємо свій формат відображення контенту на сторінці
Все, що нам знадобиться зробити на даному етапі, це додати кілька HTML-елементів у вікно редактора і оформити їх стилями. Фільтр WordPress default_content, встановлений за замовчуванням, дозволяє нам додати блок певного контенту в будь-який пост відразу після його створення, щоб нашому замовнику не довелося робити це самостійно під час налаштування теми оформлення. Цей фільтр чудово підходить для додавання готового тексту до постів.
Робота "під капотом"
Додамо код, який ви бачите нижче, у файл functions.php, після чого кожен новий пост, який ми створюватимемо в блозі або на сайті, буде йти з встановленими тегами DIV, класами content-col-main и content-col-side. Зауважу, що коректність роботи цього коду перевірена лише для версій WordPress 3.0 та старших:
<?php add_filter( 'default_content', 'custom_editor_content' ); function custom_editor_content( $content ) { $content = ' <div class="content-col-main"> This is your main page content </div> <div class="content-col-side"> This is your sidebar content </div> '; return $content; } ?>
Декілька важливих приміток:
- Фільтр за замовчуванням default_content буде застосовуватись після його створення тільки до нових постів; всі пости та сторінки, створені до того, як ви внесли редагування в код, не будуть оснащені цим фільтром.
- Пробіли між рядками та додаткова вставка не критичні, але їх варто застосовувати, щоб уникнути невеликих збоїв під час роботи в редакторі TinyMCE.
Тепер оформимо все у новому стилі. Додамо наступний код у файл functions.php:
<?php add_editor_style( 'editor-style.css' ); ?>
Функція add_editor_style() здійснюватиме пошук за заданим типом оформлення сторінки та застосовуватиме вказаний стиль CSS до контенту, який відображається у вікні редактора TinyMCE. Якщо ви не вказуєте конкретне ім'я таблиці стилів, за промовчанням цей пошук буде виконуватися в межах файлу editor-style.css. Але для цієї статті стиль як приклад прописали окремо. Створюємо для цього файл editor-style.css, поміщаємо його до папки з темою оформлення, вказуємо наступні стилі:
body { background: #f5f5f5; } .content-col-main { float:left; width:66%; padding:1%; border: 1px dotted #ccc; background: #fff; } .content-col-side { float:right; width:29%; padding:1%; border: 1px dotted #ccc; background: #fff; } img { /* Makes sure your images stay within their columns */ max-width: 100%; width: auto; height: auto; }
Тепер при створенні нового посту ви побачите 2 колонки, в яких можна набирати/вставляти текст або інший контент:
І ось у нас тепер є базовий шаблон із кількома колонками, який одразу відображається в редакторі постів. Ви можете повернутися до попереднього етапу та відредагувати default_content та файл editor-styles.css, щоб отримати стиль оформлення, який вам потрібен:
Робота із зовнішнім оформленням
Коли ваші пости відображаються на сайті, контент при цьому все ще буде.в одну колонку". Стилі, прописані вами у файлі editor-style.css, для "фронт-енду" не підходять. Якщо ви перегляньте вихідний код сторінки сайту, то побачите, що теги DIV з функції custom_editor_content() відображатися, тільки в них як би загорнуті різні блоки контенту. Тому просто відкрийте файл style.css (або інший файл таблиці стилів сайту для вашої теми) та оформіть все як вам хочеться:
Як отримати ще більше від шаблонів
Крім простого налаштування стилів, є ще кілька можливостей для розширеного оформлення вашого контенту на сайті: для цього треба використовувати створення об'єктів та звернення до них за допомогою JavaScript.
Шаблони на основі шаблонів
Наведений вище код додає єдиний шаблон виведення та оформлення контенту для всіх постів, сторінок та розділів... для всього, де задіяний редактор контенту TinyMCE. Така ситуація далека від ідеалу. Додавши кілька параметрів до функції custom_editor_content(), ви зможете задати різні типи шаблонів виводу для різних типів записів:
<?php add_filter( 'default_content', 'custom_editor_content' ); function custom_editor_content( $content ) { global $current_screen; if ( $current_screen->post_type == 'page') { $content = ' // TEMPLATE FOR YOUR PAGES '; } elseif ( $current_screen->post_type == 'POSTTYPE') { $content = ' // TEMPLATE FOR YOUR CUSTOM POST TYPE '; } else { $content = ' // TEMPLATE FOR EVERYTHING ELSE '; } return $content; } ?>
Всі елементи оформлення контенту можна за замовчуванням задати за допомогою файлу editor-style.css, але якщо вам потрібно застосувати окрему таблицю сил для кожного окремого типу публікацій на сайті, ви можете зробити це за допомогою сніпету від WPStorm:
<?php function custom_editor_style() { global $current_screen; switch ($current_screen->post_type) { case 'post': add_editor_style('editor-style-post.css'); break; case 'page': add_editor_style('editor-style-page.css'); break; case '[POSTTYPE]': add_editor_style('editor-style-[POSTTYPE].css'); break; } } add_action( 'admin_head', 'custom_editor_style' ); ?>
Додайте цей код у файл functions.php та створіть файли виду editor-style-[POSTTYPE].css для кожного окремого типу записів, щоб окрема таблиця стилів відповідала окремому типу записів. Просто замініть [POSTTYPE] назвою вашого типу публікацій. Наведений вище код можна розширити за рахунок додавання нових параметрів та варіантів для кожного додаткового типу постів.
Як альтернативний варіант, ви можете використовувати наступний код для автоматичного пошуку таблиці стилів виду editor-style-ім'я посту, який зараз редагується. Тут, знову ж таки, просто переконайтеся, що суфікс нової таблиці стилів збігається точно з потрібним вам типом посту:
<?php function custom_editor_style() { global $current_screen; add_editor_style( array( 'editor-style.css', 'editor-style-'.$current_screen->post_type.'.css' ) ); } add_action( 'admin_head', 'custom_editor_style' ); ?>
У цьому сніпет файл editor-style.css також буде включено на всіх редагованих сторінках, на додаток до таблиці стилів з ім'ям editor-style-[POSTTYPE].css, Вказаною для конкретного посту.
Висновок
Хоча розглянутий нами метод має свої недоліки, — зокрема, редагувати нову структуру оформлення може бути непростим завданням для вашого замовника, — він дозволяє створювати на базі проекту цікаву "пісочницю" для експериментів з можливостями оформлення контенту та його стандартизації.
Коментарі до запису: 13
Вітаю! Моє питання, звичайно, не в тему. Проте, думаю відповідь на нього буде цікавою для багатьох блогерів-початківців. Яким має бути оптимальне наповнення файлу robots.txt для WordPress
Знайшов такий варіант. Наскільки він прийнятний?
User-Agent: *
Заборонити: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: /trackback
Disallow: /feed
Disallow: /comments
Disallow: /category/*/*
Disallow: */trackback
Disallow: */feed
Disallow: */comments
Disallow: /*?*
Заборонити: /*?
Allow: /wp-content/uploads
# Google Image
Агент користувача: Googlebot-Image
Disallow:
Allow: /*
# Google AdSense
User-agent: Mediapartners-Google*
Disallow:
Allow: /*
# Інтернет-архіватор Wayback Machine
Агент користувача: ia_archiver
Заборонити: /
# digg дзеркало
Агент користувача: duggmirror
Заборонити: /
Sitemap: http://http://test.ua//sitemap.xml
Так, таке наповнення для robots.txt цілком підходить. Тільки чому ви винесли
Disallow: /comments
Disallow: /category/*/*
з індексації?
Ви надто хорошої думки про мої знання в цій галузі. Я просто знайшов у мережі цей файл. Чи потрібно прибрати ці рядки? Я також не знаю, що означає ось ці рядки
Disallow: /*?*
Заборонити: /*?
Просто приберіть ці 2 рядки з файлу robots.txt, щоб ваші Рубрики та Коментарі могли індексуватися.
Я не зрозумів. Що означає "[POSTTYPE] назвою вашого типу публікацій". POSTTYPE- Це адреса сторінки або ID номер сторінки?
Це просто довільне позначення нового типу публікації у коді. Вкажіть будь-яке слово на латиниці.
Підкажіть будь ласка. встановила тему англійську, міняю заголовок сайту російською мовою, відразу змінюється шрифт стандартним, як зробити щоб шрифт залишився той же? Дякую!
У темі використовується вбудований Cufon-шрифт, який підтримує лише латиницю. Або залишати заголовок на англ або використовувати свої шрифти, які підтримують кирилицю.
а як використовувати свої шрифти? про це є десь тема?
Наприклад, є урок на цю тему https://hostenko.com/wpcafe/tutorials/kak-pravilno-dobavit-shriftyi-google-web-fonts-v-wordpress-temu/
Добрий вечір! Встановила тему Twenty Eleven 1.5, мене не влаштовує шапка занадто велика, можна як-небудь її зменшити звузити. Заздалегідь спасибі!
style.css - там прописані всі стилі оформлення
Дякую за статтю, зараз розбиратимусь)