NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Kamil
Člen
Avatar
Kamil:3.1.2022 21:34

Ahoj,

snažím se vypsat články dle následujícího kodu

  <?php get_header() ?>
  <!---- Main ------->
    <main>
        <section class="posts">

            <?php if ( have_posts() ) : ?>
                <?php while ( have_posts() ) : the_post() ?>
                        <!--- Titulek --->
                        <?php the_title() ?>
                        <!--- Obsah ---->
                        <?php the_content()?>
                <?php endwhile ?>
              <?php else : ?>
                    <p> Nemáme tu žádný článek </p>
              <?php endif ?>
        </section>
    </main>
  <!------------------>
<?php get_footer() ?>

Výsledná stránka index.php mi vrátí výsledek

Rebel Press
Make it rain…

Nemáme tu žádný článek

paticka stranky

Pokud se podívám do databáze vidím zde v tabulce wp_posts záznamy.

Jakmile se podívám přímo na stránku, tak vidím v pořádku výsledek (http://localhost/…gingerbread/)

*Rebel Press
Make it rain…
Sweet muffin gingerbread
Croissant bonbon pie cupcake macaroon carrot cake chocolate bar. Toffee chocolate dragée liquorice chupa chups. Sesame snaps brownie sweet ice cream.

Bear claw sesame snaps cookie powder macaroon bonbon sesame snaps cotton candy croissant. Gingerbread pastry lemon drops chocolate cake. Gummies liquorice biscuit pie topping. Candy gummies halvah sweet marzipan chocolate bar tootsie roll.

Halvah candy canes jelly-o lollipop tart. Oat cake wafer dessert. Ice cream cotton candy tiramisu tiramisu toffee gummi bears gummi bears macaroon danish. Marshmallow chocolate jelly beans soufflé jelly-o caramels liquorice tootsie roll gummies.

*

Můžete mi prosim poradit?

 
Odpovědět
3.1.2022 21:34
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:4.1.2022 9:28

Tvuj prispevek nechapu. Co ti to vypisuje? Co to melo vypsat? Ktery ten text patri do jakeho sloupce v databazi (na obrazku z db zadny vypsany text neni a tak se da tezko rici, ktery sloupec se vypsal tvym php kodem a ktery uz nee)? Jakou verzi wordpress mas?
Ja teda z WP nedelam, ale podle vypisu a dokumentace vidim, ze se asi zobrazuje vse ok. Nedokazi z tveho zadani zjistit, v cem je presne chyba a tys to take nenapsal. Nejspis je chyba v tom, ze se melo vypsat vic nez vypisujes. Ale, kdyz mas spravne kod, tak ti v kodu spis neco schazi, co tam melo byt. Jenze se neda rici co, protoze netusim, jaky sloupec ti schazi.

Tohle je v dokumentaci pro wordpress 5.8.1.
https://developer.wordpress.org/…ns/the_post/

<?php
if ( have_posts() ) {
    while ( have_posts() ) {

        the_post(); ?>

        <h2><?php the_title(); ?></h2>

        <?php the_content(); ?>

    <?php }
}
?>

https://developer.wordpress.org/….php/page/2/
jsou tam 3 stranky funkci. Jedna z nich ti tam nejspis schazi.


A zkousel jsi se divat do source-code stranky? Treba se to vypsalo do stranky jenom je to v komentari nebo neco? (tvuj browser, prave tlacitko, zobrazit zdrojovy kod stranky)

 
Nahoru Odpovědět
4.1.2022 9:28
Avatar
Kamil
Člen
Avatar
Kamil:4.1.2022 23:02

Jde jen jednoduše o to, že se mi vypíše pouze jeden článek do šablony. Všechny ostatní co jsou v databázi do šablony se nepropíší. Je jedno, jaká to šablona je.

 
Nahoru Odpovědět
4.1.2022 23:02
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:5.1.2022 8:11

To je divne. A experimentujes u sebe?

  • Muzes udelat takovy test, ze si zazalohujes tabulku a ten funkcni clanek rozkopirujes do tech ostatnich. Pozor na id! Ty bys mel zachovat.

Totiz, ten while a have_posts, jestli spravne chapu dokumentaci, tak by to mel resit. V podstate je tam stejny priklad jako uvadis.

  • Muzes nainstalovat uplne cisty WP a zkopirovat tam tabulku clanku? Jestli jsi treba editoval sablonu, jestli jsi nekde neco nezmenil. Cili, jestli v ciste verzi to jede, pak se daji hledat rozdily.
  • Mno, a potom ti ten vypis muzu prepsat pomoci tech druhych php funkci, ktere nedelaji echo. Tam jsem si vsiml, ze je nejaky reg-exp, ktery nahrazuje znamenka pro tagy < a >

https://developer.wordpress.org/…the_content/

function the_content( $more_link_text = null, $strip_teaser = false ) {
    $content = get_the_content( $more_link_text, $strip_teaser );

    /**
     * Filters the post content.
     *
     * @since 0.71
     *
     * @param string $content Content of the current post.
     */
    $content = apply_filters( 'the_content', $content );
    $content = str_replace( ']]>', ']]&gt;', $content );
    echo $content;
}

Ale, podle mne have_post z nejakeho duvodu usoudi, ze tam neni dalsi clanek.

function have_posts() {
    global $wp_query;
    return $wp_query->have_posts();
}

Tady je dokonce k wp_query nejaky example, ktery tam muzes zkusit pridat.
https://developer.wordpress.org/…es/wp_query/

<?php

// The Query
$the_query = new WP_Query( $args );

// The Loop
if ( $the_query->have_posts() ) {
    echo '<ul>';
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        echo '<li>' . get_the_title() . '</li>';
    }
    echo '</ul>';
} else {
    // no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
?>

V ARG by mela byt asi prazdna array() nebo post_type $args = array('post_type' => 'post');
https://developer.wordpress.org/…es/wp_query/#…


cili, jeste je tu moznost, ze mas spatne zapsany filtr na query a skutecne to vycuca, podle filtru, 1 clanek

Editováno 5.1.2022 8:13
 
Nahoru Odpovědět
5.1.2022 8:11
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:5.1.2022 8:19

No, a jeste se mohlo stat, ze skutecne ma spravna data a prave nejaky filtr maze obsah.
Protoze jsi zatim nerekl, co jsi nasel v html kodu, tak to muzes udelat i jinak. Viz ten posledni kod, s UL - LI nebo tam pridat nejakou znacku

  <?php get_header() ?>
  <!---- Main ------->
    <main>
        <section class="posts">

            <?php if ( have_posts() ) :  $i = 0; ?> <!--pridano $i = 0; -->
                <?php while ( have_posts() ) : the_post(); $i++; echo "$i."; ?><!--pridano ; $i++; echo "$i."; -->
                        <!--- Titulek --->
                        <?php the_title() ?>
                        <!--- Obsah ---->
                        <?php the_content()?>
                <?php endwhile ?>
              <?php else : ?>
                    <p> Nemáme tu žádný článek </p>
              <?php endif ?>
        </section>
    </main>
  <!------------------>
<?php get_footer() ?>

To by melo vypsat cisla 1, 2, 3... ikdyz je title a content prazdne (protoze v db je to prazdne nebo to smazal nejaky filtr). Tak budes vedet, kolikkrat cyklus probehl a tim padem ti neco smazalo obsah.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
5.1.2022 8:19
Avatar
Kamil
Člen
Avatar
Odpovídá na Peter Mlich
Kamil:5.1.2022 18:30

Ahoj,

děkuji za pomoc. Vyřešeno.

 
Nahoru Odpovědět
5.1.2022 18:30
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:6.1.2022 8:22

Bylo by fajn napsat take v cem byl problem, kdyby se stalo nekomu neco podobneho. Ale, jestli tipuji, ze spis slo o nejake prehlednuti, ktere si cast lidi hned vsimne, cast pozdeji.

 
Nahoru Odpovědět
6.1.2022 8:22
Avatar
Kamil
Člen
Avatar
Odpovídá na Peter Mlich
Kamil:6.1.2022 9:38

Přesně tak. Bylo to přehlednutí.

 
Nahoru Odpovědět
6.1.2022 9:38
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.