Wordpress 自定义 post 在短代码中键入循环
Wordpress custom post type loop inside a shortcode
我想创建一个短代码,它将显示 CPT = 推荐的循环。我准备了这样的代码:
function testimonials_loop_shortcode() {
$args = array(
'post_type' => 'testimonials',
'post_status' => 'publish',
);
$my_query = null;
$my_query = new WP_query($args);
while ($my_query->have_posts()) : $my_query->the_post();
$custom = get_post_custom( get_the_ID() );
?><p><?php the_title();?></p><?php
?><p>the_content();</p><?php
wp_reset_postdata();
else :
_e( 'Sorry, no posts matched your criteria.' );
endif;
}
add_shortcode( 'testimonials_loop', 'testimonials_loop_shortcode' );
准备粘贴到functions.php里面。但是代码破坏了网站/错误 500。我做错了什么?
我查看了您的代码,有许多问题需要解决。以下是修复列表:
- 您没有打开
if
条件,而是用endif
关闭它。
- 您打开了 while 循环,但没有关闭它。
- 您没有在
the_content()
函数周围放置 <?php ?>
标签。
因此,我修改了您的代码,请在下面找到更新后的代码:
function testimonials_loop_shortcode() {
$args = array(
'post_type' => 'testimonials',
'post_status' => 'publish',
);
$my_query = null;
$my_query = new WP_query($args);
if($my_query->have_posts()):
while($my_query->have_posts()) : $my_query->the_post();
$custom = get_post_custom( get_the_ID() );
echo "<p>".get_the_title()."</p>";
echo "<p>".get_the_content()."</p>";
endwhile;
wp_reset_postdata();
else :
_e( 'Sorry, no posts matched your criteria.' );
endif;
}
add_shortcode( 'testimonials_loop', 'testimonials_loop_shortcode' );
希望对您有所帮助。
如有任何疑问,请随时联系。谢谢
我想创建一个短代码,它将显示 CPT = 推荐的循环。我准备了这样的代码:
function testimonials_loop_shortcode() {
$args = array(
'post_type' => 'testimonials',
'post_status' => 'publish',
);
$my_query = null;
$my_query = new WP_query($args);
while ($my_query->have_posts()) : $my_query->the_post();
$custom = get_post_custom( get_the_ID() );
?><p><?php the_title();?></p><?php
?><p>the_content();</p><?php
wp_reset_postdata();
else :
_e( 'Sorry, no posts matched your criteria.' );
endif;
}
add_shortcode( 'testimonials_loop', 'testimonials_loop_shortcode' );
准备粘贴到functions.php里面。但是代码破坏了网站/错误 500。我做错了什么?
我查看了您的代码,有许多问题需要解决。以下是修复列表:
- 您没有打开
if
条件,而是用endif
关闭它。 - 您打开了 while 循环,但没有关闭它。
- 您没有在
the_content()
函数周围放置<?php ?>
标签。
因此,我修改了您的代码,请在下面找到更新后的代码:
function testimonials_loop_shortcode() {
$args = array(
'post_type' => 'testimonials',
'post_status' => 'publish',
);
$my_query = null;
$my_query = new WP_query($args);
if($my_query->have_posts()):
while($my_query->have_posts()) : $my_query->the_post();
$custom = get_post_custom( get_the_ID() );
echo "<p>".get_the_title()."</p>";
echo "<p>".get_the_content()."</p>";
endwhile;
wp_reset_postdata();
else :
_e( 'Sorry, no posts matched your criteria.' );
endif;
}
add_shortcode( 'testimonials_loop', 'testimonials_loop_shortcode' );
希望对您有所帮助。
如有任何疑问,请随时联系。谢谢