Плагин Wordpress - состояние потока twitch - кто-то может проверить код? - PullRequest
0 голосов
/ 28 марта 2020
    function bonfire_sst_header() {
?>

    <!-- BEGIN MAIN WRAPPER (show only if Twitch channel name entered) -->
    <?php if( get_theme_mod('sst_channel_name') != '') { 

    $url="https://api.twitch.tv/helix/streams?user_login=".get_theme_mod('sst_channel_name');

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Client-ID: ls2awgx5gfg9m1q6iopdqb1b7d0y6a'
    ));
    $result=curl_exec($ch);
    $array1=json_decode($result, true);

    ?>
    <div class="sst-main-wrapper">
        <?php include( plugin_dir_path( __FILE__ ) . 'include.php'); ?>
    </div>
    <?php } ?>
    <!-- END MAIN WRAPPER (show only if Twitch channel name entered) -->

    <script>
    jQuery('.sst-twitch').each(function () {
        var nickname = jQuery(this).data('nickname');

    <?php
    if ($array1["stream"]== NULL) {
        if( get_theme_mod('sst_offline_hide') != '') { ?><?php } else { ?>jQuery('.sst-main-wrapper, .sst-main-widget-wrapper').addClass('sst-main-wrapper-active');<?php } ?>
        //animations
        jQuery('.sst-status-text-offline').addClass('sst-current-status');
        setTimeout(function() {
            jQuery('.sst-status-text-offline').addClass('sst-current-status-active');
            jQuery('.sst-status-wrapper').addClass('sst-status-wrapper-active');
        }, 25);
    <?php
    } else {
    ?>
        //show if online
        jQuery('.sst-main-wrapper, .sst-main-widget-wrapper').addClass('sst-main-wrapper-active');
        // animations
        jQuery('.sst-status-text-live').addClass('sst-current-status');
        setTimeout(function() {
            jQuery('.sst-status-text-live').addClass('sst-current-status-active');
            jQuery('.sst-status-wrapper').addClass('sst-status-wrapper-active');
        }, 25);
    <?php
    }
    ?>
    });
    </script>

Что я пробовал:

плагин не работал из-за устаревшего API. Мне нужно использовать плагин, но мои знания json - PHP не самые лучшие. Я хочу поместить URL-адрес из учетной записи twitch, чтобы плагин проверял URL-адрес, а если учетная запись транслируется в прямом эфире, то в теге отображается сообщение «LIVE NOW», в противном случае - «offline». Я не могу заставить это работать. С этой строкой: if ($array1["stream"]== NULL) { он всегда показывает сообщение в теге «offline» для каждой учетной записи, которую я поместил, даже если эта учетная запись фактически транслируется. Но если я изменю строку на это: if ($array1["stream"]!= NULL) {, тогда он показывает все учетные записи, которые сейчас транслируются. На форуме по подергиванию они сказали мне заменить строку на эту: if (count($array1['data']) == 1) {, но когда я прекратил показывать тег, в dev tools chrome я получил эту ошибку: ошибка для этой части код:

    jQuery('.sst-twitch').each(function () {
        var nickname = jQuery(this).data('nickname');

    <br />
Warning: count(): Parameter must be an array or an object that implements Countable in C:\xampp\htdocs\testsite\wordpress\wp-content\plugins\stream-status-for-twitch\stream-status-for-twitch.php on line 253

//show if online
jQuery(’.sst-main-wrapper, .sst-main-widget-wrapper’).addClass(‘sst-main-wrapper-active’);
// animations
jQuery(’.sst-status-text-live’).addClass(‘sst-current-status’);
setTimeout(function() {
jQuery(’.sst-status-text-live’).addClass(‘sst-current-status-active’);
jQuery(’.sst-status-wrapper’).addClass(‘sst-status-wrapper-active’);
}, 25);
});

в чем проблема? Вы можете проверить это, пожалуйста?

...