如果还有其他的话,《格拉凡达》作者图片

时间:2011-05-22 作者:xLRDxREVENGEx

好的,我已经在WordPress编辑配置文件字段中添加了一个自定义字段,如果贡献者和更高级别的人不使用gravatar,他们可以在其中添加自定义图像。现在我正试图写一个if-else语句,这就是我所拥有的

<?
    $hasauthorpic = (the_author_meta(\'author_pic\'));
    if (function_exists(\'get_avatar\')) { echo get_avatar( get_the_author_email(), \'80\' );}
    else {echo \'?><img class="avatar avatar-80 photo"><? $hasauthorpic ?></img><? \';}
?>
我想尝试做的是,如果用户确实有一个gravatar使用它,除非他们指定了一个指向该配置文件pic的链接。或者让author\\u pic成为更高的优先级,即使用户有gravatar。

EDIT:

<?
$authorpic = the_author_meta(\'author_pic\');
$gravatar = get_avatar( get_the_author_email(), \'80\' );
    if ($authorpic); 
    elseif (function_exists(\'get_avatar\')) 
            echo ($gravatar); 
?>
好的,我尝试了下面的代码,但效果不太好。也许是因为我把这个放进了一个单曲里。php文件。以上是我设法得到的,但唯一的问题是当它显示时,它同时显示了头像和作者图片链接,所以我知道我仍然需要添加<img> 标签,但这将很容易以后。我读到的一件事是你不能true 在…上the_author_meta 所以我需要帮助。

如果你能想出一个代码来连接gravatar的东西,那么我就接受它。换句话说,如果你有一个代码,我可以把它放在我的函数中。php文件,这将工作,我和我宁愿这样。字段名称为author_pic

UPDATE: 这是我用下面提供的代码写的最后一篇文章

<?php
$authorpic = get_the_author_meta(\'author_pic\');
$imgtagbeg = (\'<img style="height:80px; width:80px" src="\');
$imgtagend = (\'"/>\');
if ($authorpic)
    echo $imgtagbeg,$authorpic,$imgtagend; 
else
    echo get_avatar( get_the_author_email(), \'80\' ); 
?>

3 个回复
最合适的回答,由SO网友:aaronwaggs 整理而成

您需要使用get\\u the\\u author\\u meta()而不是\\u author\\u meta()

<?php
$authorpic = get_the_author_meta(\'author_pic\');
if ($authorpic)
    echo $authorpic; 
else
    echo get_avatar( get_the_author_email(), \'80\' ); 
?>

SO网友:Chris_O

你的if 将始终返回true并绕过自定义作者图片。

在自定义字段上运行if。如果返回true,则添加一个过滤器以获取使用自定义字段author pic的\\u avatar。

if ( the_author_meta(\'author_pic\') ) {
add_filter( \'get_avatar\', \'your_custom_author_pic_function\' );
}

SO网友:wired

我最近发现了一个很棒的新插件,叫做Simple Local Avatars 这将完全符合你的要求。看看吧!

结束