! Запросто с WordPress - доступная ручная работа по правилам оптимального интернета
...здесь Ваша реклама.?.
Здравствуйте !
написано: — 
отредактировано: 2018-09-13
издатель:  в теме: HTML-CSS-PHP всякое полезное реплики: будьте первым в диалоге
 
Запросто с WordPress - студия ATs media fashion Reception WordPress golden

Полезная подборка кода, если Вы используете на сайте произвольные типы записей

Сегодня попристальнее рассмотрим вопрос о произвольных типах записей и их же произвольные таксономии. Многие начинающие владельцы сайтов, как понимаю, решаются на этакое предприятие по облагораживанию (углублению, расширению… как угодно) функционала сайта! однако, что весьма напрасно, мало изучив вопрос… а потом, как следствие, сталкиваются с теми или иными проблемами: итог — разочарование!

Использовать ли произвольные типы записей на сайте/блоге это дело личное, хотя и требующее ясного представления от того что в конечном итоге хочется! Но как, скажите, проектировать площадку, ежели сам принцип функционального использования типов записей едва ли понятен.

Меня недавно некий АдмиН попросил откатить его сайт до прежнего состояния: т.е до того, как подключил «тип записей» к блогу, потому что столкнулся с проблемой отображения на сайте анонсов записей, в сайдбаре, например.

Ну, давайте, мало-мало теории, а вместе с тем по тексту дам несколько полезных кодов, для кастомизации отображения записей произвольного типа:


как создаются произвольные типы записей и таксономии

 

 

 

 

 

О регистрациях нового произвольного типа записей, таксаномиях в сети есть множество теоретических и практических публикаций! так что повторяться вряд ли есть великий смысл…

 

Однако решил, возможно, кому-то пользы для, описать основные моменты, которые могут вызвать затруднения в реализации на сайте произвольного типа записей с соответствующими таксами.

 

 

Иногда приходят от читателей вопросы связанные с реализацией типов… спрашивают:

 

как вывести записи той или иной таксономии в сайдбаре? как настроить вывод записей из нескольких таксономий, причём с миниатюрами?.. и прочее и прочее…

 

 

Как бы это сказать, чтоб не обидеть — все подобные вопросы рождены, как правило, пользователями не достаточно изучившими вопрос о возможности реализации на сайте произвольных типов записей.

…не могут до конца понять и определиться что они конкретно хотят от добавочного типа… и дополнительных такономий? какой именно смысл расширения функционала сайта преследуют.

 

Чем, скажем, нас не устраивают стандартные «рубрики» или «метки»? ведь это тоже вполне — и кстати, оригинальные — полноценные таксономии с широчайшими возможностями.

 

 

 

Вообще, я всегда советую изучать интересующий вопрос в первоисточнике, в кодексaх WordPress. Так более доходчиво получится… хотя и требует кое-каких начальных знаний машинки WP, что в свою очередь и говорит о том — что если кодекс труден, вряд ли стоит приниматься к реализации того или иного функционального предприятия лично!

 

 

Мораль проста: не изучив доподлинно вопрос создания и использования ТИПОВ, вряд ли стоит приступать с обрывочными знаниями дела к реализации. На пути встретится множество непоняток!

 

 

 

Не так давно один человек (как он же выразился: по моему примеру) решил создать и у  себя произвольные типы. Так ему осточертело в ссылках имя «category»…

 

Потратил неделю, пока ни пришёл к выводу, что ему эти типы не к чему не приставить!

 

В итоге: попросил меня, и по возможности без потерь, «откатить» его сайт в первоистоковое состояние.

 

 

 

 

Должен доложить:

 

Коллега всего-то ошибочно принял у меня префиксы в ссылках на рубрики и метки за типы (хотя, типы записей у меня реализованы, однако, те пока что в «личном» состоянии).

 

Хотя, коли есть желание всего-то изменить префиксы рубрик, меток Как изменить префикс для рубрик, меток — использование 301 Redirect Из статьи узнаем, как изменить префикс для рубрик, меток — использование 301 Redirect: примеры то эта задача достаточно просто решается, и без каких бы то ни было глубоких знаний.

 

