PHP的。只有当几乎是一个if时,才显示图像

时间:2017-06-19 12:35:30

标签: php jquery wordpress

只有当列表中的几乎一个PHP“if”为真时,我才会尝试使用".social-border-top"类显示div。

这是代码:

<?php  if( $social ) : ?>
      <div class="author-social flat-social" id="author-social">
        <div class="social-border-top" id="social-border-top">
                    <img src="https://openclipart.org/image/2400px/svg_to_png/81967/Old-style-border.png" class="float-right">
                </div>
                <?php if ( get_the_author_meta( 'instagram' , $user_id ) ) : ?>
                <a class="foap-social social-instagram" href="<?php echo esc_url( get_the_author_meta( 'instagram' , $user_id ) ); ?>"><i class="fa fa-instagram"></i></a>
                <?php endif ?>
                <?php if ( get_the_author_meta( 'behance' , $user_id ) ) : ?>
                <a class="foap-social social-behance" href="<?php echo esc_url( get_the_author_meta( 'behance' , $user_id ) ); ?>"><i class="fa fa-behance"></i></a>
                <?php endif ?>
                <?php if ( get_the_author_meta( 'pinterest' , $user_id ) ) : ?>
                <a class="foap-social social-pinterest" href="<?php echo esc_url( get_the_author_meta( 'pinterest' , $user_id ) ); ?>"><i class="fa fa-pinterest"></i></a>
                <?php endif ?>
                <?php if ( get_the_author_meta( 'youtube' , $user_id ) ) : ?>
                <a class="foap-social social-youtube" href="<?php echo esc_url( get_the_author_meta( 'youtube' , $user_id ) ); ?>"><i class="fa fa-youtube"></i></a>
                <?php endif ?>
                <?php if ( get_the_author_meta( 'flickr' , $user_id ) ) : ?>
                <a class="foap-social social-flickr" href="<?php echo esc_url( get_the_author_meta( 'flickr' , $user_id ) ); ?>"><i class="fa fa-flickr"></i></a>
                <?php endif ?>
                <?php if ( get_the_author_meta( 'linkedin' , $user_id ) ) : ?>
                <a class="foap-social social-linkedin" href="<?php echo esc_url( get_the_author_meta( 'linkedin' , $user_id ) ); ?>"><i class="fa fa-linkedin"></i></a>
                <?php endif ?>
                <?php if ( get_the_author_meta( 'google' , $user_id ) ) : ?>
                <a class="foap-social social-google-plus" href="<?php echo esc_url( get_the_author_meta( 'google' , $user_id ) ); ?>"><i class="fa fa-google-plus"></i></a>
                <?php endif ?>
                <?php if ( get_the_author_meta( 'twitter' , $user_id  ) ) : ?>
                <a class="foap-social social-twitter" href="http://twitter.com/<?php the_author_meta( 'twitter' , $user_id ); ?>"><i class="fa fa-twitter"></i></a>
                <?php endif ?>
                <?php if ( get_the_author_meta( 'facebook' , $user_id ) ) : ?>
                <a class="foap-social social-facebook" href="<?php echo esc_url( get_the_author_meta( 'facebook' , $user_id ) ); ?>"><i class="fa fa-facebook"></i></a>
                <?php endif ?>
                <?php if ( get_the_author_meta( 'url' , $user_id ) ) : ?>
                <a class="foap-social social-site" href="<?php echo esc_url( get_the_author_meta( 'url' , $user_id ) ); ?>"><i class="fa fa-home"></i></a>
                <?php endif ?>
            </div>
        <?php endif; ?>

我正在使用jQuery但似乎没有工作:

jQuery(document).ready(function($){
    if ($(".author-social").html().length = 0) {
     $('.social-border-top').hide();
    }                                           
});

你能帮我吗?

2 个答案:

答案 0 :(得分:1)

在您的jQuery中,您应该检查$('.foap-social').length,而不是.author-social。 根据您的HTML,$('.author-social')将始终返回容器。

此处.html().length = 0您应该使用== 0代替= 0

答案 1 :(得分:1)

你可以在你的php中添加一个变量,在你的if语句中充当布尔值

<?php if ( get_the_author_meta( 'instagram' , $user_id ) ) : ?>
            <a class="foap-social social-instagram" href="<?php echo esc_url( get_the_author_meta( 'instagram' , $user_id ) ); ?>"><i class="fa fa-instagram"></i></a>
$exist=1;
<?php endif ?>

并将php变量添加到你的jquery代码中,如此

jQuery(document).ready(function($){
if (<?php echo $exist ?>) {
 $('.social-border-top').hide();
}                                           
});

注意记住要在外面声明存在变量,否则它将失去其范围

P.S Pavel的回答对你的代码更好,但我觉得提到这个,所以有类似问题的其他人可以使用这个

这是一个简单而有效的实现,你的问题只需复制并粘贴到一个php文件,它应该像你想要的那样工作

<?php
$exist;
?>
<?php if (1):
    $exist=1;?>
    <a class="foap-social social-instagram" href="dsa">Dummy text<i class="fa fa-instagram"></i></a>

<?php endif ?>
<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
jQuery(document).ready(function($){

if (<?php echo $exist ?>) {
    alert("Now to hide");
$('.foap-social').hide();
}
});
</script>