Mai multe pagini afișate pe o singură pagină în WordPress
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.
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.
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
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
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
Ce temă folosești? Aș putea să te ajut cu un șablon exemplu pentru început.
Douglas.Sesar
Folosesc twentytwelve - dar am creat deja un child theme, deoarece am făcut câteva modificări.
martin
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
Aveți acces FTP la site-ul dvs.? Puteți să trageți și să plasați un fișier în folder
Douglas.Sesar
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
Din păcate nu funcționează - îmi pare rău, probabil e foarte frustrant pentru tine - se pare că omit ceva foarte evident!
martin
Eu doar copiez codul de mai sus și adaug < ? php la început, este corect?
martin
Am încercat să-l adaug în folderul public_html (folderul root) și să-l apelez direct în bara de adrese - doar pagină albă :(
martin
Trebuie să-ți mulțumesc pentru ajutor - îmi pare rău că nu am reușit să-l fac să funcționeze! :/
martin
Trebuie să adaugi codul pentru output //afișează orice output dorești pe pagină//
Brad Dalton
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(); ?>
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