Nefungující stránka chráněná heslem

Úvodní stránka Fórum podpory WordPressu Problémy s WordPressem Nefungující stránka chráněná heslem

Zvolené téma obsahuje celkem 11 odpovědí. Do diskuze (5 účastníků) se naposledy zapojil uživatel  admin a poslední změna je stará 10 let, 2 měsíce.

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

    carly
    Participant

    Zdravím,
    mám nastavenou v adminu stránku na heslo, ale vůbec to nefunguje. Tváří se to jako by to byla obyčejná stránka bez hesla. Když na ni kliknu, tak vidím veškerý obsah a ne něco jako zadejte heslo.

    Je to má vlastní šablona a tipuji, že jsem tam nedopsal nějákou podmínku pro zaheslovanou stránku.

    Stránka, kterou potřebuji mít zaheslovanou nečte z výchozí šablony page.php, ale
    vlastni-stranka.php
    Zde je obsah souboru vlastni-stranka.php:

    < ?php
    $cat_args=array(
    'orderby' => 'name',
    'order' => 'ASC',
    );
    $categories=get_categories($cat_args);
    foreach($categories as $category) {
    $args=array(
    'showposts' => -1,
    'category__in' => array($category->term_id),
    'caller_get_posts'=>1,
    'post_type' => 'katalogy'
    );
    $posts=get_posts($args);
    if ($posts) {
    echo '<div class="clear"></div><div class="category-name">' . $category->name.' </div> ';
    foreach($posts as $post) {
    setup_postdata($post);
    // obsah
    ?>

    Poprosím o každé rady. Díky.

    #17398

    davidulus
    Participant
    #17399

    carly
    Participant

    To je mi k ničemu. Stránka mi vůbec nevrací, abych zadal heslo.

    #17400

    mirekk
    Participant
    Web

    A jsi odhlášen z administrace?

    #17401

    carly
    Participant

    Ano.

    #17402

    admin
    Keymaster
    Web

    Nerozumím moc tomu kódu… Tam nejde o klasické stránky, ale vlastní typ obsahu katalogy. Která je vlastně ta hlavní zaheslovaná stránka? Vůbec to není v kódu uvedeno, je tam pouze výpis nějakých souvisejících katalogů?

    #17403

    carly
    Participant

    Přesně tak. Je tam výpis článku z custom post type.

    Ve zkratce to vypíše všechny kategorie a všechny články daných kategorií pod sebe daného post typu.

    A výpis mám na obyčejné zaheslované stránce, která nenačíta z page.php ale vlastni-soubor.php, aby bylo možné načítat ten custom post type.

    #17404

    admin
    Keymaster
    Web

    Ano, ale klasická funkce zaheslované stránky (tedy zadáním hesla v administraci) funguje podle mě pouze pro obsah této stránky, který je v hlavním (primárním) loopu a může tak být zobrazován např. pomocí funkce the_content() (a samozřejmě další související věci, např. komentáře). Výpis příspěvků vlastního typu obsahu s tím nijak nesouvisí… Pokud chcete skrýt celý tento výpis, tak to budete muset udělat trochu jinak, např. podmínkou pomocí funkce post_password_required().

    #17405

    carly
    Participant

    tak jsem z toho udělal podmínku, do toho jsem dal pole pro zobrazení hesla atd a do else jsem obalil stávající kód. Bohužel to stále nefunguje a obsah se normálně zobrazuje.

    Kód vypadá takto:

    <?php if ( post_password_required() ) { ?>
    <form method="post" action="/wp-login.php?action=postpass">
    <input type="password" name="post_password"/>
    <input type="submit" value="Submit" name="Submit"/></p>
    </form>
    <?php } else { ?>
    <?php

    $cat_args=array(
    'orderby' => 'name',
    'order' => 'ASC',
    );
    $categories=get_categories($cat_args);
    foreach($categories as $category) {
    $args=array(
    'showposts' => -1,
    'category__in' => array($category->term_id),
    'caller_get_posts'=>1,
    'post_type' => 'katalogy'
    );
    $posts=get_posts($args);
    if ($posts) {
    echo '<div class="clear"></div><div class="category-name">' . $category->name.' </div> ';
    foreach($posts as $post) {
    setup_postdata($post); ?>
    //obsah souboru
    <?php
    } // foreach($posts
    } // if ($posts

    } // foreach($categories
    ?>

    #17406

    ScheRas
    Participant
    Web

    Doporučil bych Vám se podívat na to, jak to řeší oficiální šablony (Twenty Fourteen, Twenty Thirteen apod.). To by Vás mohlo nakopnout.

    #17407

    carly
    Participant

    No něják to už vyřeším.

    Díky.

    #17408

    admin
    Keymaster
    Web

    Funkce post_password_required() bude fungovat pouze v hlavním (primárním) loopu stránky, tedy mezi

    while ( have_posts() ) : the_post();

    a

    endwhile;

    Pokud ji chcete použít až za obsahem samotné stránky pro nějaký další výpis, tak ten další výpis musíte buď “zanořit” do něj nebo použít ID stránky jako parametr pro tuto funkci.

    Prohlédnout si můžete příklad z šablony Twenty Ten.

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

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

WordPress – novinky, návody a zajímavosti