我为下面的一个短代码提供了以下函数。我有一个页脚小部件中的短代码。出于某种原因,输出出现在小部件的容器元素之外。我认为返回值是一种方式,所以我被困在这里了。
if (!function_exists(\'footer_get_latest_post\')) {
function footer_get_latest_post() {
$footerPost = \'\';
$args = array(\'posts_per_page\' => 1 );
$recent_posts = new WP_Query($args);
while( $recent_posts->have_posts() ) {
$recent_posts->the_post();
$footerPost = \'<div class="footer-post-thumb">\' . the_post_thumbnail(\'thumbnail\') . \'</div>\';
$footerPost .= \'<div class="footer-post-content"><h3>\' . the_title() . \'</h3>\';
$footerPost .= the_content() . \'</div>\';
}
wp_reset_query();
return $footerPost;
}
}
add_shortcode(\'FooterLatestPost\', \'footer_get_latest_post\');
因此,最终的html输出类似于:
<img>
<p>Post Title</p>
<p>Post Content</p>
<div class="footer-widget">
empty
</div>
最合适的回答,由SO网友:Robin Andrews 整理而成
我认为问题在于以下函数the_title()
vs公司get_the_title()
这似乎有效:
if (!function_exists(\'footer_get_latest_post\')) {
function footer_get_latest_post() {
$footerPost = \'\';
$args = array(\'posts_per_page\' => 1 );
$recent_posts = new WP_Query($args);
while( $recent_posts->have_posts() ) {
$recent_posts->the_post();
$footerPost = \'<div class="footer-post-thumb">\' . get_the_post_thumbnail(\'thumbnail\') . \'</div>\';
$footerPost .= \'<div class="footer-post-content"><h3>\' . get_the_title() . \'</h3>\';
$footerPost .= get_the_content() . \'</div>\';
}
wp_reset_query();
return $footerPost;
}
}
add_shortcode(\'FooterLatestPost\', \'footer_get_latest_post\');
没有
get
在这一部分,这些函数“原地”响应它们的结果