Úvodní stránka › Fórum podpory WordPressu › Problémy s WordPressem › Worpdress 4.5.3. one page layout
Zvolené téma obsahuje celkem 4 odpovědi. Do diskuze (2 účastníci) se naposledy zapojil uživatel tom@s a poslední změna je stará 8 let, 3 měsíce.
-
AutorPříspěvky
-
28. června 2016 (14:11) #28144
Zdravím,
vytvořil jsem pro WP šablonu používající “one page layout” a vše fungovalo hezky až do nedávného vydání verze 4.5.3 kdy se stránky zobrazují jen v náhledu administrace (single) a na webu jako takovém nikoliv. Stránky používají EASY hosting od forpsi.com kde je maximální verze MySQL uvedena jako 5.5. ale v požadavcích WP je, že minimum je 5.6. tak jsem zkusil tu samou šablonu aktivovat na savana.cz kde již používají místo MySQL novou MariaDB a tam vše funguje bez problémů.
Na Forpsi.com se zatím tváří tak, že si mám stránky nastavit tak aby mi fungovaly :-) tedy rezignovat na “one page layout” a o nějakém přechodu z MySQL 5.5. na novější verzi ani zmínka.
Nesetkal jste se někdo s podobným problémem a jak ho případně řešíte?
Děkuji
https://wordpress.org/about/requirements/
pro výpis stránek na
index.php
používám toto:$args = array( 'sort_order' => 'ASC', 'sort_column' => 'menu_order', //post_title 'hierarchical' => 1, 'exclude' => '', 'child_of' => 0, 'parent' => -1, 'exclude_tree' => '', 'number' => '', 'offset' => 0, 'post_type' => 'page', 'post_status' => 'publish' ); $pages = get_pages($args); //start loop foreach ($pages as $page_data) { $content = apply_filters('the_content', $page_data->post_content); $title = $page_data->post_title; $slug = $page_data->post_name; $page_id = $page_data->ID; ?> <?php if ( have_posts() ) : ?> ... KOD PRO ZOBRAZENÍ NADPISU atd... <?php endif; ?>
28. června 2016 (15:46) #28145evidentně není splněná podmínka
if ( have_posts() ) :
protože vypisuje HTML kod až poelse:
Ale moc nechápu co udělat jinak když je to snad správně podle CODEXU
https://codex.wordpress.org/Function_Reference/get_pages29. června 2016 (22:22) #28160Funkce
get_pages()
s používá pro získání stránek (na základě nějakých zvolených parametrů), ale výsledkem je pouze proměnná (pole), kde jsou výsledky uloženy. Pokud je chcete zobrazovat v rámci smyčky (loop), tak musíte použít WP_Query() (s trochu jinými parametry) a potom by měla i funkcehave_posts()
správně identifikovat získané stránky.Problém s novou verzí WordPressu 4.5.3 jsem moc nepochopil. Naznačujete, že po automatické aktualizaci na tuto verzi přestal WordPress správně fungovat (a to pouze na jednom hostingu)? Není tam spíše nějaký konflikt s pluginy či používanou šablonou? MySQL verze 5.5 by určitě neměl být problém, spíše mě napadá, jestli nedošlo při aktualizaci k nějakému problému s oprávněním souborů (Forpsi má pro tyto účely nějaké opravné tlačítko v administraci hostingu).
29. června 2016 (23:05) #28162Použití funkce get_pages() jsem použil na základě nějakého článku na anglickém foru wordpressu a ve výše uvedeném zdrojovém kódu není uvedeno to co se děje když je splněna podmínka IF HAVE PoST protože smyčka fungovala několik týdnů bez problémů (je to nově spuštěný web) tuším od verze WordPressu 4.4.4. až do okamžiku kdy se automaticky nainstalovala nová verze WP 4.5.3..
Ve smyčce se pak používalo echo “$title”, echo “$content” atd. viz část kódu v mém prvním příspěvku.
Šablonu (již několikátou) jsem si vytvářel sám a pluginy v podstatě kromě PHOTOSWIPE galerie a SEO nepoužívám. První co jsem udělal když stránky přestaly fungovat resp. se nevypisoval obsah smyčky, že jsem vypnul všechny pluginy. Pak jsem hledal doporučené požadavky na PHP a MySQL na serveru a zjistil, že u forpsi jsem měl PHP a MySQL nižších verzí než je doporučováno. PHP jsem s pomocí FORPSI navýšil ale u MySQL je nejvyšší verze u FORPSI 5.5. přičemž je doporučeno 5.6.. Proto jsem nainstaloval stejnou verzi WP a nachlup stejnou šablonu na server SAVANY kde už mají nástupce MySQL tedy MariaDB verze 10 a stránky normálně fungovaly.
Dnes jsem zkusil přeinstalovat WP u FORPSI zpět na starší verzi WP 4.4.4. a zabránil automatické aktualizaci WP v souboru wp-config.php a web opět běží. Nevím čím to je ale na FORSPI se mi poslední dobou stávalo i v ADMINU WP, že se objevila bleděmodrá obrazovka s chybou 500 INTERNAL SERVER ERROR a nefungovalo na webu nic přestože se FORPSI tváří, že vše funguje správně a problém je na mé straně ;-)
Domnívám se, že se podobný problém při strandardním QUERY tedy výpisu příspěvků pomocí smyčky a samostatných stránek pomocí SINGLE.php neprojevuje a WP funguje správně. Dokonce jsem si to i vyzkoušel na stejné šabloně když jsem vynechal GET_PAGES () tak vše fungovalo krásně. Ale tím, že jsem chtěl mít jednostránkový layout jsem možná narazil na nějakou chybu, která se projeví v určité kombinaci PHP a MySQL … nevím, nejsem odborník.
Asi zkusím jednostránkový layout vytvořit pomocí WP_Query jak navrhujete a třeba to pak bude vše fungovat i na WP 4.5.3.
29. června 2016 (23:16) #28163Ani nevím proč jsem WP_Query pro výpis post-type=pages nepoužil :-)
Není možné, že to v dřívejších verzích WP nešlo a byl podporován pouze post_type=post ? -
AutorPříspěvky
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.