WP - get_template_part на основе соответствующих терминов таксономии

Я пытаюсь отобразить некоторые фрагменты (загруженные с помощью get_template_part()) на основе пользовательских терминов таксономии, назначенных посту.

До сих пор я могу получить термины таксономии, назначенные на должность с

$term_list = wp_get_post_terms($post->ID, 'sidebar_snippets', array("fields" => "all"));
print_r($term_list);

Который производит массив таких объектов:

(
    [0] => WP_Term Object
        (
            [term_id] => 11
            [name] => Future Events
            [slug] => future_events
            [term_group] => 0
            [term_taxonomy_id] => 11
            [taxonomy] => sidebar_snippets
            [description] => 
            [parent] => 0
            [count] => 2
            [filter] => raw
        )

)

Я думал об итерации по массиву назначенных терминов и загрузке соответствующих фрагментов. Имена фрагментов идентичны термину таксономии.

$term_list = wp_get_post_terms($post->ID, 'sidebar_modules', array("fields" => "all"));
print_r($term_list);  // works fine - outputs three terms (like above)

foreach($term_list as $term) {
  echo $term['slug']; // does not out put anything.
  get_template_part( 'modules/' . $term['slug]  . '.php' );
}

У меня две проблемы. Тот, который даже не выводит $ term [slug]. Во-вторых, как бы я добавить некоторые проверки, например. проверить, существует ли файл в первую очередь, прежде чем пытаться получить get_template_part?

Спасибо

1 ответ

Решение

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

foreach($term_list as $key => $term) {
  $term_slug =  $term->slug; // does not out put anything.
  get_template_part( 'modules/'.$term_slug.'.php' );
}

Для получения дополнительной помощи см. Эту ссылку: Нажмите здесь, спасибо

Другие вопросы по тегам