Как мне перестать печатать последний «еще» дважды? - PullRequest
0 голосов
/ 21 апреля 2020

Тренируя мой php, я сталкивался с этим, код работает, но как мне перестать набирать последний 'else' дважды? Какая правильная форма?

мой код:

if ( wp_date('d') == get_the_date('d') ) {

    $status = get_youtube_status( get_sub_field( 'link' ) );

    if ( !empty( $status['init'] ) ) {

        $init = $status['init'];
        $views = get_youtube_views( $status['views'] );
        echo '
            <div class="status">
                <div class="nowlive">AGORA AO VIVO</div>
                <div class="time">Live iniciada há '.get_youtube_time( $init ).'</div>
                <div class="views">'.$views.' assistindo agora</div>
            </div>
        ';
    } else {
        echo '<div class="date"><i class="fas fa-clock"></i> '.get_sub_field( 'date' ).'</div>';
    }
} else {
    echo '<div class="date"><i class="fas fa-clock"></i> '.get_sub_field( 'date' ).'</div>';
}

Ответы [ 3 ]

2 голосов
/ 21 апреля 2020

вы можете определить и сделать эхо по умолчанию

$return = '<div class="date"><i class="fas fa-clock"></i> '.get_sub_field( 'date' ).'</div>';
if ( wp_date('d') == get_the_date('d') ) {

    $status = get_youtube_status( get_sub_field( 'link' ) );

    if ( !empty( $status['init'] ) ) {

        $init = $status['init'];
        $views = get_youtube_views( $status['views'] );
        $return = '
            <div class="status">
                <div class="nowlive">AGORA AO VIVO</div>
                <div class="time">Live iniciada há '.get_youtube_time( $init ).'</div>
                <div class="views">'.$views.' assistindo agora</div>
            </div>
        ';
    } 
}
echo $return;
1 голос
/ 21 апреля 2020

Просто переместите его в конец и заключите в один оператор if:

if ( wp_date('d') == get_the_date('d') ) {

    $status = get_youtube_status( get_sub_field( 'link' ) );

    if ( !empty( $status['init'] ) ) {

        $init = $status['init'];
        $views = get_youtube_views( $status['views'] );
        echo '
            <div class="status">
                <div class="nowlive">AGORA AO VIVO</div>
                <div class="time">Live iniciada há '.get_youtube_time( $init ).'</div>
                <div class="views">'.$views.' assistindo agora</div>
            </div>
        ';
    }
}

if ( wp_date('d') != get_the_date('d') || empty( $status['init'] )) {
    echo '<div class="date"><i class="fas fa-clock"></i> '.get_sub_field( 'date' ).'</div>';
} 
1 голос
/ 21 апреля 2020

Вы можете использовать логический флаг:

$flag = false;

if ( wp_date('d') == get_the_date('d') ) {
    $status = get_youtube_status( get_sub_field( 'link' ) );

    if ( !empty( $status['init'] ) ) {
        $flag = true;
        $init = $status['init'];
        $views = get_youtube_views( $status['views'] );
        echo '
            <div class="status">
                <div class="nowlive">AGORA AO VIVO</div>
                <div class="time">Live iniciada há '.get_youtube_time( $init ).'</div>
                <div class="views">'.$views.' assistindo agora</div>
            </div>
        ';
    }
}

if (!$flag) {
    echo '<div class="date"><i class="fas fa-clock"></i> '.get_sub_field( 'date' ).'</div>';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...