Я работаю над веб-страницей на WordPress и хочу вставить слайдер с постами из 6 блогов. Сообщения будут выбраны мной, для этого я использую плагин Advanced Custom Fields для этого. PHP-часть работает правильно, но у меня не работает js. Вот мой HTML-код:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="jquery.flexslider.js"></script>
<script>
$(window).load(function() {
$(".flexslider").flexslider({
animation: "slide",
});
});
</script>
Вот HTML для слайдера:
<div id="grey" class="row main-post">
<div class="flexslider">
<ul class="slides">
<?php
echo get_chosen_post();
echo get_chosen_post_1();
echo get_chosen_post_2();
?>
</ul>
</div>
</div>
И одна из функций для извлечения сообщений из полей:
function get_chosen_post() {
global $wpdb;
$post_title = get_field('post_title');
$blog = get_field('blog_number');
switch_to_blog( $blog );
$posts = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}posts WHERE post_type='post' AND post_status='publish' AND post_title LIKE '$post_title' LIMIT 1");
foreach($posts as $post) {
//Thumbnail
$thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'large' );
$url = $thumb['0'];
$html .= '<div class="col-xs-12 col-sm-6 col-lg-4 mainpost "><div class="main-center"><a class="img-wrapper" href="'.get_permalink( $post->ID ).'"><img class="main-post-img" src="'.$url.'"></img></a></div></div>';
$html .= '<div class="col-xs-12 col-sm-6 col-lg-4 mainpost no-padding"><div class="main-center mobile-text-fix">';
//Title
$html .= '<h4><a href="'.get_permalink($post->ID).'" title="'.$post->post_title.'">'.$post->post_title.'</a></h4>';
//Excerpt
$html .= '<p>'.$post->post_excerpt.'</p>';
$html .= '</div></div>';
}
switch_to_blog(1);
return $html;
}
Запрос работает нормально, я использую оператор LIKE, чтобы избежать ошибок, если заголовок сообщения содержит кавычки. Мой слайдер не работает, он просто показывает все выбранные мной посты и ссылки на них, но без слайдера.
Буду признателен за вашу помощь, спасибо!
Я думаю, что слайдер не работает, потому что в результате HTML не существует LI элемент, но только DIV.
Ты можешь попробовать
<ul class="slides">
<li> <?php echo get_chosen_post(); ?></li>
<li> <?php echo get_chosen_post_1(); ?></li>
<li> <?php echo get_chosen_post_2(); ?></li>
</ul>
или же
foreach($posts as $post) {
$thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'large' );
$url = $thumb['0'];
$html .= '<li>';
$html .= '<div class="col-xs-12 col-sm-6 col-lg-4 mainpost "><div class="main-center"><a class="img-wrapper" href="'.get_permalink( $post->ID ).'"><img class="main-post-img" src="'.$url.'"></img></a></div></div>';
$html .= '<div class="col-xs-12 col-sm-6 col-lg-4 mainpost no-padding"><div class="main-center mobile-text-fix">';
//Title
$html .= '<h4><a href="'.get_permalink($post->ID).'" title="'.$post->post_title.'">'.$post->post_title.'</a></h4>';
//Excerpt
$html .= '<p>'.$post->post_excerpt.'</p>';
$html .= '</div></div>';
$html .= '</li>';
}
Я надеюсь это тебе поможет
Других решений пока нет …