WordPress简码功能

Wordpress shortcode function

谁能解释为什么这只是 return 第一个结果。我想 return 所有与当前 url 具有相同自定义字段值的结果。它只会 return 1. 它是否需要一个 for each 或什么?谢谢!!

<?php add_shortcode( 'feed', 'display_custom_post_type' );

    function display_custom_post_type(){

    $url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];

    $args = array( 
       'post_type'       => 'custom_post_type',
       'posts_per_page'  => -1  
    );

    $new_query = new WP_Query($args);

    while($new_query->have_posts()) : $new_query->the_post();

    return get_title();

    endwhile;

};?>

您 "return" 来自 while 循环内第一个元素之后的函数。

返回所有帖子的示例:

$args = array(
    'post_type' => 'custom_post_type',
    'posts_per_page'  => -1  

);
$results = get_posts($args);
return $results;

因为你在循环中添加了return所以它只会显示最后一个。您必须将 return 放在循环之外才能显示全部。

只是一个小例子,看看它是否有效,更改此位:

while($new_query->have_posts()) : $new_query->the_post();

return get_title();

endwhile;

对此:

while($new_query->have_posts()) : $new_query->the_post();

$all_titles .= get_title();

endwhile;

return $all_titles;

它很可能会在一行中显示所有标题,因此请按照您的意愿设置格式!