Добавление the_permalink в существующие теги PHP

78
7

У меня есть эта часть кода внутри цикла Wordpress, который проверяет наличие поля "quote". Если он не будет здесь, он отобразит ссылку, но если она там, она не будет.

<?php 
if(get_field('quote') == ''){
$yourTag = "<a href="the_permalink();">" ;
} else {
$yourTag = "";
}
?>

и затем я использую это для вывода ссылки:

<div> <?php echo $yourTag; ?> </div>

Проблема, с которой я сталкиваюсь, связана с третьей строкой:

$yourTag = "<a href="the_permalink();">" ;

Все это делает добавление the_permalink() в конец URL-адреса и не выводит фактическую ссылку.

Правильно ли этот код?

Для справки полный код цикла находится здесь:

<!-- Main Loop =========================================== -->

<div class="container blog-card-container">
<div class="card-columns">

<?php if ( have_posts() ) : ?>

<?php /* Start the Loop */ ?>

<?php while ( have_posts() ) : the_post(); ?>

<!-- Conditional a =========================================== -->

<?php
if(get_field('quote') == ''){
$yourTag = "<a href="the_permalink();">" ;
} else {
$yourTag = "";
}
?>

<div> <?php echo $yourTag; ?> </div>

<div class="card">

<!-- Image if loop =========================================== -->

<?php if ( in_category('14') ) : ?>

<div class="client-header-logo-card" style="background-color: <?php the_field('client_brand_colour'); ?>;">
<?php

$image = get_field('client_logo');

if( !empty($image) ): ?>

<img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />

<?php endif; ?>
</div>

<?php else: ?>

<div class="blog-thumb-container">
<?php if ( has_post_thumbnail() ) { the_post_thumbnail(); } ?>
</div>

<?php endif ?>

<!-- Meta Data if loop =========================================== -->

<div class="blog-clients-card-block">

<?php if ( in_category('14') ) : ?>

<div class="client-text-block">

<p class="blog-cat-label"><?php the_category(', '); ?></p>

<h2><?php the_title(); ?></h2>

<?php if( get_field('quote') ): ?><p class="client-quote"><span style="color:<?php the_field('client_brand_colour'); ?>; font-weight:bold;">“ </span><?php the_field('quote'); ?><span style="color:<?php the_field('client_brand_colour'); ?>;font-weight:bold;"> ”</span></p><?php endif; ?>

<?php if( get_field('quote_name') ): ?><p class="client-name" style="color:<?php the_field('client_brand_colour'); ?>;"><?php the_field('quote_name'); ?></p><?php endif; ?>
<?php if( get_field('quote_position') ): ?><p class="client-position" style="color:<?php the_field('client_brand_colour'); ?>;"><?php the_field('quote_position'); ?></p><?php endif; ?>

<?php if( get_field('button_text') ): ?>
<a class="btn btn-sm btn-client-archive" href="<?php the_permalink(); ?>" style="background-color:<?php the_field('client_brand_colour'); ?>;" role="button"><?php the_field('button_text'); ?></a>
<?php endif; ?>

<?php if( get_field('video_url') ): ?>
<div class="embed-container">
<?php the_field('video_url'); ?>
</div>
<?php endif; ?>

</div>

<?php else: ?>

<p class="blog-cat-label"><?php the_category(', '); ?></p>
<h2 class="blog-card-title"><?php the_title(); ?></h2>
<p class="card-text"><?php the_excerpt(__('(more…)')); ?></p>
<p><strong><?php the_author(); ?></strong> | <?php the_date(); ?> </p>

<?php endif ?>

</div>

</a>

</div>

<?php endwhile; wp_reset_postdata(); endif; ?>

</div>

</div>

спросил(а) 2021-01-19T13:45:38+03:00 6 месяцев, 1 неделя назад
1
Решение
89

Вы можете сделать это с помощью точки (.) Т.е. оператора конкатенации, как показано ниже.

 <?php 
if(get_field('quote') == ''){
$yourTag = "<a href='".get_the_permalink()."'>" ;
} else {
$yourTag = "";
}
?>

ответил(а) 2021-01-19T13:45:38+03:00 6 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема