PHP link 没有出现
PHP link not appearing
我试图让文本 "Facebook" 成为可点击的 link 但由于某些原因它不会出现在前端。
代码片段:
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']
提前谢谢你
您似乎漏掉了下一行中的右括号:
if (isset($facebook['url']) && isset($healthcard['url']) {
您的代码应如下所示:
if ( isset($facebook['url']) && isset($healthcard['url']) ) {
另外 $facebook
变量是一个字符串,因此 $facebook['url']
无效并且 isset($facebook['url'])
returns 总是 false。所以用没有括号部分的 $facebook 替换所有内容。
如果 $healthcard
也是字符串而不是数组,那么您还应该将 $healthcard['url']
替换为 $healthcard
。
你用单引号回显你的字符串,因此它不会处理变量。这看起来像是在双引号之间,但那是你的字符串的一部分。所以要么做到
$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" 成为可点击的 link 但由于某些原因它不会出现在前端。
代码片段:
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']
提前谢谢你
您似乎漏掉了下一行中的右括号:
if (isset($facebook['url']) && isset($healthcard['url']) {
您的代码应如下所示:
if ( isset($facebook['url']) && isset($healthcard['url']) ) {
另外 $facebook
变量是一个字符串,因此 $facebook['url']
无效并且 isset($facebook['url'])
returns 总是 false。所以用没有括号部分的 $facebook 替换所有内容。
如果 $healthcard
也是字符串而不是数组,那么您还应该将 $healthcard['url']
替换为 $healthcard
。
你用单引号回显你的字符串,因此它不会处理变量。这看起来像是在双引号之间,但那是你的字符串的一部分。所以要么做到
$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>";
编辑:至于什么是更好的方法,是另一个讨论。只要你始终如一。