Možda bi bilo dobro u Transliterator dodatku ugasiti filtere za get_post_metadata .
unserialize() je PHP funkcija i plugin nema eksplicitno uticaj na njega ali ima na podatak koji vraćaš.
Koja su podešavanja dodatka?
Thread Starter
Losmi
(@uloszaminje)
Kada je aktivno preslovljavanje na latinicu, ova linija koda plugina ‘responsive accordion’:
$accordion_data = unserialize(get_post_meta( get_the_ID(), 'wpsm_accordion_data', true));
proizvodi sledeće obaveštenje:
PHP Notice: unserialize(): Error at offset 135 of 21978 bytes in ….
Problem je u tome što sadržaj u bazi (koji je inicijalno serijalizovan na ćirilici) biva promenjen transliteracijom, što narušava integritet serijalizovanih podataka. To dovodi do greške prilikom pokušaja da se ti podaci unserialize.
Da li mogu deo PHP koda da izopštim iz transliteracije? Ako bi možda mogli da uradimo unserialize i tek nakon toga dobijeni tekst da preslovljavamo ako treba…
Thread Starter
Losmi
(@uloszaminje)
Ne znam da li je moguće ugasiti filter za get_post_meta(), lako ću ja posle da preslovim ovo u php-u ili javaskriptu?
Thread Starter
Losmi
(@uloszaminje)
Da li funkcija Serbian_Transliteration_Utilities::exclude_transliteration() može da se koristi da za delove PHP skripte isključim transliteraciju pa je zatim ponovo uključim?
Thread Starter
Losmi
(@uloszaminje)
Resio sam problem, malo sam bio nevaljao i izmenio sam definiciju funkcije exclude_transliteration() u serbian-transliteration/inc/Utilities.php:
public static $force_exclude = null;
public static function exclude_transliteration() : bool {
if (self::$force_exclude !== null) {
return self::$force_exclude;
}
$locale = self::get_locale();
$exclude = get_rstr_option('disable-by-language', []);
return isset($exclude[$locale]) && $exclude[$locale] === 'yes';
}
Sada mogu da po potrebi iskljucujem transliteraciju…