정적 페이지에 마지막 3 개 게시물 (최근 게시물)을 표시하는 방법은 무엇입니까?
5 대답
- 투표
-
- 2017-02-01
저는 일반적으로 다음 접근 방식을 사용합니다.
잘못된 접근 방식
<?php query_posts( array( 'category_name' => 'news', 'posts_per_page' => 3, )); ?> <?php if( have_posts() ): while ( have_posts() ) : the_post(); ?> <?php the_excerpt(); ?> <?php endwhile; ?> <?php else : ?> <p><?php __('No News'); ?></p> <?php endif; ?>
@swissspidy의 도움으로 올바른 방법 은 다음과 같습니다.
<?php // the query $the_query = new WP_Query( array( 'category_name' => 'news', 'posts_per_page' => 3, )); ?> <?php if ( $the_query->have_posts() ) : ?> <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <?php the_title(); ?> <?php the_excerpt(); ?> <?php endwhile; ?> <?php wp_reset_postdata(); ?> <?php else : ?> <p><?php __('No News'); ?></p> <?php endif; ?>
자세한 내용은 @codex 를 참조하세요.
I usually use this approach:
wrong approach
<?php query_posts( array( 'category_name' => 'news', 'posts_per_page' => 3, )); ?> <?php if( have_posts() ): while ( have_posts() ) : the_post(); ?> <?php the_excerpt(); ?> <?php endwhile; ?> <?php else : ?> <p><?php __('No News'); ?></p> <?php endif; ?>
With the help of @swissspidy the correct way is this one:
<?php // the query $the_query = new WP_Query( array( 'category_name' => 'news', 'posts_per_page' => 3, )); ?> <?php if ( $the_query->have_posts() ) : ?> <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <?php the_title(); ?> <?php the_excerpt(); ?> <?php endwhile; ?> <?php wp_reset_postdata(); ?> <?php else : ?> <p><?php __('No News'); ?></p> <?php endif; ?>
See @codex for more info.
-
'query_posts ()'를 사용하는 것이 거의 항상 나쁜 생각 인 이유를 보여주기 위해 http://wordpress.stackexchange.com/a/1755/12404를 참조하고 싶습니다.I like to reference to http://wordpress.stackexchange.com/a/1755/12404 in order to show why using `query_posts()` is almost always a bad idea.
- 2
- 2017-02-01
- swissspidy
-
- 2011-12-14
어떻게 하려는지에 따라 다릅니다. "게시물 페이지",즉 새 페이지 템플릿 파일을 만들고 싶다면 해당 페이지에 보조 루프를 만들 수 있습니다.
코덱스 에는 이에 대한 예가 있으며 여기에 아주 잘려진 또 다른 예가 있습니다. p>
<?php /* Template Name: Page of Posts */ get_header(); ?> <?php while( have_posts() ): the_post(); /* start main loop */ ?> <h1><?php the_title(); ?></h1> <?php /* Start Secondary Loop */ $other_posts = new WP_Query( /*maybe some args here? */ ); while( $others_posts->have_posts() ): $other_posts->the_post(); ?> You can do anything you would in the main loop here and it will apply to the secondary loop's posts <?php endwhile; /* end secondary loop */ wp_reset_postdata(); /* Restore the original queried page to the $post variable */ ?> <?php endwhile; /* End the main loop */ ?>
모든 페이지에 놓을 수있는 항목을 찾고 있다면 가장 좋은 솔루션은 단축 코드 . 여러 게시물을 가져 와서 목록 (또는 원하는대로)으로 반환하는 단축 코드를 만들어야합니다. 예 :
<?php add_action( 'init', 'wpse36453_register_shortcode' ); /** * Registers the shortcode with add_shortcode so WP knows about it. */ function wpse36453_register_shortcode() { add_shortcode( 'wpse36453_posts', 'wpse36453_shortcode_cb' ); } /** * The call back function for the shortcode. Returns our list of posts. */ function wpse36453_shortcode_cb( $args ) { // get the posts $posts = get_posts( array( 'numberposts' => 3 ) ); // No posts? run away! if( empty( $posts ) ) return ''; /** * Loop through each post, getting what we need and appending it to * the variable we'll send out */ $out = '<ul>'; foreach( $posts as $post ) { $out .= sprintf( '<li><a href="%s" title="%s">%s</a></li>', get_permalink( $post ), esc_attr( $post->post_title ), esc_html( $post->post_title ) ); } $out .= '</ul>'; return $out; }
It kind of depends on what you're going for. If you want to do a "page of posts" -- other words, create a new page template file -- you can create a secondary loop on that page.
The codex has an example of this and here's another, very stripped down example.
<?php /* Template Name: Page of Posts */ get_header(); ?> <?php while( have_posts() ): the_post(); /* start main loop */ ?> <h1><?php the_title(); ?></h1> <?php /* Start Secondary Loop */ $other_posts = new WP_Query( /*maybe some args here? */ ); while( $others_posts->have_posts() ): $other_posts->the_post(); ?> You can do anything you would in the main loop here and it will apply to the secondary loop's posts <?php endwhile; /* end secondary loop */ wp_reset_postdata(); /* Restore the original queried page to the $post variable */ ?> <?php endwhile; /* End the main loop */ ?>
If you're looking for something that you can drop into any page, the best solution would be a shortcode. You would need to create a shortcode that fetches several posts and returns them in a list (or whatever you want). An example:
<?php add_action( 'init', 'wpse36453_register_shortcode' ); /** * Registers the shortcode with add_shortcode so WP knows about it. */ function wpse36453_register_shortcode() { add_shortcode( 'wpse36453_posts', 'wpse36453_shortcode_cb' ); } /** * The call back function for the shortcode. Returns our list of posts. */ function wpse36453_shortcode_cb( $args ) { // get the posts $posts = get_posts( array( 'numberposts' => 3 ) ); // No posts? run away! if( empty( $posts ) ) return ''; /** * Loop through each post, getting what we need and appending it to * the variable we'll send out */ $out = '<ul>'; foreach( $posts as $post ) { $out .= sprintf( '<li><a href="%s" title="%s">%s</a></li>', get_permalink( $post ), esc_attr( $post->post_title ), esc_html( $post->post_title ) ); } $out .= '</ul>'; return $out; }
-
이것을 header.php에 넣을 수 있습니까,아니면 다른 곳에 넣어야합니까?Can I put this into header.php or should I put it somewhere else?
- 0
- 2011-12-15
- user385917
-
첫 번째 예는 테마의 어느 곳에 나 갈 수 있습니다.두 번째 짧은 코드 예제는`functions.php`에 있어야합니다.The first example can go anywhere in your theme. The second, shortcode, example should go in `functions.php`
- 0
- 2011-12-15
- chrisguitarguy
-
첫 번째 코드 블록에는 3 개의 게시물을 반복 할 수 없습니다.the first block of code doesn't have a to loop over 3 posts
- 0
- 2014-06-10
- Murhaf Sousli
-
- 2012-10-26
이 정확한 사례에 대한 가이드는 워드 프레스 코덱스에 있습니다. 여기 에서 확인하세요. 코드가 매우 짧기 때문에 여기에 붙여 넣습니다. 자세한 내용은 wordpress.org 사이트를 참조하세요.
<?php $args = array( 'numberposts' => 10, 'order'=> 'ASC', 'orderby' => 'title' ); $postslist = get_posts( $args ); foreach ($postslist as $post) : setup_postdata($post); ?> <div> <?php the_date(); ?> <br /> <?php the_title(); ?> <?php the_excerpt(); ?> </div> <?php endforeach; ?>
There's a guide for this precise case at the wordpress codex. See it here: I paste the code here because it's quite short, for more information go to the wordpress.org site.
<?php $args = array( 'numberposts' => 10, 'order'=> 'ASC', 'orderby' => 'title' ); $postslist = get_posts( $args ); foreach ($postslist as $post) : setup_postdata($post); ?> <div> <?php the_date(); ?> <br /> <?php the_title(); ?> <?php the_excerpt(); ?> </div> <?php endforeach; ?>
-
- 2011-12-14
Wordpress는 query_posts () 와 같은 유형의 요청에 대한 함수를 제공합니다.
<인용구>query_posts ()는 기본 쿼리를 변경하는 가장 쉬운 방법입니다. WordPress는 게시물을 표시하는 데 사용합니다.표시하려면 query_posts () 사용 일반적으로 특정 장소에 표시되는 게시물과 다른 URL.
예를 들어 홈페이지에는 일반적으로 최신 10 개 게시물.5 개의 게시물 만 표시하려면 페이지 매김),다음과 같이 query_posts ()를 사용할 수 있습니다.
<인용구>query_posts ( 'posts_per_page=5');
검색을 수행하면 원하는 방식으로 게시물을 표시 할 수 있습니다.
Wordpress provides a function for that kind of request: query_posts().
query_posts() is the easiest way to alter the default query that WordPress uses to display posts. Use query_posts() to display different posts than those that would normally show up at a specific URL.
For example, on the homepage, you would normally see the latest 10 posts. If you want to show only 5 posts (and don't care about pagination), you can use query_posts() like so:
query_posts( 'posts_per_page=5' );
Once you've performed the query, you can display the posts the way you want.
-
- 2019-05-16
<?php $the_query = new WP_Query( 'posts_per_page=3' ); while ($the_query -> have_posts()) : $the_query -> the_post();?> <?php /*html in here etc*/ the_title(); ?> <?php endwhile;wp_reset_postdata();?>
<?php $the_query = new WP_Query( 'posts_per_page=3' ); while ($the_query -> have_posts()) : $the_query -> the_post();?> <?php /*html in here etc*/ the_title(); ?> <?php endwhile;wp_reset_postdata();?>
-
질문에 대답하는 코드-정적 페이지에서 마지막 3 개 게시물 (최근 게시물)을 표시하는 방법은 무엇입니까?"보통이 방법을 사용합니다."라고 말하면 도움이 될까요?its code that answers the question - How to display last 3 posts (recent posts) in a static page? Would it help you if I said - "I usually use this approach:"?
- 0
- 2019-05-16
- Jon
정적 페이지에 "최근 게시물"과 같은 것을 구현하고 싶습니다.
http://themes.codehunk.me/insignio/ (바닥 글)
위젯없이 어떻게이 작업을 수행 할 수 있습니까?