Anda tidak dapat benar-benar menyampaikan argumen terkait taksonomi get_posts()
. (Sunting: sebenarnya, ya Anda bisa. Codex hanya agak tidak jelas. Melihat sumbernya, get_posts()
pada intinya, hanya pembungkus untuk WP_Query()
.) Anda dapat memberikan meta kunci / nilai, dan jenis posting , tetapi bukan taksonomi seperti pos format. Jadi untuk baris ini:
$myposts = get_posts('numberposts=-1&orderby=post_date&order=DESC');
Saya akan merekomendasikan menggunakan WP_Query()
daripada get_posts()
:
$myposts = new WP_Query( array(
'tax_query' => array(
array(
'taxonomy' => 'post_format',
'field' => 'slug',
'terms' => array(
'post-format-aside',
'post-format-audio',
'post-format-chat',
'post-format-gallery',
'post-format-image',
'post-format-link',
'post-format-quote',
'post-format-status',
'post-format-video'
),
'operator' => 'NOT IN'
)
)
) );
Catatan: ya, itu banyak array bersarang. Permintaan pajak bisa rumit seperti itu.
Langkah selanjutnya adalah memodifikasi pernyataan buka / tutup loop Anda. Ubah ini:
<?php foreach($myposts as $post) : ?>
<?php /* loop markup goes here */ ?>
<?php endforeach; ?>
...untuk ini:
<?php if ( $myposts->have_posts() ) : while ( $myposts->have_posts() ) : $myposts->the_post(); ?>
<?php /* loop markup goes here */ ?>
<?php endwhile; endif; ?>
<?php wp_reset_postdata(); ?>
Markup loop Anda yang sebenarnya harus tetap sama, kecuali bahwa Anda tidak perlu menelepon lagi setup_postdata( $post )
:
<?php
$year = mysql2date('Y', $post->post_date);
$month = mysql2date('n', $post->post_date);
$day = mysql2date('j', $post->post_date);
?>
<p>
<span class="the_article">
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</span>
<span class="the_day">
<?php the_time('j F Y'); ?>
</span>
</p>
Jadi, kumpulkan semuanya:
<?php
// Only query posts with the
// "standard" post format, which
// requires *excluding* all other
// post formats, since neither the
// "post_format" taxonomy nor the
// "post-format-standard" taxonomy term
// is applied to posts without
// defined post formats
$myposts = new WP_Query( array(
'tax_query' => array(
array(
'taxonomy' => 'post_format',
'field' => 'slug',
'terms' => array(
'post-format-aside',
'post-format-audio',
'post-format-chat',
'post-format-gallery',
'post-format-image',
'post-format-link',
'post-format-quote',
'post-format-status',
'post-format-video'
),
'operator' => 'NOT IN'
)
)
) );
// Open the loop
if ( $myposts->have_posts() ) : while ( $myposts->have_posts() ) : $myposts->the_post(); ?>
$year = mysql2date('Y', $post->post_date);
$month = mysql2date('n', $post->post_date);
$day = mysql2date('j', $post->post_date);
?>
<p>
<span class="the_article">
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</span>
<span class="the_day">
<?php the_time('j F Y'); ?>
</span>
</p>
<?php
// Close the loop
endwhile; endif;
// Reset $post data to default query
wp_reset_postdata();
Format posting adalah istilah yang sudah ditentukan sebelumnya dalam taksonomi yang disebut
post_format
, jadi Anda harus dapat menggunakan hierarki template WP untuk membuat arsip format posting. Cukup buat file yang disebuttaxonomy-post_format-post-format-standard.php
di root tema Anda dan file itu akan digunakan untuk menampilkan semua posting standar Anda. Anda dapat mengganti 'standar' dengan nama format lain, sepertiaside
,link
atauvideo
, jadi misalnyataxonomy-post_format-post-format-video.php
. Ini berfungsi untuk taksonomi lainnya, btw, selama Anda tetap menggunakan format ini:taxonomy-{TAXONOMY_NAME}-{TERM_NAME}.php
Jika Anda ingin menampilkan format posting dengan loop kustom, mis. Di bilah sisi atau dalam templat halaman, maka Anda dapat menggunakan kueri pajak dari @kaiser. Cukup gantikan taksonomi dengan
post_format
siputpost-format-{FORMAT_NAME}
.sumber
Untuk dua taksonomi yang berbeda. Untuk satu saja, Anda dapat
relation
mengabaikannya.sumber
Anda dapat melakukan trik seperti itu:
Itu karena get_post_format () untuk format posting standar mengembalikan false. http://codex.wordpress.org/Function_Reference/get_post_format
sumber
'posts_per_page' => 6
dan memiliki 4 posting dengan BUKAN templat standar, Anda hanya akan melihat 2 posting, bukan 6 posting yang seharusnya terlihat. memfilter kueri adalah jalan buktinya ..