En realidad, no puede pasar un argumento relacionado con la taxonomía get_posts()
. (Editar: en realidad, sí puedes. El Codex es algo confuso. Mirar la fuente get_posts()
es, en esencia, solo un contenedor para WP_Query()
). Puedes pasar meta claves / valores y tipos de publicación , pero no taxonomías como publicación formato. Entonces para esta línea:
$myposts = get_posts('numberposts=-1&orderby=post_date&order=DESC');
Recomendaría usar en WP_Query()
lugar de 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'
)
)
) );
Nota: sí, son muchas matrices anidadas. Las consultas fiscales pueden ser tan complicadas como esa.
El siguiente paso es modificar sus declaraciones de apertura / cierre de bucle. Cambia estos:
<?php foreach($myposts as $post) : ?>
<?php /* loop markup goes here */ ?>
<?php endforeach; ?>
...a esto:
<?php if ( $myposts->have_posts() ) : while ( $myposts->have_posts() ) : $myposts->the_post(); ?>
<?php /* loop markup goes here */ ?>
<?php endwhile; endif; ?>
<?php wp_reset_postdata(); ?>
Su marcado de bucle real debería poder permanecer igual, excepto que ya no necesita llamar 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>
Entonces, poniéndolo todo junto:
<?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();
Los formatos de publicación son solo términos predefinidos en una taxonomía llamada
post_format
, por lo que debería poder utilizar la jerarquía de plantillas WP para crear archivos de formato de publicación. Simplemente cree un archivo llamadotaxonomy-post_format-post-format-standard.php
en la raíz de su tema y ese archivo se utilizará para generar todas sus publicaciones estándar. Puede sustituir 'estándar' con cualquiera de los otros nombres de formato, comoaside
,link
ovideo
, por ejemplotaxonomy-post_format-post-format-video.php
. Esto también funciona para cualquier otra taxonomía, por cierto, siempre y cuando se adhiera a este formato:taxonomy-{TAXONOMY_NAME}-{TERM_NAME}.php
Si desea mostrar formatos de publicación con un bucle personalizado, por ejemplo, en su barra lateral o dentro de una plantilla de página, puede usar la consulta de impuestos de @kaiser. Simplemente sustituya la taxonomía con
post_format
y las babosas conpost-format-{FORMAT_NAME}
.fuente
Para dos taxonomías diferentes. Para uno solo, puede dejar el
relation
argumento fuera.fuente
Puedes hacer trucos así:
Esto se debe a que get_post_format () para el formato de publicación estándar devuelve falso. http://codex.wordpress.org/Function_Reference/get_post_format
fuente
'posts_per_page' => 6
y tiene 4 publicaciones con una plantilla NO estándar, solo verá 2 publicaciones, no las 6 que deberían estar visibles. filtrar la consulta es la forma en la prueba a ir ..