Kama Breadcrumbs 4.0
Поставил Kama Breadcrumbs 4.0
Так вот вопрос, как мне вместо title записи в конце хлебных крох вывести свое произвольное поле с именем(soft_name)?
Не пойму, что удалить и заменить в коде на
get_post_meta($post->ID, 'soft_name', true)
Заранее спасибо за ответ.
В бесплатной версии похожая задача была, решил так:
после 357 строчки:
function _add_title( $add_to, $obj, $term_title = '' ){
$arg = & $this->arg; // упростим...
$title = $term_title ? $term_title : esc_html($obj->post_title); // $term_title чиститься отдельно, теги могут быть...
$show_title = $term_title ? $arg->show_term_title : $arg->show_post_title;
// прописал следующее
$my_title_field = get_field('my_title_field');
$title = ($title != $my_title_field && !empty($my_title_field)) ? $my_title_field : $title;
// пагинация
После чего, везде где я указываю в шаблонах это поле my_title_field - и если оно заполнено на странице, то в крошках выводится значение поля, а если не заполнено, то значение берется из заголовка текущей страницы.
Повторюсь, дописал эти строчки:
$my_title_field = get_field('my_title_field');
$title = ($title != $my_title_field && !empty($my_title_field)) ? $my_title_field : $title;
Но сейчас есть проблема, - если я нахожусь на странице скажем третьего уровня на ней отображается все как надо, но на странице второго уровня именно в крошках значение произвольного поля которое было указано на странице второго уровня - не выводится, а показывается по умолчанию взятое из заголовка страницы.
Сейчас так:
главная > продукция в городе Н > портреты
а должно быть так:
главная > продукция > портреты
здесь: продукция и портреты - это значения произвольных полей, прописанные в страницах.
Не надо ничего в коде удалять! И вообще код лучше не трогай. Я плагин обновлять буду, код будет улучшаться, обновляться! Там все через хуки делается! Элементы крошек меняются через хук kama_breadcrumbs_filter_elements.
Например, добавим в конец крошек ссылку на текущую запись с текстом который находится в метаполе записи 'soft_name':
// добавить свои ссылки в крошки add_filter( 'kama_breadcrumbs_filter_elements', 'breadcrumbs_add_my_title', 10, 3 ); function breadcrumbs_add_my_title( $elms, $class, $ptype ){ global $post; // дебаг - смотрим какие элементы есть в массиве и добавляем куда и что нужно // print_r( $elms ); // если это отдельная страница if( is_single() ){ // заменим последний элемент крошек - заголовок записи, // он находится в элементе массива ['single']['title'] $elms['single']['title'] = $class->makelink( get_permalink($post), get_post_meta($post->ID, 'soft_name', true) ); // или можно просто добавить в конец крошек для отдельной записи свой элемент, так $elms['single'][] = $class->makelink( get_permalink($post), get_post_meta($post->ID, 'soft_name', true) ); } // или можно вообще всегда в конец добавлять что-то, так $elms[] = $class->makelink( '/category/super', 'супер категория в конце' ); return $elms; }Вставь этот код и посмотри что получается, там покрути, выведи на экран что находится в $elms посмотри структуру и добавляй куда и что нужно. Там все очень просто. Также в оригинальной статье есть еще примеры...
Благодарю, действительно, я не подумал, что если обновление выйдет плагина, то все изменение пропадут, если в нем что то поменять.