私は私の最初のページの私のホームページで何歳でも関係のあるリストだけを表示したいです。
これは私のホームページコードです:
<?php get_header(); ?>
<?php
if(get_option('aven_home') == "listing") { ?>
<?php include (TEMPLATEPATH . '/lib/listhome.php'); ?>
<?php } else { ?>
<div id="content">
<?php
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$wp_query->query('paged='.$paged);
?>
<?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
<div class="post" id="post-<?php the_ID(); ?>">
<div class="title">
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2>
</div>
<div class="postmeta">
<span class="author">Posted by <?php the_author(); ?> </span> <span class="clock"> <?php the_time('M - j - Y'); ?></span> <span class="comm"><?php comments_popup_link('0 Comment', '1 Comment', '% Comments'); ?></span>
</div>
<div class="entry">
<?php
if ( has_post_thumbnail() ) { ?>
<a href="<?php the_permalink() ?>"><img class="postimg" src="<?php bloginfo('stylesheet_directory'); ?>/timthumb.php?src=<?php get_image_url(); ?>&h=150&w=200&zc=1" alt=""/></a>
<?php } else { ?>
<a href="<?php the_permalink() ?>"><img class="postimg" src="<?php bloginfo('template_directory'); ?>/images/dummy.png" alt="" /></a>
<?php } ?>
<?php wpe_excerpt('wpe_excerptlength_index', ''); ?>
<div class="clear"></div>
</div>
</div>
<?php endwhile; ?>
<div class="clear"></div>
<?php getpagenavi(); ?>
<?php $wp_query = null; $wp_query = $temp;?>
</div>
<?php } ?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
まず、 pre_get_post hookをあなたの目的のために使うことをお勧めします。テーマで新しいWP_Queryのみを使用する場合は、Wordpressがテーマを取得する前にクエリを実行しても意味がありません。これは、余分な作業が破棄されるためです。 pre_get_postsを使用すると、目的に合わせてメインクエリを変更し、別のクエリを実行せずに必要なものを取得できます。
それは言った。ここでのコード例:
//Functions for filters
add_action( 'pre_get_posts', 'properties_pre_get_post' );
function properties_pre_get_post($query){
//limit to frontend, to the main query and to home page
if($query->is_main_query() && !is_admin() && is_home() ) {
//the main query to get only sticky posts
$query->set('post__in',get_option( 'sticky_posts' ));
}
}
そのコードをfunctions.phpとあなたのhome.phpテンプレートファイルに入れると、いつものように ループ を実行できます。
カスタム投稿タイプでは組み込みの「スティッキ」機能はサポートされていませんが、たとえばタグや分類用語を作成し、このタグでフィルタすることができます。たとえば、カスタム投稿タイプがpost_tags分類法をサポートしている場合は、「featured」という用語を作成し、必要な各投稿をこのタグに添付してフィルタ処理できます。
//Functions for filters
add_action( 'pre_get_posts', 'my_pre_get_post' );
function my_pre_get_post($query){
//limit to main query, frontend and home page
if($query->is_main_query() && !is_admin() && is_home() ) {
$tax_query = array (
'taxonomy'=> array('post_tags'),
'field' => 'slug',
'terms' => 'featured',
);
$query->set('tax_query',$tax_query);
//filter also by your custom post type
$query->set('post_type','listings');
}
}