Заголовки и описания пользовательских страниц на страницах категорий WooCommerce - PullRequest
0 голосов
/ 02 октября 2018

Я использовал Расширенные настраиваемые поля для добавления настраиваемого поля заголовка страницы на все мои страницы, публикации, категории и продукты.

Чтобы удалить тег <title> по умолчанию и убедиться, что это поле проходит черезправильно, я использовал следующую функцию в моем файле functions.php:

/* Remove Default <title> tag */

remove_action( 'wp_head', '_wp_render_title_tag', 1 );


// Add new <title> and description tags 

function child_theme_head_script() { ?>
  <title><?php the_field('seo_page_title'); ?></title>
  <meta name="description" content="<?php the_field('seo_page_description'); ?>"/>
  <!-- Your HTML goes here -->
<?php }
add_action( 'wp_head', 'child_theme_head_script' );

Это прекрасно работает на всем сайте, за исключением страниц моей категории здесь: http://staging.morningsidepharm.com/products/branded-medicines

О категориистраниц, кажется, берет название от первого продукта, который появляется на странице ... Для страницы выше заголовок страницы отображается как: Таблетки Бимицца (Desogestrel Ethinylestradiol) Фирменное лекарство |Morningside Pharmaceuticals

Вместо того, чтобы просто: Фирменная медицина |Morningside Pharmaceuticals

Я думал, что wp_head в этой функции нацелится на заголовок всех страниц Wordpress, затем удалит тег заголовка и добавит пользовательский тег ... Похоже, на самом деле это делается правильно,но это просто добавление данных из первого продукта, а не из категории.Категория выглядит следующим образом:

enter image description here

Файлы SEO, которые соответствуют: <?php the_field('seo_page_title'); ?> и <?php the_field('seo_page_description'); ?>

Кто-нибудь может указать мне правильное направление?Я не уверен, где я иду не так ...

** ОБНОВЛЕНИЕ ** ** ОБНОВЛЕНИЕ **

С тех пор я пробовал это, но, похоже, не имеетэффект ...

/* Remove Default <title> tag */

remove_action( 'wp_head', '_wp_render_title_tag', 1 );


// Add new <title> and description tags 

$term = get_queried_object();
$title = get_field('seo_page_title', $term);
$desc = get_field('seo_page_description', $term);

function child_theme_head_script() { ?>
  <title><?php echo $title; ?></title>
  <meta name="description" content="<?php echo $desc; ?>"/>
  <!-- Your HTML goes here -->
<?php }
add_action( 'wp_head', 'child_theme_head_script' );

1 Ответ

0 голосов
/ 02 октября 2018

the_field() можно использовать только в цикле, поэтому он делает это, так как извлекает данные из текущего элемента цикла.Если вы хотите настроить таргетинг на поле таксономии, вам нужно передать ссылку на эту таксономию в функцию.

Я бы предложил что-то вроде этого:

$term = get_queried_object();
the_field('seo_page_title', $term);

Вот соответствующая страница вДокументация ACF: https://www.advancedcustomfields.com/resources/adding-fields-taxonomy-term/

...