Вот так вот!

 

 

 

 

 

к оглавлению $

Custom Post Types

 

 

 

 

 

Вкратце:

 

Регистрируется новый тип записей в Вордпресс с помощью следующей функции:

 

register_post_type()WP 2.9

 

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

 

 

при регистрации типа, возможно указать соответствующую типу таксономию: используется параметр taxonomies.

 

 

 

Базовый пример создания типа (кстати, из кодекса ВП — ссылка выше: так что по созданию типов записей не распыляюсь):

 

 

 

add_action( 'init', 'create_post_type' );
function create_post_type() {
register_post_type( 'acme_product', // имя типа
array(
'labels' => array(
'name' => __( 'Products' ),        // имя для админки
'singular_name' => __( 'Product' ) // название единичного элемента таксономии
),
'public' => true,                  // (по умолчанию) true показ в админке - false НЕ показывать в админке
'has_archive' => true,             // подключение файлов архивов (ядро шаблона)
)
);
}

 

 

 

 

Принципиальное использование функции:

 

 

register_post_type( $post_type, $args );

 

 

$post_type — название типа записи. Это имя указывается, например, в php условиях и проч… (не путать со слагом в полной ссылке).

 

$args — массив, который включает в себя необходимую сводку параметров работы… К примеру, упомянутые выше параметры таксономии:

 

'taxonomies' => array( 'video' ), — или, скажем, банально category — это те таксономии, которые будут связаны с новым типом записи: некий регистр… и в какой-то мере важный параметр.

 

 

 

Подробнее можно прочесть, к примеру, в блоге wp_kama — автор подробно писал на эту тему, ссылку отыщете здесь

Это для тех, которым аглицкий язык сознанию напрочь вреден) — Ссылка же кодекса WP выше.

 

 


подписка feedburner Online консультация по работе c сайтом на WordPress

 

 

к оглавлению $

новая таксономия регистрируется так

 

 

 

 

Функция регистрации таксономии — register_taxonomy()

 

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

 

 

 

 

 

 

Предположим, мы создали наши типы записей: совершенно естественно возникает вопрос о том, как бы эти типичные записи более функционально и логично обыграть на страничках нашего сайта??

 

 

Как инструкция для решения подобных (задач) вопросов, призвана вторая часть сего недлинного повествования:

 

 

 

 

 

к оглавлению $

условия для отображения, не отображения, вывода записей условных типов, таксономии

 

 

 

 

 

is_singular( ' ' ) — условный тег «для» одиночной записи произвольного типа.

 

 

<?php if (!is_singular( 'имя_типа' )) { ?>

<?php /** здесь скрываемый код ! - имя_типа или $post_type если как-то будет обыграно кодом - поставим переменную или укажем просто именем */ ?>

<?php } ?>

 

 

 

 

is_post_type_archive( ' ' ) — условный тег архива типа записей.

 

 

…к примеру, таким кодом можно закрыть/открыть страницы архивов произвольных типов записей от роботов или ещё чего-то…

 

 

/** открываем к проходу архив ТИПА ЗАПИСИ  - но НЕ ИНДЕКСУ роботами **/
add_action('wp_head', 'mihalica_meta_type_robots');
function mihalica_meta_type_robots () {

if (is_post_type_archive( 'имя' )) { // имя video

echo "".'<meta name="robots" content="noindex,follow" />'."\n";
} }
/** открываем к проходу архив ТИПА ЗАПИСИ  - но НЕ ИНДЕКСУ роботами **/

 

 

 

пример:

 

<?php
if (is_post_type_archive( 'имя_типа' )) {  // возможен инвертер "!"
echo 'Эта страница типа записи';
} else {
echo 'НЕ  страница типа';
}
?>

 

 

 

 

к оглавлению $

мета — описание статьи

 

 

 

 

метаописание статьи

 

 

 

 

 

Если мы хотим добавить в мета — описание статьи вывод той категории (таксономии) к которой относится запись, нам помимо прочих «информационных» функций статьи нужно добавить такие:

 

 

single_term_title(); — выведет имя категории (таксы) — без ссылки в описании!

 

