Заказ WordPress пользовательских сообщений по пользовательским полям - PullRequest
1 голос
/ 16 апреля 2020

Я пытаюсь заказать пользовательские сообщения по пользовательским полям. это мой код.

$paged = get_query_var('paged') ? get_query_var('paged') : 1; 
$args = array(  
    'post_type' => 'pql_Servay',
    'paged' => $paged,
    'post_status' => 'publish',
    'posts_per_page' => 2, 
    'orderby' => 'meta_value',
    'orderby'   => 'meta_value_num',
    'meta_key'  => 'question_order',
    'order' => 'ASC'
);

Этот код работает для отображения всех сообщений на одной странице. Но я хочу отображать одно сообщение на странице.

Я использую этот код для получения ссылки на страницу следующего сообщения.

<a href="<?php echo get_next_posts_link(); ?>">Next Post</a>

Но Когда я нажимаю эту ссылку, на следующей странице также отображается первое сообщение , Короче следующий пост отображает тот же пост на первой странице.

Я создаю шорткод для отображения этих сообщений.

Вот полный шорткод

<?php 

add_shortcode( 'PreQualifyingLeads', 'PreQualifyingLeads_shortcode');

function PreQualifyingLeads_shortcode(){

    $paged = get_query_var('paged') ? get_query_var('paged') : 1; 
    $args = array(  
        'post_type' => 'pql_Servay',
        'paged' => $paged,
        'post_status' => 'publish',
        'posts_per_page' => 2, 
        'orderby' => 'meta_value',
        'orderby'   => 'meta_value_num',
        'meta_key'  => 'question_order',
        'order' => 'ASC'
    );

    ?>
    <div class="pql-wrapper">
        <div class="title-wrapper">
            <h2>This is page  Title </h2>
        </div>
        <div class="Question-Wrapper">
            <?php 
                $loop = new WP_Query( $args );
                if($loop->have_posts()){

                    while ( $loop->have_posts() ) {
                     $loop->the_post(); 
                    echo  the_title( ).'<br>';
                    }
                }

                wp_reset_postdata(  );             
            ?>

            <a href="<?php echo get_next_posts_link()?>">Next Post</a>


        </div>
    </div>
    <?php
}

Ответы [ 2 ]

1 голос
/ 16 апреля 2020

Вам необходимо добавить параметр paged в ваш запрос следующим образом:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
'paged' => $paged

Ваш wp-запрос должен выглядеть следующим образом:

$paged = get_query_var('paged') ? get_query_var('paged') : 1; 
$args = array(  
    'post_type' => 'pql_Servay',
    'paged' => $paged
    'post_status' => 'publish',
    'posts_per_page' => 1, 
    'orderby' => 'meta_value',
    'orderby'   => 'meta_value_num',
    'meta_key'  => 'question_order',
    'order' => 'ASC'
);
0 голосов
/ 16 апреля 2020

Попробуйте это может быть его запустить

$args = array(  
    'post_type'      => 'pql_Servay',
    'paged'          => $paged
    'post_status'    => 'publish',
    'posts_per_page' => 1,
    'orderby'        =>   array(
      'question_order'=>'ASC
     )
 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...