Worpdress 4.5.3. one page layout

Ú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á 7 let, 9 měsíců.

Aktuálně je na stránce zobrazeno 5 příspěvků - 1. až 5. (z celkem 5)
  • Autor
    Příspěvky
  • #28144

    tom@s
    Participant

    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; ?>
    #28145

    tom@s
    Participant

    evidentně není splněná podmínka if ( have_posts() ) :
    protože vypisuje HTML kod až po else:

    Ale moc nechápu co udělat jinak když je to snad správně podle CODEXU
    https://codex.wordpress.org/Function_Reference/get_pages

    #28160

    admin
    Keymaster
    Web

    Funkce 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 funkce have_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).

    #28162

    tom@s
    Participant

    Použ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.

    #28163

    tom@s
    Participant

    Ani 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 ?

Aktuálně je na stránce zobrazeno 5 příspěvků - 1. až 5. (z celkem 5)

Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.

WordPress – novinky, návody a zajímavosti