我有一个脚本,我以某种方式设法创建(因为我的PHP知识非常有限),基本上将作者的个人资料(图像,生物和社交媒体的链接)放在作者存档页面上,所有帖子都是同一作者。
这个脚本的问题是如果作者配置文件中的输入为空,它会在div中返回空的href和src。我理解为什么会这样做,但我不知道如何纠正它。
第二个问题是,如果作者设置了我的脚本返回该图像的自定义图像链接,但是如果该链接的输入为空则还要做的就是返回一个头像。
这是我的剧本
/***********************************************************
******************* Custom Author Page *********************
***********************************************************/
function author_info() {
if (is_author($avatar, $id_or_email, $size, $default, $alt)) {
if(get_query_var('author_name'))
$author = get_userdatabylogin(get_query_var('author_name'));
$authorID = $author->ID;
$custom_avatar = get_the_author_meta('imageurl', $authorID);
if ($authorID=="1")
echo ' ';
else
echo '<div class="author_profile author_'. $authorID .'">
<div class="author_avatar"><img alt="Author" src="'. $custom_avatar .'" width="140" height="140" /></div>
<div class="author_info">
<div class="author_description">
<p>'. get_the_author_meta('description', $authorID) .'</p>
<p><strong>Author\'s Website:</strong><a href="'. get_the_author_meta('user_url', $authorID) .'">'. get_the_author_meta('wesitename', $authorID) .'</a></p>
</div>
</div>
<div class="author_links">
<a href="https://plus.google.com/'. get_the_author_meta('google_plus', $authorID) .'" rel="me" target="_blank"><img alt="Google Plus Profile" src="'. get_the_author_meta('google_plus_icon', $authorID) .'" width="128" height="64" /></a>
<a href="http://www.facebook.com/'. get_the_author_meta('facebook', $authorID) .'" target="_blank"><img alt="Facebook Page" src="'. get_the_author_meta('facebook_icon', $authorID) .'" width="128" height="64" /></a>
<a href="http://twitter.com/'. get_the_author_meta('twitter', $authorID) .'" target="_blank"><img alt="Twitter Page" src="'. get_the_author_meta('twitter_icon', $authorID) .'" width="128" height="64" /></a>
<a href="http://www.linkedin.com/company/'. get_the_author_meta('linkedin', $authorID) .'" target="_blank"><img alt="LinkedIn Profile" src="'. get_the_author_meta('linkedin_icon', $authorID) .'" width="128" height="64" /></a>
</div>
</div>
';
?>
<?php }
}
add_action('thesis_hook_before_content', 'author_info');
非常感谢您的帮助。
答案 0 :(得分:0)
您可以更改函数:get_the_author_meta($ type,$ id)以返回默认值。
get_the_author_meta($type, $id) {
**Code to get value **
if(isset($value)) {
return $value;
} else {
return "#"; // Or some other string
}
}
然而,此解决方案将意味着链接仍将显示。如果您不希望链接显示,您可以执行以下操作:
if(isset(get_the_author_meta('google_plus', $authorID)) && isset(get_the_author_meta('google_plus_icon', $authorID))) :
<a href="https://plus.google.com/'. get_the_author_meta('google_plus', $authorID) .'" rel="me" target="_blank"><img alt="Google Plus Profile" src="'. get_the_author_meta('google_plus_icon', $authorID) .'" width="128" height="64" /></a>
endif;
然后只显示带有href和img的链接。
对于您的头像,您可以返回默认值。在您的代码中找到get_the_author_meta('imageurl', $authorID);
的位置
去。可能是像getImageUrl()这样的函数。
在该函数中执行与以前类似的操作:
getImageUrl() {
**Code to get url **
if(isset($value)) {
return $value;
} else {
return "http://www.mysite.com/img/base-avatar.png"; // Or some other base image
}
}