2016-06-21 13 views
1

Я создаю веб-сайт, где я хочу показать тег, выбранный из пользовательских полей (в основном с помощью переключателя). Я установил cmb2 как показано ниже кодов.Таксономия_radio ничего не показывает в front-end в cmb2

add_action('cmb2_admin_init', 'custom_metaboxes'); 
function custom_metaboxes() { 
$metabox = new_cmb2_box(array(
    'object_types' => array('post'), //for the post 
    'title'  => 'Additional Fields', 
    'id'   => 'additional' 
    ) 
); 
// showing in the admin panel 
$metabox -> add_field(array(
    'name' => 'Taxonomy List', 
    'desc' => 'This get the list of taxonomy', 
    'id' => 'taxonomy_list', 
    'type' => 'taxonomy_radio', 
    'taxonomy' => 'post_tag', 
    'default' => 'ami' 
) 
); 
} 

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

echo get_post_meta(get_the_id(), 'taxonomy_list', true)// returns nothing 

ничего не эхо. Затем попытался var_dump функция возвращает string(0) "". Какие проблемы работают за сценой.

Кто-нибудь, пожалуйста, узнайте, в чем проблема.

+0

Вы уверены в пост мета таблицы, ключ ' taxonomy_list'? если да, выполните поиск в Базе данных, если для данного почтового идентификатора существует post meta value. – Milap

+0

Я не получил мета-ключ 'taxonomy_list' в метатеге сообщения для данного сообщения id. Теперь, что я могу сделать в этот момент, чтобы решить это? –

+0

Это означает, что 'taxonomy_list' не вставлен в базу данных, проверьте код, где он вставлен. – Milap

ответ

1

Проблема может быть решена с использованием версии cmb2-2.0.2. А вот код:

<?php 
 

 
add_action('cmb2_init', 'yourprefix_register_demo_metabox'); 
 

 
function yourprefix_register_demo_metabox() { 
 

 
\t $prefix = '_yourprefix_demo_'; 
 

 
\t $cmb_demo = new_cmb2_box(array(
 
\t \t 'id'   => $prefix . 'additional', 
 
\t \t 'title'   => 'Additional Fields', 
 
\t \t 'object_types' => array('page') 
 
\t)); 
 

 
\t $cmb_demo->add_field(array(
 
\t \t 'name'  => 'Taxonomy List', 
 
\t \t 'desc'  => 'This get the list of taxonomy', 
 
\t \t 'id'   => $prefix . 'taxonomy_list', 
 
\t \t 'type'  => 'taxonomy_radio', 
 
\t \t 'taxonomy'  => 'post_tag' 
 
\t)); 
 
} 
 

 
?>

И в веб-интерфейсе нужно написать:

<?php 
 

 
$prefix = '_yourprefix_demo_'; 
 
echo get_tag(get_post_meta(get_the_ID(), $prefix.'taxonomy_list', true)[0])->name; 
 
?>