如果输入为空,如何使用Cutom_functions.php中的脚本为wordpress论文主题返回false

时间:2013-01-14 11:40:42

标签: php wordpress wordpress-thesis-theme

我有一个脚本,我以某种方式设法创建(因为我的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');

非常感谢您的帮助。

1 个答案:

答案 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
    }
}