Isn’t it possible to store a JSON string as is in the database?
Unless JSON contains emoji (or similar unicode) character, yes. Same problem here (solution in last comment).
When I start with caching implementation, I used json_decoded object to extract elements from items, so I think it’s good idea to store object to wp_option instead string. Then added more stuff, and more, and never tidied code.
Did you tried with collation change in DB? Did that helped?
Haven’t tried the collation change, I’m affraid I will mess something up, especially on a live website. 😛
But I have a locally installed instance of WordPress, which also has collation set to utf8_general_ci. I added the following three lines of code to the default plugin hellp.php:
set_transient('kalle', '🐎hej');
$hej = get_transient('kalle');
echo $hej;
And it prints the string 🐎hej correctly on the screen. So apparently there shouldn’t be any problems with storing and getting those exotic Unicode characters.
However, my local web server runs another version of PHP, etc. Dunno if that matters.
Umm, played a little more with it. Seems like the string with the Unicode character only shows up after the first page load. When you do additional page reloads it doesn’t appear again. However, if I remove 🐎 and only keep hej it works fine on every page load. Dunno what’s up with that behaviour. Maybe the first time it never gets it from the actual database.
OK, when the value contains the 🐎 character it never gets saved, as seen in:
mysql> select * from wp_options where option_name like '%kalle%';
+-----------+------------------+--------------+----------+
| option_id | option_name | option_value | autoload |
+-----------+------------------+--------------+----------+
| 270 | _transient_kalle | | yes |
+-----------+------------------+--------------+----------+
1 row in set (0.00 sec)
But if I remove 🐎 and only keeps the string hej:
mysql> select * from wp_options where option_name like '%kalle%';
+-----------+------------------+--------------+----------+
| option_id | option_name | option_value | autoload |
+-----------+------------------+--------------+----------+
| 270 | _transient_kalle | hej | yes |
+-----------+------------------+--------------+----------+
I changed the collation with:
alter table wp_options convert to character set utf8 collate utf8_unicode_ci;
To show the collation for all database table columns:
SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS;
However, that didn’t help. Still isn’t possible to store a string containing the emoticon…
I guess base64 encoding the string is a sufficient workaround. :/
Yup, when I look JSON entry in database (output from your YT channel), I found it’s saved only until emoji character, then rest of string is cut off – and that returns invalid JSON = No items…
So we’ll go with base64_decode(), latter today 🙂
Thank you for help!
I have the same problem after upgrade to 2.2.1…
My site: http://www.blackseals.net (normally you will find it after “Zuletzt bei Youtube”)
edit: so I tried your developer version and it worked again.
2.2.1 have option to recache feed on Settings > Youtube Channel > Help tab (at the bottom).
So, update notices in README.txt seems to does not display to users, so I must to add some other way to inform users how to apply some changes 🙂
In general, this will help http://www.blackseals.net/?ytc_force_recache=1
Hello, thanks for your fast help. It work again. No, I didn’t see Readme.txt, because I used update through WordPress Plugin Update and after a check, I looked to plugin page and WordPress plugin support forum…
According to your coming new way for informing users…
-) I was reading changes from the last version. Maybe that is one way to inform for additional upgrade procedures.
-) Also some plugins show a text line on the upper area in WordPress Dashboard, if there is an additional work after upgrade or after first installation. Maybe also a way to inform users.
Thank you Andyt8 for idea, I added admin notices for updated versions.
CHeers
Hi,
No items (check here why) error… cant fix it! can you help me please? here´s the error…
thanks
server: Apache
php: 5.4.30
wp: 3.9.2
ytc: 2.2.2
url: http://viandme.com/wp
title: Vi & Me @ Youtube
channel: UCWZBJh05YK2SIM7ltyhIxzw
vidqty: 1
playlist: null
use_res: null
cache_time: null
only_pl: null
getrnd: null
maxrnd: 25
goto_txt: null
showgoto: null
popup_goto: null
showtitle: on
showvidesc: null
descappend: …
videsclen: null
width: 220
to_show: thumbnail
autoplay: null
autoplay_mute: null
controls: null
fixnoitem: on
ratio: 3
fixyt: null
hideinfo: null
hideanno: null
themelight: on
debugon: on
userchan: null
enhprivacy: null
Hi mariapessanha,
As I can see, in footer on your website I see YTC thumbnail block, so no more issue on your site.
Problem was probably with cached ytc feed.
Cheers
Hi, all of a sudden I just got the same error “No items (check here why) error” (sidebar widget.
First time I have a problem with your plugin.
server: Apache
php: 5.4.4-14+deb7u7
wp: 3.9.2
ytc: 2.2.2
url: http://mysteryplanet.com.ar/site
title: MysteryPlanet Channel
channel: mysteryplanet
vidqty: 1
playlist: null
use_res: null
cache_time: 3600
only_pl: null
getrnd: on
maxrnd: 3
goto_txt: Más...
showgoto: on
popup_goto: 2
showtitle: on
showvidesc: null
descappend: …
videsclen: null
width: 220
to_show: thumbnail
autoplay: null
autoplay_mute: null
controls: null
fixnoitem: null
ratio: 3
fixyt: on
hideinfo: null
hideanno: null
themelight: null
debugon: on
userchan: null
enhprivacy: null
Please try to disable option ‘fix no items’ in widget.
Hi, thanks for your prompt reply. That option was already disabled… I did everything you mention in this thread but it’s not working. Please help me to fix it, I don’t want to change your plugin for another one, I think yours is great.