Ссылка на PHP не отображается


Я пытаюсь, чтобы текст "Facebook" был кликабельной ссылкой, но по какой-то причине он не появится на интерфейсе.

Фрагмент кода:

function friend_contact() {

$healthcard = get_field('healthcard');
$facebook = get_field('facebook');
$phone = get_field('phone');
$fax   = get_field('fax');
$email = get_field('email');

$post_info = '';

if (isset($healthcard['url'])) {
    $img = get_stylesheet_directory_uri() . "/images/mail-icon.png";
    $post_info .= '<a class="healthcard" href="'.$healthcard['url'].'"><img src="'.$img.'" /> Download Contact</a>';
}

if (isset($facebook['url']) && isset($healthcard['url']) {
    $post_info .= ' | ';
}   

if (isset($facebook['url'])) {
$post_info .= '<a href="'.$facebook['url'].'"><i class="fa fa-facebook" style="color:blue"></i> Facebook</a>';
}


$post_info .= '<ul class="friend-contact">';
$post_info .= "<li>$email</li>";
$post_info .= "<li>p: $phone</li>";
$post_info .= "<li>f: $fax</li>";
$post_info .= "</ul>";

var_dump($facebook);    
var_dump(get_field('facebook'));

genesis_markup( array(
    'html5' => sprintf( '<div class="entry-meta">%s</div>', $post_info ),
    'xhtml' => sprintf( '<div class="post-info">%s</div>', $post_info ),
) );
}

Результаты сброса:

string(21) "https://www.yahoo.com" string(21) "https://www.yahoo.com"


enter image description here

Альтернативный Код С ['url']:

if (isset($facebook) && isset($healthcard['url']) {
    $post_info .= ' | ';
}

if (isset($facebook)) {
    $post_info .= '<a class="facebook" a href="$facebook"><i class="fa fa-facebook"></i> Facebook</a>';
    }

Я думаю, что корень проблемы в бите кода, ['url'] Заранее благодарю вас

Author: Bob King, 2015-06-30

2 answers

Вы повторяете свою строку одинарными кавычками, поэтому она не будет обрабатывать переменную. Похоже, что это между двойными кавычками, но это часть вашей строки. Так что либо сделай это

$post_info .= '<a class="facebook" href="'.$facebook.'"><i class="fa fa-facebook"></i> Facebook</a>';

Или переверните кавычки.

$post_info .= "<a class='facebook' href='$facebook'><i class='fa fa-facebook'></i> Facebook</a>";

Редактировать: что касается того, как лучше поступить, это еще одно обсуждение. До тех пор, пока вы будете последовательны.

 3
Author: Francesco de Guytenaere, 2015-06-30 19:18:15

Похоже, вы пропустили закрывающую скобку в следующей строке:

Если (иссет ($facebook['url']) &&иссет ($карточка здоровья['url']) {

Ваш код должен выглядеть следующим образом:

if ( isset($facebook['url']) && isset($healthcard['url']) ) {

Также переменная $facebook является строкой, поэтому $facebook['url'] недопустима, а isset($facebook['url']) всегда возвращает false. Так что замените все на $facebook без скобок.

Если $healthcard также является строкой, а не массивом, то вам также следует заменить $healthcard['url'] на $healthcard.

 1
Author: gdros, 2015-06-30 18:35:22