get_the_term_list( $post->ID, 'имя_таксы', '', ',', '' ); — выведет имя и ссылку категории (таксы) — в описании!

 

 

 

 

к оглавлению $

как добавить в поиск по сайту произвольные типы записей

 

 

 

 

Предположим, регистрация произвольных типов записей и их таксономий прошла успешно!

 

Мы отправляемся тестировать отработку функций: создаём тестовые записи с привязками новых такс и пр.

 

Казус: 1 — неожиданно для нас обнаруживается, что, если ввести в поиск по сайту какое-то имя записи нового типа (поста) то его невозможно отыскать: то есть поиск по сайту будет выдавать только записи «post» основные (по умолчанию WP).

 

Для того чтобы нормализовать работу, т.е заставить «Поиск по сайту» шерстить Базу Данных целиком! со всеми присутствующими в ней типами записок, достаточно добавить в файл функций такой код:

 

 

 

/** добавление произвольных типов в поиск по САЙТУ - ВАИАНТ-1 **/
add_action('pre_get_posts','add_search_atsmih_filter');
function add_search_atsmih_filter($query) {
if ( !is_admin() && $query->is_main_query()) {
if ($query->is_search) {
$query->set('post_type', array( 'post', 'имя_типа' ));  // ТИПЫ через запятую
} } }
/** добавление произвольных типов в поиск **/

 

 

или этот:

 

 

/** добавление произвольных типов в поиск по САЙТУ - ВАИАНТ-2 **/
add_filter('the_search_query', 'add_my_search_all');
function add_my_search_all($query) {
if ($query->is_search) {
$query->set('post_type', array('post', 'page', 'ИМЯ_ТИПА'  // через запятую

)); }
return $query;
}
/** добавление произвольных типов в поиск */

 

 

 

 

 

к оглавлению $

чтобы все посты авторов сайта отображались в одном его архиве: и произвольные типы записей, и обычные

 

 

 

 

Если на сайте пишет несколько авторов, то, перейдя по некой авторской ссылке, мы увидим архив только основного типа записей писателя.

 

Чтоб заставить Вордпресс выводить абсолютно все записи автора (вперемежку) и post и post_type — пропишем на постоянное место жительства такой пример кода:

 

 

 

/** ОТОБРАЖАТЬ ВЫБОРКУ ВСЕХ ПОСТОВ АВТОРОВ - и из обычных рубрик и кастомных */
add_filter( 'pre_get_posts', 'add_my_author_home_loop' );
function add_my_author_home_loop( $query ) {
if ( is_author() && $query->is_main_query() )
$query->set( 'post_type', array( 'post', 'ИМЯ_ТИПА') );  // через запятую
return $query;
}
/** ОТОБРАЖАТЬ ВЫБОРКУ ВСЕХ ПОСТОВ АВТОРОВ - и из обычных рубрик и кастомных */

 

 

 

 

к оглавлению $

чтобы произвольные типы записей отображались на главной странице

 

 

 

 

 

…если мы поиск по недрам сайта наладили, то возможно немного порадоваться! однако, через какое-то время заметим, что на главной странице никоим образом записи произвольных типов не хотят отображаться — это потому, как и толковалось выше — из-за того, что, у произвольных записей иной цикл!..

Это дело, возможно, кому-то захочется исправить: чтобы абсолютно все записи сайта (всех типов) «проходили» через главную страницу (если она статическая).

 

 

 

Следует помнить:

 

коли ПП отрабатывается в ином произвольном цикле WP — то, например, подписчики FeedBurner и пр. подобных рассылок оповещений о них не увидят!

 

Словом, это кому-то понравится, а кому-то нет!

 

 

 

 

Для тех, которые желают своими типами оповещать подписчиков: …всего-то нужно добавить такой чудо-код:

 

 

 

/** отображать на главной ВПЕРЕМЕШКУ последние записи ТИПОВ в этом - ТИПЫ попадают в FeedBurner и пр. (т.е в рассылку) feedburner */
add_filter( 'pre_get_posts', 'add_custom_my_home_loop' );
function add_custom_my_home_loop( $query ) {
if ( is_home() && $query->is_main_query() )
$query->set( 'post_type', array( 'post', 'ИМЯ_ТИПА') ); // через запятую укажем типы
return $query;
}
/** отображать на главной ВПЕРЕМЕШКУ последние записи ТИПОВ */

 

 

 

 

 

