Ссылка на 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"
Альтернативный Код С ['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']
Заранее благодарю вас
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>";
Редактировать: что касается того, как лучше поступить, это еще одно обсуждение. До тех пор, пока вы будете последовательны.
Похоже, вы пропустили закрывающую скобку в следующей строке:
Если (иссет ($facebook['url']) &&иссет ($карточка здоровья['url']) {
Ваш код должен выглядеть следующим образом:
if ( isset($facebook['url']) && isset($healthcard['url']) ) {
Также переменная $facebook
является строкой, поэтому $facebook['url']
недопустима, а isset($facebook['url'])
всегда возвращает false. Так что замените все на $facebook без скобок.
Если $healthcard
также является строкой, а не массивом, то вам также следует заменить $healthcard['url']
на $healthcard
.