NEWBIE ЗДЕСЬ.php foreach loop echo, print, return dillema
Я пишу этот плагин wordpress, так что я могу использовать get_posts() в качестве короткого кода.
function getposts_func($atts) {
$atts = shortcode_atts(array('category' => '',), $atts, 'get_posts');
$cat=$atts['category'];
global $post;
$args = array(
'category' => $cat,
'numberposts' => -1,
'order' => 'ASC',
);
$myposts = get_posts($args);
foreach($myposts as $post) : setup_postdata($post);
$post_permalink = get_permalink();
$post_title = get_the_title();
echo '<li><a href="' . $post_permalink . '">' . $post_title . '</a></li>';
endforeach;
wp_reset_postdata();} add_shortcode('get_posts', 'getposts_func');
ПРОБЛЕМА: он выводит ДО фактического содержания. Я где-то читал, что это из-за ECHO, и что мне нужно использовать RETURN. Однако, если я использую return, он прерывает цикл и выводится только одно сообщение. Я также пытался использовать PRINT, но это просто в основном то же самое с ECHO.
Моя теория заключается в том, что мне нужно ВОЗВРАТИТЬ значения как МАССИВ. Но я точно не знаю, как это сделать. Я пытался использовать буфер $ output [], но терпеть неудачу.
Любые помощь ребята?
Как я уже сказал, я не разработчик WP. Кажется мне, что вы возвращаете, зависит от понимания того, что ожидает «add_shortcode» [см. Руководство] (https://codex.wordpress.org/Function_Reference/add_shortcode) – RiggsFolly
@RiggsFolly Ваш первый комментарий, похоже, сработал. извините, я подумал, что это не так (я просто забыл обновить). лол. Дурак я. –
Ой, я отменил свой ответ, так что вы можете увидеть его снова. – RiggsFolly