funkce query_posts

Zvolené téma obsahuje celkem 22 odpovědí. Do diskuze (3 účastníci) se naposledy zapojil uživatel  Speedi a poslední změna je stará 4 roky, 7 měsíců.

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

    Speedi
    Participant

    Ahoj, psal jsem ti na foru dgx.cz které právě nejede.. Jak mám vyřešit to stránkování když mi pomocí toho

    global $paged;
    query_posts('author=-3&cat=-3&paged='.$paged);

    nefunguje?

    #9490

    neteyescz
    Participant

    Zdravím,

    Nevím co přesně chcete, tuším ale, že chcete vytvořit stránkování bez pluginu a chválím to. Doporučuji pročíst návody, je jich velká kupa.

    http://www.nabito.net/snadne-strankovani-ve-wordpress-bez-pluginu/

    http://www.kriesi.at/archives/how-to-build-a-wordpress-post-pagination-without-plugin

    http://design.sparklette.net/teaches/how-to-add-wordpress-pagination-without-a-plugin/

    http://www.catswhocode.com/blog/how-to-integrate-a-pagination-in-your-wordpress-theme

    A další… Stačí hledat: “Wordpress paginate without plugin” na Google.

    Dále doporučuji prostudovat funkci query_posts:

    http://codex.wordpress.org/Function_Reference/query_posts

    Neteyes.cz

    #9491

    Speedi
    Participant

    No návodů už mám přečteno spousty a žádný z příkladů mi nefungoval..

    Používám šablony z Artisteer a kod vypadá takto:

    <?php
    /*
    Template Name: Uvod
    */
    ?>

    <?php
    get_header();
    query_posts('cat=9');
    if (have_posts())
    {
    while (have_posts())
    {
    art_post();
    }
    art_page_navi();
    } else {
    art_not_found_msg();
    }

    get_footer();

    Neoen mi co jsem stihl přečíst psal že by to mohlo jít pomocí WP_Query() ale nevím jak.

    #9492

    neteyescz
    Participant

    A co takhle přesně podle návodu na http://design.sparklette.net/teaches/how-to-add-wordpress-pagination-without-a-plugin/ ?

    První kód vložíte do functions.php, nastalujete si to a pomocí krátkého kódu vložíte do šablony:

    <?php if (function_exists("pagination")) {
    pagination($additional_loop->max_num_pages);
    } ?>

    Zdroj: design.sparklette.net

    #9493

    Speedi
    Participant
    <?php/*Template Name: Hlavní stránka*/?>

    <?php
    get_header();
    query_posts('cat=1');

    if (have_posts())
    {
    while (have_posts())
    {
    art_post();
    }

    if (function_exists("pagination")) {
    pagination($additional_loop->max_num_pages);
    }

    else {
    art_not_found_msg();
    }

    get_footer();

    a hodilo mi to prázdnou stránku.. Vše jsem zkopíroval do functions a i do stylů. :-(

    #9494

    admin
    Keymaster
    Web

    Aha, konkurenční fórum má nějaký výpadek, ale šlo o tento problém, řešil to tam kolega, co se tam už mnoho let vyskytuje…

    A doplním tedy aktuální odpověď:

    Pokud je na hlavní stránce vybraná statická stránka s vlastní šablonou, tak je potřeba kód upravit takto (pouze platí pouze pro tento případ, doporučuji nastudovat):

    $paged = get_query_var( 'page' );
    query_posts( 'cat=1&paged=' . $paged );

    A pozor na soubory, které upravuješ, našel jsem tam dva soubory, které obsahují Template name “Hlavní stránka”, a to rubrika_hl.php i rubrika_kl.php.

    A tvůj další dotaz je velmi správný, protože to jsem ti chtěl také navrhnout :-) Pokud chceš mít na hlavní stránce pouze příspěvky z určité rubriky, tak se automaticky použije soubor index.php (kde to také nastavíš pomocí funkce query_posts() a nemusíš se vůbec zabývat stránkami). A odkaz do menu můžeš dát buď rovnou na úvodní stránku nebo na tuto rubriku = oba budou zobrazovat stejné příspěvky.

    #9495

    admin
    Keymaster
    Web

    neteyescz: To je zcela jiný problém, který sem nepatří :-) On tam nepotřebuje přidat stránkování, ale nefunguje mu. Což ale bylo zřejmé pouze, pokud bys znal starší pozadí z jiného fóra… Speedi nám tu v tom dělá trochu bordel :-)

    Speedi: Ano, bílá stránka tam je proto, že půjde o Fatal error, protože ti tam myslím chybí jedna složená závorka. Ale vůbec to tam nedávej, je to (zatím) zbytečné…

    #9496

    Speedi
    Participant
    <?php/*Template Name: Hlavní*/?>

    <?php
    get_header();
    $paged = get_query_var( 'page' );
    query_posts( 'cat=1&paged=' . $paged );

    if (have_posts())
    {
    while (have_posts())
    {
    art_post();
    }
    }
    art_page_navi();

    }

    else {
    art_not_found_msg();
    }

    get_footer();

    a zase mám bílo.. Tak co furt dělám špatně?

    #9497

    Speedi
    Participant

    Hoši sorry za ten bordel jak to zpravím tak mě vykopněte :-D ale teď mi pomocte :-D

    #9498

    admin
    Keymaster
    Web

    Speedi: Použij kód z prvního příspěvku a ten pak doplň o uvedenou úpravu, někde jsi tam zapomněl složenou závorku (nebo tam je navíc)…

    #9499

    Speedi
    Participant
    <?php/*Template Name: Hlavní*/?>

    <?php
    get_header();

    global $paged = get_query_var( 'page' );
    query_posts( 'cat=1&paged=' . $paged );

    if (have_posts())
    {
    while (have_posts())
    {
    art_post();
    }
    art_page_navi();
    } else {
    art_not_found_msg();
    }

    get_footer();

    a nic :-( napiš to prosím celé ten kod jak má vypadat..

    #9500

    neteyescz
    Participant

    Takže teď všechno táhneme my :-)

    #9501

    admin
    Keymaster
    Web

    A “nic” co? V čem je problém teď? Mělo by to už být myslím dobře…

    <?php
    /*
    Template Name: Hlavní stránka
    */

    get_header();
    $paged = get_query_var('page');
    query_posts('cat=1&paged='.$paged);
    if (have_posts()) {
    while (have_posts()) {
    art_post();
    }
    art_page_navi();
    }
    else {
    art_not_found_msg();
    }
    get_footer();

    Navíc ti tam asi zůstalo slovo global

    #9502

    admin
    Keymaster
    Web

    neteyescz: Asi jenom mění hosting nebo mají výpadek :-)

    #9503

    Speedi
    Participant

    “Výpadek” už mají 3 dny..

    Děkuji už to jede :) Jste sqwělí chlapi.. :-)

    #9504

    neteyescz
    Participant

    A co takhle?

    <?php
    $paged = get_query_var( 'page' );
    query_posts( 'cat=1&paged=' . $paged );

    if (have_posts())
    {
    while (have_posts())
    {
    art_post();
    }
    art_page_navi();
    } else {
    art_not_found_msg();
    }
    ?>

    #9505

    neteyescz
    Participant

    Au, Admin to stihl dřív, to neplatí :-D

    #9506

    admin
    Keymaster
    Web

    neteyescz: Platí :-) Mimochodem ten první řádek je nějak špatně, ne?

    Opravil jsem formátování celého vlákna a doplním ještě odkaz na manuál (sekce Pagination Parameters), kde je vysvětlena příčina změny z paged na page ve WordPressu 3.0.2.

    A “konkurenční” fórum o WordPressu už také zase funguje, takže je tam možné dohledat celou předchozí diskuzi…

    #9507

    neteyescz
    Participant

    Admin: Prosím o smazání, to je tak, když to člověk píše večer :-)

    #9508

    admin
    Keymaster
    Web

    Už jsem to opravil, byl tam jen problém v prvním řádku, jinak to vylo správně. Celkově to bylo zajímavé vlákno – rychlé odpovědi, několik diskutujících… A nakonec i problém byl vyřešen :-)

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

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

WordPress – novinky, návody a zajímavosti