Mai multe pagini afișate pe o singură pagină în WordPress

4 mai 2014, 21:12:56
Vizualizări: 16.6K
Voturi: 1

Am următorul cod (creat cu amabilitate de alchemyth ca răspuns la o întrebare pe care am postat-o pe forumul WordPress.org aici) pe care sper să-l folosesc pentru a afișa mai multe pagini pe o singură pagină:

<?php
$args = array(
  'post_type' => 'page',
  'post__in' => array( 2, 5, 35, 67 ) //listă cu ID-urile paginilor
);
$page_query = new WP_Query( $args );
if( $page_query->have_posts() ) :
echo '<div class="pages-on-page">';
//afișează aici orice titlu general sau antet//
while( $page_query->have_posts() ) : $page_query->the_post();
echo '<div class="page-on-page" id="page_id-' . $post->ID . '">';
//afișează aici orice conținut dorești pentru fiecare pagină//
echo '</div>';
endwhile;
echo '</div>';
else:
//text opțional dacă nu sunt găsite pagini//
endif;
wp_reset_postdata();
?>

Ca începător, nu sunt sigur unde să pun acest cod ca să funcționeze! Aș fi foarte recunoscător dacă cineva m-ar putea ajuta cu asta.

0
Toate răspunsurile la întrebare 2
16

Aruncă o privire la Șabloane de Pagini Wordpress;

Poți crea un fișier cu o structură care să se potrivească temei tale curente și să plasezi codul tău în zona de conținut (sau să plasezi un action hook pentru conținutul tău special).

Exemplu pentru Twenty Twelve:

/*
Template Name: Pagina Mea Personalizată
*/

get_header(); ?>

<div id="primary" class="site-content">
    <div id="content" role="main">

        <?php
        $args = array(
          'post_type' => 'page',
          'post__in' => array( 2, 5, 35, 67 ) //lista de ID-uri de pagini
        );
        $page_query = new WP_Query( $args );
        if( $page_query->have_posts() ) :
        echo '<div class="pages-on-page">';
        //afișează orice titlu general sau antet aici//
        while( $page_query->have_posts() ) : $page_query->the_post();
        echo '<div class="page-on-page" id="page_id-' . $post->ID . '">';
        //afișează orice ieșire dorești pentru fiecare pagină//
        echo '</div>';
        endwhile;
        echo '</div>';
        else:
        //text opțional aici dacă nu sunt găsite pagini//
        endif;
        wp_reset_postdata();
        ?>

    </div><!-- #content -->
</div><!-- #primary -->

****Nu uita să începi fișierul cu < ? php

Salvează acest cod ca un fișier PHP cu aproape orice nume your_custom_template.php și plasează-l în folderul temei tale child. Apoi adaugă o pagină nouă și atribuie șablonul de pagină ca Pagina Mea Personalizată așa cum se vede mai sus în cod.

Asta ar trebui să te ajute să începi cel puțin suficient pentru a-ți vedea codul pe partea frontală a site-ului.

4 mai 2014 21:18:11
Comentarii

Am introdus codul într-o pagină folosind un plugin PHP cu 'șablon implicit' și 'fără părinte' - dar nu funcționează - ce greșesc?

martin martin
4 mai 2014 21:23:21

Mai întâi aș avea nevoie să știu despre ce plugin vorbești. Dar înainte de asta, ai verificat linkul către Wordpress Codex pe care l-am dat în răspunsul meu?

Douglas.Sesar Douglas.Sesar
4 mai 2014 21:27:37

Plugin-ul este aici. Și da, l-am verificat, dar trebuie să recunosc că o mare parte din informații mă depășește - voi persevera!

martin martin
4 mai 2014 21:30:53

Ce temă folosești? Aș putea să te ajut cu un șablon exemplu pentru început.

Douglas.Sesar Douglas.Sesar
4 mai 2014 21:40:47

Folosesc twentytwelve - dar am creat deja un child theme, deoarece am făcut câteva modificări.

martin martin
4 mai 2014 21:42:49

Ar fi util să postez URL-ul meu?

martin martin
4 mai 2014 21:52:13

Mulțumesc foarte mult - totuși, nu am nicio opțiune de a crea o pagină personalizată în modul de editare a paginii. - Doar "șablon implicit", "șablon pentru pagina principală", "șablon pentru pagină completă" și "sus".

martin martin
4 mai 2014 21:56:46

Aveți acces FTP la site-ul dvs.? Puteți să trageți și să plasați un fișier în folder

Douglas.Sesar Douglas.Sesar
4 mai 2014 21:57:23

Da - fișierul este acum în folderul child. Cum îl apelez?

martin martin
4 mai 2014 21:59:09

Doar reîmprospătează pagina unde editezi o pagină în zona de administrare WordPress. Ar trebui să apară acum în meniul derulant al șabloanelor de pagină

Douglas.Sesar Douglas.Sesar
4 mai 2014 21:59:46

Din păcate nu funcționează - îmi pare rău, probabil e foarte frustrant pentru tine - se pare că omit ceva foarte evident!

martin martin
4 mai 2014 22:06:40

Eu doar copiez codul de mai sus și adaug < ? php la început, este corect?

martin martin
4 mai 2014 22:17:44

Am încercat să-l adaug în folderul public_html (folderul root) și să-l apelez direct în bara de adrese - doar pagină albă :(

martin martin
4 mai 2014 22:26:44

Trebuie să-ți mulțumesc pentru ajutor - îmi pare rău că nu am reușit să-l fac să funcționeze! :/

martin martin
4 mai 2014 22:53:30

Trebuie să adaugi codul pentru output //afișează orice output dorești pe pagină//

Brad Dalton Brad Dalton
5 mai 2014 00:58:05

@ Brad Dalton - mulțumesc mult - în sfârșit o descoperire!!

martin martin
5 mai 2014 13:51:54
Arată celelalte 11 comentarii
1

Acest cod funcționează pentru mine cu tema WP Twenty Twelve, nu uitați să schimbați ID-urile paginilor

<?php
/*
Template Name: Pagina mea personalizată
*/

get_header();
$args = array(
    'posts_per_page' => get_option('posts_per_page'), // valoarea implicită este preluată din setări, dar poți folosi și o valoare personalizată
    'paged'          => $current_page // pagina curentă
    );
    query_posts(
    array( 'post_type'=>'page', 'post__in' => array( 6891, 9400 ) ) //schimbă ID-urile paginilor
); ?>

<div id="primary" class="site-content">
    <div id="content" role="main">
<?php
            while ( have_posts() ) :
                the_post();
                ?>
                <?php if ( has_post_thumbnail() ) : ?>
                    <div class="entry-page-image">
                        <?php the_post_thumbnail(); ?>
                    </div><!-- .entry-page-image -->
                <?php endif; ?>

                <?php get_template_part( 'content', 'page' ); ?>

                <?php endwhile; // sfârșitul buclei. ?>

    </div><!-- #content -->
    </div><!-- #primary -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>
2 mai 2020 02:06:07
Comentarii

Salut! Mulțumim pentru contribuția ta și bun venit pe WordPress.StackExchange! Câteva lucruri de luat în considerare pentru o posibilă [editare] a răspunsului tău, care ar putea atrage mai multe voturi pozitive și astfel să-ți deschidă mai multe posibilități pe acest site: Te rog să ai în vedere că nu toată lumea poate citi caractere chirilice. De asemenea, ajută să explici de ce fragmentul tău de cod îl va ajuta pe OP să-și rezolve problema. Sper că aceste informații îți sunt utile! O zi frumoasă!

kaiser kaiser
2 mai 2020 03:44:30