Что является лучшим способом для меня перебрать этот массив идентификаторов постов WordPress и создать связанное изображение.
В настоящее время у меня есть:
<?php
$posts = array(1309,880,877,890,1741,1739,2017);
print "<div class='row'>";
foreach($posts as $post){
$queried_post = get_post($post);
echo "<a href='get_permalink( $post )'>";
print "<div class='col-xs-2'>";
echo get_the_post_thumbnail($queried_post->ID, 'thumbnail');
print "</div>";
print "</a>";
}
print "</div>";
?>
Я пришел из рубина и уверен, что использование print не будет самым эффективным способом открыть и закрыть html в вызове php.
На данный момент это не работает, так как он не передает идентификатор сообщения правильно в это дает мне это /get_permalink(%20880%20)
в URL.
Заранее благодарю за любую помощь.
Вы можете использовать что-то вроде этого:
<?php
$posts = array(1309,880,877,890,1741,1739,2017);
?>
<div class='row'>
<?php foreach($posts as $post): ?>
<?php $queried_post = get_post($post); ?>
<a href="<?php echo get_permalink( $post ) ?>">
<div class='col-xs-2'>
<?php echo get_the_post_thumbnail($queried_post->ID, 'thumbnail'); ?>
</div>
</a>
<?php endforeach; ?>
</div>
Этот синтаксис использует синтаксический сахар с которым вы часто будете сталкиваться, если вы работаете с WordPress.
Если вы еще этого не сделали, было бы неплохо проверить Ссылка на код WordPress, они предоставляют примеры всех своих функций и т. д., и поскольку программное обеспечение широко используется, они склонны придерживаться лучших практик (в большинстве случаев!), поэтому оно может быть весьма полезным.
Вы должны использовать класс WP_Query.
# The Query
$the_query = new WP_Query( $args );
# Open div.row
echo '<div class="row">';
# The Loop
if ( $the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post(); ?>
<a href="<?php the_permalink(); ?>">
<div class="col-xs-2"><?php the_post_thumbnail( 'medium' ); ?></div>
</a>
<?php }
} else {
# no posts found
}
# Close div.row
echo '<div>';
# Restore original Post Data
wp_reset_postdata();