Стандартный WordPress L oop с аргументами - как правильно кодировать - PullRequest
0 голосов
/ 27 января 2020

Мне сказали, что мой код l oop не соответствует стандартам шаблонов WP.

Из того, что я понимаю ... вот стандарт L oop в очень простом виде c page:

<?php
get_header();

if ( have_posts() ) : 
    while ( have_posts() ) : the_post();
        the_content();
    endwhile;
else :
    _e( 'Sorry, no posts matched your criteria.', 'textdomain' );
endif;

get_sidebar();
get_footer();
?>

Как добавить аргументы в стандартный запрос l oop? См. Пример аргументов, перечисленных ниже:

 $args = array(
    'post_type' => 'post',
    'post_status' => 'publish',
    'order'=> 'DESC', 
    'orderby' => 'post_date', 
    'category_name' => 'Recipes',
    'posts_per_page' => 9,
    'paged' => $paged,
);

Вот пример одной попытки, которую я использовал для своей страницы постов в блогах:

    <?php 
        $paged = (get_query_var( 'paged' )) ? get_query_var( 'paged' ) : 1;     
        $args = array(
                'post_type' => 'post',
                'post_status' => 'publish',
                'order'=> 'DESC', 
                'orderby' => 'post_date', 
                'posts_per_page' => 9,
                'paged' => $paged,
            );
        $postslist = get_posts( $args );
        foreach ($postslist as $post) :  setup_postdata($post); 
    ?> 
            <div class="col-lg-4 col-md-4 col-sm-6 col-xs-12 home-blog-list" style="float: left; display:block">                
                <center><div class="img-responsive box-shadow shadow-effect" style=""><a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a></div>
                <h3 class="entry-title script" style="text-align: center;"><a class="entry-title-link" href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3><center>
            </div>
        <?php endforeach; ?>
    <?php wp_pagenavi(); ?>

Майн использует foreach вместо if / while .

Вот еще один пример, который я нашел при поиске ... это лучший способ добавить аргументы в базу c l oop? Он использует if / while logi c, но также использует WP_Query:

<?php
    $paged = (get_query_var( 'paged' )) ? get_query_var( 'paged' ) : 1;
    $args = array(
        'post_type' => 'post',
        'post_status' => 'publish',
        'category_name' => 'wordpress',
        'posts_per_page' => 5,
        'paged' => $paged,
    );
    $arr_posts = new WP_Query( $args );

    if ( $arr_posts->have_posts() ) :

        while ( $arr_posts->have_posts() ) :
            $arr_posts->the_post();
?>

            <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
                <?php
                if ( has_post_thumbnail() ) :
                    the_post_thumbnail();
                endif;
                ?>
                <header class="entry-header">
                    <h1 class="entry-title"><?php the_title(); ?></h1>
                </header>
                <div class="entry-content">
                    <?php the_excerpt(); ?>
                    <a href="<?php the_permalink(); ?>">Read More</a>
                </div>
            </article>

<?php
        endwhile;
        wp_pagenavi(
            array(
                'query' => $arr_posts,
            )
        );
    endif;
?>

Верен ли любой из приведенных выше примеров? Или же, кто-то может предоставить лучший способ кодирования basi c l oop с аргументами?

Спасибо, SunnyOz

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...