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);
});
в чем проблема? Вы можете проверить это, пожалуйста?