2 回答
TA贡献1942条经验 获得超3个赞
function(){是一个函数定义,你不能连接它。此外,has_post_thumbnail实际上是您要使用的 WP 函数,它的第一个参数是帖子 ID。所以你应该重写你的代码如下。
$args = array( 'numberposts' => '3' );
$recent_posts = wp_get_recent_posts( $args );
foreach( $recent_posts as $recent ){
$output = '<a style="color:white;text-decoration:none;" href="'. get_permalink($recent["ID"]) . '">
<article class="post post_home" style="background-image: url(';
if( has_post_thumbnail($recent["ID"]) ) {
$output .= get_the_post_thumbnail_url( $recent["ID"], 'cover' );
} elseif ( has_category( 'positive-morning' ) ) {
$output .= get_bloginfo('template_directory') . '/img/BG/2-Morning.jpg';
} elseif ( has_category( 'positive-talks' ) ) {
$output .= get_bloginfo('template_directory') . '/img/BG/2-Talks.jpg';
}
$output .= ' background-position : center; background-size :cover;">
<h2>'. $recent["post_title"] .'</h2></article>';
echo $output;
}
TA贡献1831条经验 获得超4个赞
这里缺少一些东西。您没有在循环中设置 postdata 并且您也不需要其中的函数,而且我个人也不喜欢在 PHP 标记内将字符串连接在一起来制作 HTML,所以我使用ob_start()并ob_get_clean()构建 HTML。尝试这样的事情......
<?php
$args = array( 'numberposts' => '3' );
$recent_posts = wp_get_recent_posts( $args );
ob_start();
foreach( $recent_posts as $recent ){
setup_postdata($recent); ?>
<a style="color:white;text-decoration:none;" href="<?php get_permalink($recent["ID"])?>">
<article class="post post_home" style="background-image: url(<?php
if( has_post_thumbnail() ) {
echo get_the_post_thumbnail_url( $recent["ID"], 'cover' );
} elseif ( has_category( 'positive-morning' ) ) {
echo get_bloginfo('template_directory') . '/img/BG/2-Morning.jpg';
} elseif ( has_category( 'positive-talks' ) ) {
echo get_bloginfo('template_directory') . '/img/BG/2-Talks.jpg';
}; ?>
); background-position : center; background-size :cover;">
<h2><?php echo $recent["post_title"] ?></h2></article>
<?php
wp_reset_postdata();
}
echo ob_get_clean(); ?>
公平警告我没有测试任何代码
- 2 回答
- 0 关注
- 85 浏览
添加回答
举报