Intereting Posts

Список таксономий с эскизами

Я добавил дополнительное поле в таксономию под названием «альбомы» с помощью этой функции:

add_action( 'albums_edit_form_fields', 'albums_taxonomy_edit_meta_field', 10, 2 ); function save_taxonomy_custom_meta( $term_id ) { if ( isset( $_POST['term_meta'] ) ) { $t_id = $term_id; $term_meta = get_option( "taxonomy_$t_id" ); $cat_keys = array_keys( $_POST['term_meta'] ); foreach ( $cat_keys as $key ) { if ( isset ( $_POST['term_meta'][$key] ) ) { $term_meta[$key] = $_POST['term_meta'][$key]; } } // Save the option array. update_option( "taxonomy_$t_id", $term_meta ); } } 

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

Как вернуть данные

Когда вы смотрите на свой код, вы получаете get_option( "taxonomy_{$t_id}" ) , который фактически вызывает значение из таблицы опций DB. Таким образом, вы должны просто заменить $t_id своим фактическим термином id.

Термин идентификатор можно получить через

  • get_query_var( 'tag_id' ) для тегов на страницах архива тегов
  • get_query_var( 'cat' ) для категорий на страницах архива cat
  • get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) )->term_id для пользовательской таксономии и страниц формата post.

Почему это НЕ рекомендуется делать!

Вы сохраняете одну дополнительную запись в таблице опций базы данных по тегу / термину / категории / таксону .

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