Как вывести переменную php в ссылку html в шорткоде wordpress

В моем коротком коде я динамически захватываю некоторые настраиваемые сообщения и отображаю их. У этих настраиваемых сообщений есть настраиваемое поле с надписью «url». Я пытаюсь взять значение из этого настраиваемого поля и поместить его в href тега привязки. Проблема в том, что я не могу использовать эхо в шорткоде. Кажется, что функция do_shortcode может быть ответом, но я не уверен, как ее использовать в моем случае. Проблема в этой строке:

$retour .= "<a href='".echo $meta_values;."'>";

Вот остальной код шорткода

function sc_liste($atts, $content = null) {
    extract(shortcode_atts(array(
            "cat" => ''
    ), $atts));
    global $post;

    $myposts = get_posts('post_type=section_modules&category_name='.$cat.'&order=ASC');
    $retour = "<div class='container-fluid sectionBoxContainer'><div class='row-fluid'>";
    foreach($myposts as $post) :
    $meta_values = get_post_meta( $post->ID, 'url', true );
         $retour .= "<a href='".echo do_shortcode();."'>";
         $retour.="<div class='sectionBox span4'><h2>".$post->post_title."</h2><div class='hrule_black'></div><p>".$post->post_content."</p></div>";
         $retour .="</a>";
    endforeach;
    $retour .= "</div></div>";

    return $retour;


}

person Jake Funchion    schedule 21.10.2013    source источник


Ответы (3)


Вы не echo в переменную, вы просто объединяете ее:

$retour .= "<a href='".$meta_values."'>";
echo $retour;
person scrowler    schedule 21.10.2013

Вы не должны echo элемент в шорткоде. Просто сохраните их в переменной и верните результат в конце функции шорткода. В вашем случае это можно сделать так:

$retour .= "<a href='" . $meta_values . "'>";

И в конце-

return $retour;

person Niamul    schedule 04.11.2017

Возможно, я неправильно понимаю ваш вопрос, но когда вы опускаете эхо и помещаете $meta_values в свою строку, это должно сработать

$retour .= "<a href='$meta_values'>";
person Olaf Dietsche    schedule 21.10.2013