声明短代码与使用以下代码一样简单:
add_shortcode(\'jobs\', \'callback_function\');
function callback_function(){
$content = \'\';
$args = array(
\'post_type\' => array(\'job\'),
\'posts_per_page\' => 20
);
$the_query = new WP_Query( $args );
if ($the_query->have_posts() ) {
while ( $the_query->have_posts() ) {
$the_query->the_post();
if ( 683 !== get_the_ID() ) {
$content .= \'<a href="\'. get_the_permalink().\'" class="jobs">\';
}
$content .= \'
<div class="jobs-item">
<h2 class="page-head_sub-title">\'.get_the_title().\'</h2>
<p>\'. get_the_content() .\'</p>
</div>\';
if ( 683 !== get_the_ID() ) {
$content .= \'</a>\';
}
}
}
wp_reset_postdata();
return \'
<div class="owl-carousel-wrap jobs-carousel">
<div id="jobsCarousel" class="owl-carousel ">
\'.$content.\'
</div>
<div class="js-control-jobs">
<div class="carousel-control-prev"><span class="icon-arrow"><!--icon--></span></div>
<div class="carousel-control-next"><span class="icon-arrow"><!--icon--></span></div>
</div>
</div>\';
}
将代码包装在函数中,并替换
callback_function
函数的名称。然后您可以在编辑器中使用它作为
[shortcode-name]
.
但是,您应该注意,您不能使用echo
在短代码函数中。您应该将内容存储在变量中,然后return
变量。
这意味着您不能使用回显内容的函数,例如the_content()
或the_title()
. 您应该使用get_the_content()
或get_the_title()
相反
Note: 我没有使用的原因apply_filters(\'the_content\', get_the_contnet());
如果在帖子中使用此短代码,然后帖子包含在此循环中,则此循环将是无限的,因为过滤器将再次运行短代码,该短代码将运行嵌套的短代码,依此类推。