к оглавлению $

как добавить произвольные типы записей в RSS ленту

 

 

 

 

 

…если нужно только то, чтобы записи произвольных типов попадали в rss ленту (т.е чтобы подписчики видели у себя в закладках браузера обновления сайта), но при всём этом не хотите чтобы посты произвольных записей показывались на главной странице (а, следовательно!! подписчики на Feed /FeedBurner/ их не видели на своей почте), добавьте этот код к себе в активный файл функций…

 

 

 

 

произвольные типы записей

 

 

 

 

/** добавление произвольных типов в RSS ленту */
add_filter('request', 'add_my_feed_all');
function add_my_feed_all($vars) {
if (isset($vars['feed']) && !isset($vars['post_type']))
$vars['post_type'] = array('post', 'ИМЯ_ТИПА');  // через запятую
return $vars;
}
/** добавление произвольных типов в RSS ленту */

 

 

…или так:

 

 

/** ДОБАВИМ ТИПЫ запсей в RSS ленту-2 */
add_filter('pre_get_posts', 'add_my_post_types_to_feed');
function add_my_post_types_to_feed( $query ) {
// Выходим если это запрос не фидов
if( ! $query->is_feed || ! $query->is_main_query() )
return;

$query->set( 'post_type', array('post', 'ИМЯ_ТИПА') );
}
/** ДОБАВИМ ТИПЫ запсей в RSS ленту */

 

 

 

 

 

В этой инструкции рассказано о том, как настроить вывод отображения количества записей в любом конкретном архиве…

 

А вот из этой статьи узнаете как кастомизировать (оптимизировать в плане удобства работы с произвольными типами админку)

 

 

 

 

 


...А мне остаётся только раскланяться... и пожелать полезной работы в сети

 

 

 

 


Благодарности)) и вопросы в комментариях - помогу… в чём дюжу
А также Вы можете просто:
Нажатия на кнопочки определяют Ваше высокое гражданское сознание
Удачи в работе и творчестве..!
 ! самое читаемое:
   Как добавить свой новый (второй) сайт в Яндекс Директ   Как выбрать хостинг — пошаговые инструкции (обзоры 4 хостингов) — нюансы модного ssl сертифицирования   Как к статье добавить блок ссылок на похожие по теме записи сайта   Выведем последние комментарии в любом месте сайта — несколько вариантов   Ускоряем сайт: основные кэш и gzip правила .htaccess которые нужно знать   Создаём плагин — добавочный файл функций — my-functions.php   Шаблон RealMik 4.0.2 — создать сайт на wordpress с максимальной выгодой для начинающего блогера   Как добавить ссылки на самые комментируемые по времени посты в сайдбар или на страничку   Яндекс ИКС — новый индекс качества сайта, заместо ТИЦ   Уже в этом году WordPress потребует от пользователей протокол HTTPS   Включаем обслуживание gzip сжатия файлов на хостинге и в htaccess   Как исключить вывод (выборочно) поста с главной страницы сайта — регулировка в админке   Как самостоятельно установить в Notepad++ плагин Compare   Продвижение контентом или нужно настраивать сайт — валидный код шаблона..?
↔ перетаскивайте ленту ↔
ещё статьи по теме:

смотреть ещё статьи в теме HTML-CSS-PHP всякое полезное
меточная навигация:


Комментарии © 0 к статье: Полезная подборка кода, если Вы используете на сайте произвольные типы записей

Поделитесь соображениями: Ваши мысли очень важны! $ правила комментирования ©

Внимание! Обязательные поля помечены *

  отныне доступен плагин: privacy-policy ©

 необходимо принять правила конфиденциальности и пользовательского соглашения
Яндекс.Метрика
? Skype консультация Skype консультацияЕсли вы выбрали для своего сайта sms WordPress и только-только начинаете изучать панель управления контентом, то этот вариант оnline консультаций — практически по любым вопросам — для вас! Skype олайн