Интеграция пользовательских полей Wordpress в тему

Хорошо, я работаю с плагином Advanced Custom Fields для создания настраиваемых полей для различных категорий. Я часами искал в Интернете решение, чтобы фактически интегрировать их в шаблон php, чтобы он появился. Я применяю его к странице под названием archive-product.php и извлекаю из настраиваемого поля на основе текущей категории.

Это код, который я использую для извлечения настраиваемого поля с именем slide_title_1.

<?php the_field("slide_title_1", $category_id); ?>

Нужно ли мне добавить код или переменную где-то еще, чтобы заставить это работать?

Любая помощь НАСТОЛЬКО ценится. Заранее спасибо,


person user3267517    schedule 19.02.2014    source источник
comment
Где определяется $category_id? Используете ли вы фактические категории сообщений, прикрепленные к пользовательскому типу сообщений под названием product, или пользовательскую таксономию, или какую-либо другую настройку? Этот код находится в цикле? Является ли archive-product.php типичным шаблоном архива или другим шаблоном пользовательской страницы? Опубликуйте более подробный контекст (например, разъяснение пользовательских типов сообщений/таксономий), а также дополнительный код, чтобы мы могли рассказать больше о том, как вы пытаетесь это сделать, иначе это будет очень сложно устранить.   -  person Ennui    schedule 20.02.2014
comment
Абсолютно, большое спасибо. Я не в курсе, потому что работаю с шаблоном Woocommerce archive-product.php. Я добавил настраиваемое поле в категорию продуктов. Сейчас я пытаюсь вызвать это настраиваемое поле slide_title_1. Однако я хочу, чтобы он был общим для каждой категории... если это имеет смысл. Я хочу, чтобы каждая страница категории извлекала настраиваемое поле этой конкретной категории slide_title_1.   -  person user3267517    schedule 20.02.2014


Ответы (1)


Я подозреваю, что это не работает, потому что вы не определили $category_id.

Сделайте следующее:

<?php
// Your code is in an archive template file so make sure a category is shown.
if ( is_product_category() ) {
    // Get the category ID.
    $category_id = get_query_var( 'product_cat' );

    // Output the custom field.
    the_field( 'slide_title_1', 'product_cat_' . $category_id );
} ?>

Также файл шаблона будет для пользовательского типа сообщения с именем «продукт». Знаете ли вы разницу между встроенными категориями и пользовательской таксономией?

ОБНОВЛЕНИЕ: поскольку вы используете категорию продуктов WooCommerce, я обновил код.

person Nathan Dawson    schedule 19.02.2014
comment
Похоже, он использует пользовательскую таксономию категории продуктов woocommerce, а не таксономию категории по умолчанию, но если этот код будет обновлен соответствующим образом, я уверен, что это решит его проблему. - person Ennui; 20.02.2014
comment
Хорошо, я попробовал это, но это все равно не дало никакого результата. Я действительно не могу понять, почему. Логически все кажется, что это сработает. - person user3267517; 20.02.2014
comment
И, что интересно, в коде ниже на этой странице архива я могу вызвать это, и оно вытянет описание ‹p›‹?php echo category_description( $category_id ); ?> - person user3267517; 20.02.2014
comment
На самом деле, Ennui, спасибо, я только что увидел ваш комментарий. Как мне обновить код Натана, чтобы отразить пользовательскую таксономию WooCommerce? Это очевидное решение? (Простите меня, я относительно новичок в обширных изменениях woocommerce) - person user3267517; 20.02.2014
comment
<?php echo category_description( $category_id ); ?> может работать, но это потому, что идентификатор необязателен. Если бы требовалось действительное удостоверение личности, это потерпело бы неудачу. Также в документации ACF рассказывается, как отображать эти значения в категории. Код, который вы используете, предназначен для сообщения. - person Nathan Dawson; 20.02.2014