Как вывести ссылку в echo через acf?

Ссылка скопирована
1 ответ

Мне нужно выводить ссылки через acf wp, но при таком вводе выдает ошибку:

Parse error: syntax error, unexpected identifier "link", expecting "," or ";" in

Parse error: syntax error, unexpected identifier "link", expecting "," or ";" in

Как правильно выводить такое?

echo '<a href="the_field('link-bc');"> 	<span class="breadcrumbs__current">'; 	the_field('bc'); 	echo '</span> </a>';

echo '<a href="the_field('link-bc');"> <span class="breadcrumbs__current">'; the_field('bc'); echo '</span> </a>';

Дополнительные вопросы

Как вывести ссылку в echo через acf?

Михаил Р. @Mike_Ro Python, JS, WordPress, SEO, Bots, Adversting

$link_bc = get_field('link-bc'); $bc = get_field('bc');  echo '<a href="' . esc_url($link_bc) . '"><span class="breadcrumbs__current">' . esc_html($bc) . '</span></a>';

$link_bc = get_field('link-bc'); $bc = get_field('bc'); echo '<a href="' . esc_url($link_bc) . '"><span class="breadcrumbs__current">' . esc_html($bc) . '</span></a>';

Как вывести ссылку в echo через acf?

Алексей Уколов @alexey-m-ukolov С точки зрения PHP правильный синтаксис такой:

echo '<a href="' . the_field('link-bc') . '"> 	<span class="breadcrumbs__current">'; 	the_field('bc'); 	echo '</span> </a>';

echo '<a href="' . the_field('link-bc') . '"> <span class="breadcrumbs__current">'; the_field('bc'); echo '</span> </a>';

Однако, если я правильно помню, внутри the_field уже есть echo и тогда должно быть так:

echo '<a href="'; the_field('link-bc'); echo '"><span class="breadcrumbs__current">'; the_field('bc'); echo '</span></a>';

echo '<a href="'; the_field('link-bc'); echo '"><span class="breadcrumbs__current">'; the_field('bc'); echo '</span></a>';

Ответы на вопрос 0

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Артём Dev Ответ

Ошибка появляется из-за смешивания PHP-строки, HTML и вызова the_field() внутри одного echo. Функция the_field() сразу печатает значение поля, поэтому её нельзя нормально склеивать как часть строки. Когда значение нужно вставить в атрибут, проверить или экранировать, используйте get_field().

Для обычного текстового поля со ссылкой правильнее так:

$link = get_field('link-bc');
$text = get_field('bc');
 
if ($link && $text) {
    echo '<a href="' . esc_url($link) . '">';
    echo '<span class="breadcrumbs__current">' . esc_html($text) . '</span>';
    echo '</a>';
}

$link = get_field('link-bc'); $text = get_field('bc'); if ($link && $text) { echo '<a href="' . esc_url($link) . '">'; echo '<span class="breadcrumbs__current">' . esc_html($text) . '</span>'; echo '</a>'; }

Если поле ACF link-bc имеет тип «Ссылка», оно может возвращать не строку, а массив с ключами url, title и target. Тогда обработка должна быть другой:

$link = get_field('link-bc');
$text = get_field('bc');
 
if (is_array($link) && ! empty($link['url'])) {
    $url = $link['url'];
    $title = $link['title'] ?: $text;
    $target = ! empty($link['target']) ? ' target="' . esc_attr($link['target']) . '"' : '';
 
    echo '<a href="' . esc_url($url) . '"' . $target . '>';
    echo '<span class="breadcrumbs__current">' . esc_html($title) . '</span>';
    echo '</a>';
}

$link = get_field('link-bc'); $text = get_field('bc'); if (is_array($link) && ! empty($link['url'])) { $url = $link['url']; $title = $link['title'] ?: $text; $target = ! empty($link['target']) ? ' target="' . esc_attr($link['target']) . '"' : ''; echo '<a href="' . esc_url($url) . '"' . $target . '>'; echo '<span class="breadcrumbs__current">' . esc_html($title) . '</span>'; echo '</a>'; }

  • the_field() используйте для простого вывода значения на страницу.
  • get_field() используйте для условий, склейки строк, атрибутов и подготовки HTML.
  • URL выводите через esc_url(), текст через esc_html(), атрибуты через esc_attr().
  • Проверьте формат возврата поля в настройках ACF: URL, массив или ID.

Также в исходном HTML не хватало нормальных угловых скобок и закрывающих тегов. Сначала соберите корректный HTML, а уже потом вставляйте в него значения ACF.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно