2017-01-25 7 views
0

Работа в WordPress PHP Я пытаюсь передать значение в класс тега элементаИмея вопрос о Переходя переменной в HTML класса Tag В WordPress

<div class="element-item"></div> 

быть как

<div class="element-item comedy"></div>

$term = get_the_term_list(get_the_ID(), 'type'); 
echo '<div class="element-item '.$term.'">'; 

значение ходит из тега класса и отображается на странице!

enter image description here

Я проверил исходный код, и кажется, что я передаю всю ссылку на класс тега!

<div class="element-item " .<a="" href="http://www.domain.ca/type/meat/" rel="tag" style="position: absolute; left: 0px; top: 0px;">Canadian</div> 

не могли бы вы сообщить мне, почему это происходит и как я могу это исправить?

+0

Вы прочитали описание 'get_the_term_list'? –

+0

Я знаю, что это возвращает ссылку, но как я могу получить только слизню? не ссылка? – Behseini

+0

Использовать другую функцию? –

ответ

0

Попробуйте этот способ, может быть, это поможет вам

$html_output = '<div class="element-item ' . $term . '">'; 
echo $html_output; 
+0

Спасибо Nahid, но ценность по-прежнему в формате ссылок и публикации из div! – Behseini

0

попробовать, как это

echo "<div class="element-item $term>"; 

или
вы можете сделать это с помощью JavaScript, как этот

$(function(){ 
    $('.element-item').addClass('<?php echo $term ?>'); 
    }); 

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

0

Вы правильно определили проблему с точки зрения возвращаемого значения.

вопрос здесь:

$term = get_the_term_list(get_the_ID(), 'type'); 

get_the_term_list() возвращает HTML-строку, как описано в документации для функции: https://codex.wordpress.org/Function_Reference/get_the_term_list

я предлагаю следующий подход:

// We're going to place all of our classes into this array. 
$classes = array('element-item'); 

// Get terms assigned to post. 
$terms = get_the_terms(get_the_ID(), 'type'); 

// Check terms were found. 
if ($terms && ! is_wp_error($terms)) { 

    // Loop through each found term and add it to the array of classes. 
    foreach ($terms as $term) { 
     $classes[] = $term->slug; 
    } 
} 

// Convert the array of classes into a string separated by spaces. 
// Escape the value before outputting inside the attribute tag. 
printf('<div class="%s">', esc_attr(implode(' ', $classes))); 

Дополнительная информация: https://codex.wordpress.org/Function_Reference/get_the_terms

 Смежные вопросы

  • Нет связанных вопросов^_^