Загрузите страницу Wordpress, используя jQuery, чтобы сделать сайт 1 страницей - PullRequest
0 голосов
/ 14 декабря 2018

Я создал сайт WordPress с минимум 6-7 страницами различного содержания.Я сделал так, чтобы он вел себя как одностраничный веб-сайт, используя пользовательский шаблон с фиксированным числом страниц с кодом ниже.

$args = array(
      'post_type' => 'page',
      'orderby' => 'menu_order',
      'order' => 'asc',
      'post__in' => array(10,12,202,14,16,18,208,20) //list of page_ids
    );
    $page_query = new WP_Query( $args );
    //echo 'Post Id='.$post->ID;
    if( $page_query->have_posts() ) :
    echo '<div class="pages-on-page">';
    //print any general title or any header here//
    while( $page_query->have_posts() ) : $page_query->the_post();
    echo '<div class="page-on-page" id="page_id-' . $post->ID . '">';
    $content_post = get_post($post->ID);
    $content = $content_post->post_content;
    $content = apply_filters('the_content', $content);
    $content = str_replace(']]>', ']]&gt;', $content);
echo $content;
    //print any output you want per page//
    echo '</div>';
    endwhile;
    echo '</div>';

Работает нормально, пока я не добавлю новую страницу для отображения.Может ли кто-нибудь предложить мне, как сделать его динамическим, чтобы мне не пришлось указывать фиксированный номер идентификатора страницы в массиве.

1 Ответ

0 голосов
/ 14 декабря 2018

Чтобы перечислить идентификаторы всех страниц, вы можете использовать wp_list_pluck, как показано ниже

$pages = get_pages(
    array (
        'parent'  => 0, // replaces 'depth' => 1,
        'exclude' => '3,5,11'
    )
);

$ids = wp_list_pluck( $pages, 'ID' );

сейчас

'post__in' => $ids
...