短码:如何添加自定义帖子?

时间:2016-07-13 作者:Alexander Georgiev

我在短码atts中遇到post\\uu问题。它没有显示任何内容。我想问题是post__in must be an array but the shortcode ID returns string.

function courses_shortcode($atts) {

 extract(shortcode_atts( array(
    \'limit\' => 16,
    \'id\' => array(592, 862, 418, 491, 1227, 1015, 847, 738, 541, 1186, 664, 695, 785),

), $atts ));


  $q_courses = new WP_Query( array(
    \'post_type\' => array(\'course\'),
    \'posts_per_page\'  => $limit,
    \'post__in\' => $id,
    \'orderby\'    => \'post__in\',

));
add_shortcode(\'video-course\', \'courses_shortcode\');
问题是如果我这样做[视频课程限制=8 id=“4181186”]不会显示任何内容。限制正在运行,但ID is not.

1 个回复
最合适的回答,由SO网友:Tammy Shipps 整理而成

对的post\\u in需要一个数组,但[视频课程限制=8 id=“4181186”]中的id参数是作为字符串传入的,因此在您的快捷码中,您必须将其解析为数组才能使用它:

if ( !is_array($id) ) {
    // If $id is not an array (not your default value in your example) 
    // then simultaneously parse it into an array and trim white space:
    $id = array_map(\'trim\', explode(\',\', $id));
}
然后您可以使用:

\'post__in\' => $id

相关推荐

GET_POSTS查询大约需要40秒来执行

我在get\\u帖子中有一个元查询,它需要花很长时间才能完成。它工作得很好,但只是时间太长了。我有一个名为event. 在每个event 发布后,有自定义元数据:post\\U sort\\U日期(事件日期YmdHis 格式,用于排序)我需要做的是获取下一个事件,该事件相对于$year 和$month 变量。所以如果$year = 2021 和$month = 10 (2021 10月)然后应该在2021 11月或之后找到第一个事件。我下面的查询很好,但很慢。执行大约需要40秒,我不知道为什么。$next