即使使用 return,Wordpress Shortcode 也会乱序显示数据
Wordpress Shortcode displaying data out of order even using return
我正在尝试使用我的 WP Shortcode 显示一些数据,但它显示的一切都乱七八糟。搜索了一下,文档说你需要在函数中使用 return,但它仍然不起作用。
这是代码
function dwwp_jobs_from_california($atts){
$atts = shortcode_atts(array(
'title' => 'All jobs in California:',
),
$atts
);
$query = new WP_Query( array('post_type' => 'job'));
$jobs = "<h1>" . $atts['title'] . '</h1><br>';
if( $query->have_posts()):
while ( $query->have_posts() ) :
$query->the_post();
$jobs .= '<h3>' . the_title() . '</h3><br>';
endwhile;
endif;
$jobs .= "End of the loop!";
wp_reset_query();
return $jobs;
}
add_shortcode('jobs_california', 'dwwp_jobs_from_california');
在我的 Wordpress 页面中:
"Content of the page"
[jobs_california]
它在页面上呈现的内容:
[jobs_california]
"Content of the page"
我也必须承认我不太习惯使用 PHP,如果我的代码质量不好,请见谅。
谁能告诉我我做错了什么?提前致谢!
我认为您遇到的唯一问题是您使用的 the_title()
将 echo
post 标题...但是您想构建一个 html 字符串,它将由您的短代码函数返回。尝试使用:
the_title('', '', false)
或者,更好:
get_the_title()
希望对您有所帮助!
我正在尝试使用我的 WP Shortcode 显示一些数据,但它显示的一切都乱七八糟。搜索了一下,文档说你需要在函数中使用 return,但它仍然不起作用。
这是代码
function dwwp_jobs_from_california($atts){
$atts = shortcode_atts(array(
'title' => 'All jobs in California:',
),
$atts
);
$query = new WP_Query( array('post_type' => 'job'));
$jobs = "<h1>" . $atts['title'] . '</h1><br>';
if( $query->have_posts()):
while ( $query->have_posts() ) :
$query->the_post();
$jobs .= '<h3>' . the_title() . '</h3><br>';
endwhile;
endif;
$jobs .= "End of the loop!";
wp_reset_query();
return $jobs;
}
add_shortcode('jobs_california', 'dwwp_jobs_from_california');
在我的 Wordpress 页面中:
"Content of the page"
[jobs_california]
它在页面上呈现的内容:
[jobs_california]
"Content of the page"
我也必须承认我不太习惯使用 PHP,如果我的代码质量不好,请见谅。
谁能告诉我我做错了什么?提前致谢!
我认为您遇到的唯一问题是您使用的 the_title()
将 echo
post 标题...但是您想构建一个 html 字符串,它将由您的短代码函数返回。尝试使用:
the_title('', '', false)
或者,更好:
get_the_title()
希望对您有所帮助!