如何仅在至少填充了一个作者自定义个人资料字段时才显示div?

时间:2014-07-30 作者:Knott

我尝试构建一个小插件,在WordPress用户表单中添加一些社交档案字段,并在单个帖子的作者元框中显示他们的社交图标。

我面临的问题如下:

前端社交图标以一定的高度和背景颜色(通过css)封装在一个div中。

如果用户没有填写任何字段,我的div仍会显示,但为空(正常),具有定义的高度和背景颜色,这是不美观的。

如果没有填写至少一个社交档案字段,我如何才能使该div不出现?

以下是我迄今为止使用的代码片段(伪代码),我认为这是说明我的问题所必需的:

class My_Social_Icons {

    static $social_icons_array = array(
        \'digg\'          => \'Digg\',
        \'dribbble\'      => \'Dribbble\',
        \'facebook\'      => \'Facebook\',
        \'flickr\'        => \'Flickr\',
        \'github\'        => \'Github\'
        );

} // class end


function social_extra_fields( $extra_fields ) {

    foreach ( My_Social_Icons::$social_icons_array as $social_id => $social_name ) {
        $extra_fields[$social_id] = $social_name;
    }
    return $extra_fields;
}
add_filter( \'user_contactmethods\', \'social_extra_fields\' );
以下是将在前端显示社交图标的输出:

function display_icons( $icons = \'\' ) {

    $social_icons_fields = get_the_author_meta(???);

    if ( !empty( $social_icons_fields ) ) { // here I need to check if at least one field is filled
        $icons .= \'<div class="socials-icons">\':
// here is my code to display the social icons, not mentioned here
        $icons .= \'</div>\';

        return $icons;
    }
}
add_filter ( \'the_content\', \'display_icons\', 0 );
任何帮助都将不胜感激!

1 个回复
SO网友:Domain

一种可能的解决方案是-

if ( empty( $social_icons_fields ) ){
   $icons .= \'<style type="text/css"> .socials-icons{display: none;} </style>\'; //assuming that the div which has class \'socials-icons\' is the div which supposed to be not shown 
   return $icons;
}

结束

相关推荐

如何为作者创建页面?如www.myBlo.com/Author/

我有author.php 对于作者来说,它单独工作很好。eg: 如果我单击author1 它去了www.myblog.com/author/author1并显示他的详细信息author2 它去了www.myblog.com/author/author2并显示他的详细信息,现在我想在1个url下显示所有这些用户,如www.myblog.com/author/author 如果有人去www.myblog.com/author/author/然后应该显示作者列表及其详细信息。我该怎么做。?任何帮助都将不胜感激。