我对WP功能相当陌生,所以希望有人能在这个问题上给出一些启示。我有一个功能,显示从一个特定类别的五个帖子,然后使用短代码来显示某些WP帖子/页面的结果。我有麻烦,包括wp_trim_words到get_the_title()。我想把标题限制在5个单词以内,并以"……"结尾。我在这里看到了很多例子,但没有一个适合我的函数。有人能帮忙吗?
function wpb_postsbycategory() {
// the query
$the_query = new WP_Query( array( 'category_name' => '3dgames', 'posts_per_page' => 5 ) );
// The Loop
if ( $the_query->have_posts() ) {
$string .= '<ul class="postsbycategory widget_recent_entries">';
while ( $the_query->have_posts() ) {
$the_query->the_post();
if ( has_post_thumbnail() ) {
$string .= '<p><a href="' . get_the_permalink() .'" style="color:#FFF;" rel="bookmark">' . get_the_post_thumbnail($post_id, array( 100, 50) ) . get_the_title() .'</a><br></p>';
} else {
// if no featured image is found
$string .= '<li><a href="' . get_the_permalink() .'" style="color:#FFF;" rel="bookmark">' . get_the_title() .'</a></li>';
}
}
} else {
// no posts found
}
$string .= '</ul>';
return $string;
/* Restore original Post Data */
wp_reset_postdata();
}
// Add a shortcode
add_shortcode('3dgames', 'wpb_postsbycategory');
// Enable shortcodes in text widgets
add_filter('widget_text', 'do_shortcode');
你应该使用wp_trim_words()并在里面放置文章的标题:wp_trim_words(get_the_title(), 5, '...')
在你的例子中应该是这样的:
if ( has_post_thumbnail() ) {
$string .= '<p><a href="' . get_the_permalink() .'" style="color:#FFF;" rel="bookmark">' . get_the_post_thumbnail($post_id, array( 100, 50) ) . (wp_trim_words(get_the_title(), 5, '...')) .'</a><br></p>';
} else {
// if no featured image is found
$string .= '<li><a href="' . get_the_permalink() .'" style="color:#FFF;" rel="bookmark">' . (wp_trim_words(get_the_title(), 5, '...')) .'</a></li>';
}
关于wp_trim_words()
如何工作的更多细节,您可以访问官方文档:https://developer.wordpress.org/reference/functions/wp_trim_words/