Každý, kdo někdy dělal web a ze začátku nechtěl investovat do hostingu, tak se poohlížel po nějakém free hostingu. Takovýchto hostingů, která „zdarma“ (uvozovky proto, jelikož platíte provoz webu reklamou), nabízí prostor pro vaše webové stránky, je několik. Ovšem jeden z nich vyčnívá a to free hosting endora. Bohužel i to, že vyčnívá mezi ostatními neznamená, že se u něj nevyskytne nějaká chyba. Bohužel na jednu zásadní chybu jsem narazil, když jsem zkoušel nový wordpress. Nešlo mi nahrávat přílohy přímo v editoru. Vyskočila na mě totiž chybová hláška.
Příčina
Tato chybová hláška mi oznamovala, že se někde při ukládání souboru stala chyba. Podíval jsem se tedy do správce médií a tam soubor byl úspěšně uložen. Říkal jsem si tedy, kde může být chyba. Zkusil jsem tedy místo multi-uploadu klasický upload. Najednou všechno proběhlo bez problému a uložený soubor se hned zobrazil. Pátral jsem tedy dál, proč dělá problém jen flash upload. Napadlo mě, že bych mohl zkusit plus účet bez reklam. A co se nestalo na placeném programu bez reklam, všechno jelo jak na klasickém uploadu, tak i na multi-uploadu. Jediné co se tedy změnilo, bylo to, zdali je do webu vkládána reklama nebo není.
Tak že příčinu, proč se chyba vyskytuje, již máme. Teď proč má reklama, která je na webu a ne v administraci, má takovýto efekt. Odpověď je jednoduchá, reklama se vkládá do každé stránky automaticky. Tedy i do administrace wordpressu. Ovšem při ukládání přes multi-upload se po uložení souboru zobrazí informace o souboru a možnost změn, ovšem, když se tyto informace generují, tak se do výstupních informací znovu vloží reklama od endory. Toto wordpress nečeká a zobrazí chybu.
Ukázka
Aby bylo přesně jasné, o jakou chybu se jedná, přikládám screen.
Řešení
Řešení tohoto problému máme přímo dvě. Jedno ve velice snadné, ale trošku nákladné a to si koupit nějaký z placených programů endory. Na jakémkoliv placeném účtu se reklama nezobrazuje a wordpress, již nebude nic ovlivňovat. Druhý způsob jak opravit ukládání, je zásah do kódu. Přesněji řečeno do souboru async-upload.php (ve složce wp-admin), který se stará o zpracování dat z uploadu. V tomto souboru nalezneme řádek 32, kde je napsáno toto:
header('Content-Type: text/html; charset=' . get_option('blog_charset'));
Tento řádek přepište na tento:
header('Content-Type: text/plain; charset=' . get_option('blog_charset'));
Tato změna řádku, má za následek to, že výstup z uploadu již nebude bráno jako html, ale jako obyčejný text, kam se již reklama nevloží. Proto se již ani nezobrazí chybová hláška. Nevýhodou ovšem je, že po aktualizaci wordpressu, se vám upravený soubor změní na původní a znovu musíte provést úpravu. Administrátoři Endory, ovšem již psali, že se chystá několik změn a v nich má být i změněno vkládání reklamy do stránek. Tak že by již tento problém neměl nastat. Dokud ovšem avizovaná změna nepřijde, jsou řešení jenom dvě (zaplatit, měnit kód).
Díky za tip. Ta chyba mě s…a natolik, že jsem přešel na placený tarif 🙂 Teda chtěl jsem na něj přejít tak jako tak, ale tohle mě donutilo jednat rychleji 😀
Nemáš zač. Těší mě, že článek pomohl.
teda dekuji za radu 🙂 na endore mam par webu a musim rici, ze te chyby jsem si nemohl nevsimnout, vzdy jsem nahral obrazek a musel dat tu roletku a vybrat – Prirazeno k prispevku, takto usetrim cenne 2-3 sekundy uz kazdeho clanku/postu, coz se hodi 🙂 diky 😎
Jsem rád, že ti můj návod pomohl.