Пользовательский плагин WordPress последних сообщений не будет ограничивать сообщения - PullRequest
1 голос
/ 29 сентября 2019

Возился с циклом while, а также с параметрами запроса, но не могу понять, из-за чего следующий пользовательский код не ограничивает сообщения:

/**
 * Plugin Name: Latest posts
 */

add_action( 'widgets_init', 'weart_latest_posts' );

function weart_latest_posts() {
    register_widget( 'weart_latest_posts' );
}

class weart_latest_posts extends WP_Widget {

    //widget setup
    function weart_latest_posts() {
        $widget_ops = array( 'classname' => 'weart_latest_posts', 'description' => esc_html__('A widget that displays the latest posts.', 'custom') );
        $control_ops = array( 'width' => 250, 'height' => 350, 'id_base' => 'weart_latest_posts' );
        $this->__construct( 'weart_latest_posts', esc_html__('Custom: Latest Posts Widget', 'custom'), $widget_ops, $control_ops );
    }

    //display the widget
    function widget( $args, $instance ) {
        extract( $args );
        global $post;
        $title = apply_filters('widget_title', $instance['title'] );
        $number = $instance['number'];

        /* Before widget (defined by themes). */
        echo $before_widget;

        /* Display the widget title if one was input (before and after defined by themes). */
        if ( $title )
            echo $before_title . $title . $after_title;
        ?>

    <?php 
        $args1 = array(
        'cat' => 'RECIPES',
        'nopaging' => false,
        'posts_per_page' => '5',
        'found_posts' => '5',
        'max_num_pages' => '5',
        'post_count' => '5',
        'order'  => 'DESC',
        'orderby' => 'ID',
    );



         $query = new WP_Query( $args1 ); 
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();

            ;?>


<a href="<?php the_permalink(); ?>" class="block cf item border-top">
              <?php if ( has_post_thumbnail()) : ?>
              <div class="featured-image col col-one-third img" data-mh="latest_posts_height">
                <div class=""><div class="bg lazy" data-src="<?php the_post_thumbnail_url( 'weart-related-thumb'); ?>"></div></div>
              </div>
                <?php endif; ?>
              <div class="text col <?php if ( has_post_thumbnail()) : ?>col-two-third<?php endif; ?>" data-mh="latest_posts_height">
                <div class="<?php if ( has_post_thumbnail()) : ?>inner-left text-vertical<?php endif; ?>">
                    <h3 class="title h4"><?php the_title(); ?></h3>
                    <div class="meta c-grey link-grey meta-meta"><time datetime="<?php echo esc_attr(get_the_date('Y-m-d')); ?>"> <?php echo esc_attr(get_the_date()); ?></time></div>
                </div>
              </div>
            </a>


<?php }

} else {

} wp_reset_postdata(); 

?>





        <?php

        /* After widget (defined by themes). */
        echo $after_widget;

    }

    //update widget
    function update( $new_instance, $old_instance ) {
        $instance = $old_instance;

        $instance['title'] = strip_tags( $new_instance['title'] );
        $instance['number'] = '5';

        return $instance;
    }

    //form for update
    function form( $instance ) {
        //defaults
        $defaults = array( 'title' => esc_html__('Latest Recipes', 'custom'), 'number' => 5, 'popular_days' => 30 );
        $instance = wp_parse_args( (array) $instance, $defaults ); ?>

        <p><!-- title -->
            <label for="<?php echo esc_attr($this->get_field_id( 'title' )); ?>">Title:</label>
            <input id="<?php echo esc_attr($this->get_field_id( 'title' )); ?>" name="<?php echo esc_attr($this->get_field_name( 'title' )); ?>" value="<?php echo esc_attr($instance['title']); ?>" style="width:90%;" />
        </p><!-- title -->

        <p><!-- posts num -->
            <label for="<?php echo esc_attr($this->get_field_id( 'number' )); ?>">Number of posts to display:</label>
            <input id="<?php echo esc_attr($this->get_field_id( 'number' )); ?>" name="<?php echo esc_attr($this->get_field_name( 'number' )); ?>" value="<?php echo esc_attr($instance['number']); ?>" size="3" />
        </p><!-- posts num -->


    <?php
    }
}

?> 

Я думал, что запросparams привел бы к тому, что мне было нужно, и поиграл с тем, чтобы оба они были переменными, а также непосредственно в выражении.

1 Ответ

0 голосов
/ 29 сентября 2019

Попробуйте удалить эти:

'nopaging' => false,
'found_posts' => '5',
'max_num_pages' => '5',
'post_count' => '5',

и передать идентификатор категории этому:

'cat' => 
...