У меня есть небольшая проблема в моем Shortcode, который я создаю для WordPress. Цикл foreach не отображает несколько сообщений каждый раз. Я не уверен, почему он это делает, потому что если я var_dump
переменная $post
, это показывает, что оба сообщения доступны этой переменной, может кто-то помочь мне, пожалуйста?Foreach не отображает несколько содержимого
КОД:
function notes_shortcode($atts) {
global $post;
$atts = shortcode_atts(array('category' => $args["category"]), $atts, 'notes');
$args = array('category_name' => $atts["category"]);
$posts = get_posts($args);
$date = get_the_date('d', $post->ID);
$month = get_the_date('M', $post->ID);
foreach($posts as $post) {
setup_postdata($post);
$imgURL = getpostImage($post->ID);
$title = get_the_title($post->ID);
$content = substr(get_the_content() , 0, 125);
$post = '<div class="animated fadeInUp" data-animation="fadeInUp" data-delay="200" style="opacity: 0;">';
$post .= '<div class="col-md-4 bloglist">';
$post .= '<div class="post-content">';
$post .= '<div class="post-image">';
$post .= '<div class="flexslider blog-slider">';
$post .= '<div class="overlay" style="opacity: 0;"></div>';
$post .= '<div class="flex-viewport" style="overflow: hidden; position: relative;">';
$post .= '<ul class="slides" style="width: 800%; -webkit-transition: 0s; transition: 0s; -webkit-transform: translate3d(-350px, 0px, 0px);">';
$post .= '<li class="clone" aria-hidden="true" style="width: 350px; float: left; display: block;"> <img src="' . $imgURL . '" alt="" draggable="false"> </li>';
$post .= '<li class="flex-active-slide" style="width: 350px; float: left; display: block;"> <img src="' . $imgURL . '" alt="" draggable="false"> </li>';
$post .= '<li style="width: 350px; float: left; display: block;"> <img src="' . $imgURL . '" alt="" draggable="false"> </li>';
$post .= '<li class="clone" aria-hidden="true" style="width: 350px; float: left; display: block;"> <img src="' . $imgURL . '" alt="" draggable="false"></li>';
$post .= '</ul></div></div></div>';
$post .= '<div class="date-box"><span class="day">' . $date . '</span>';
$post .= '<span class="month">' . $month . '</span> </div>';
$post .= '<div class="post-text">';
$post .= '<h3><a href="css/#">' . $title . '</a></h3>';
$post .= '<p> ' . $content . '<br>';
$post .= ' <a href="#" class="btn-text">Read More</a></p></div></div></div></div>';
return $post;
}
}
add_shortcode('notes', 'notes_shortcode');
function getpostImage($postid) {
if (has_post_thumbnail($post->ID)){
$imgArray = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'thumbnail');
$imgURL = $imgArray[0];
return $imgURL;
}
}
Спасибо ..
Просто примечание: зачем использовать глобальную функцию сверху? вы не используете (по крайней мере, я надеюсь) гладко объявленный var, поэтому строки thoose здесь бесполезны. [См. Это] (http://php.net/manual/en/language.variables.scope.php) для подробной информации об использовании глобального для изменения области. (вы являетесь функцией getpostid в другой руке, используйте '$ post-> id' вместо аргумента функции, является ли это намеренным (я подозреваю, что он работает из-за глобального, но звучит как ошибка))? – Tensibai