Неправильная выдача статей при нажатии на Load more

12
M
На сайте с 12.12.2016
Offline
17
3536

Привет.

На страницах тегов и категорий в конце списка статей есть кнопка Load more, при нажатии на которую подгружаются статьи. Проблема в том, что подгружаются нерелевантные статьи. Т.е. подгружаются статьи, не имеющие ничего общего с выбранной категорией или тегом.

CMS - WordPress. Функция была вместе с покупной темой.

Буду благодарен, если кто-то поможет решить эту проблему.

Myvi.tv - видео-партнёрка () Vimple - универсальный видеохостинг для бизнеса (/ru/forum/955462)
adel92
На сайте с 04.01.2012
Offline
334
#1

Скорее всего у Вас похожие статьи указываются вручную. Поищите такой пункт, так часто на WP делают. Либо из одной категории/рубрики.

NVMe VDS (https://well-web.net/nvme-vps) с поддержкой 24/7 - от 545 руб.! Безлимитный хостинг (https://well-web.net/ssd-hosting) - от 129 руб.! Домен в подарок! Перенос бесплатно! Заказывайте сейчас, и получите скидку 50%! Заходи! (https://well-web.net/limited-offers)
M
На сайте с 12.12.2016
Offline
17
#2
adel92:
Скорее всего у Вас похожие статьи указываются вручную. Поищите такой пункт, так часто на WP делают. Либо из одной категории/рубрики.

Нет, должны подгружаться статьи из той же категории, а не похожие. Т.е. просто продолжение списка статей выбранной категории или тега. Похожие статьи тут не при чём.

SeVlad
На сайте с 03.11.2008
Offline
1609
#3
Myvi:
есть кнопка Load more, при нажатии на которую подгружаются статьи. Проблема в том, что подгружаются нерелевантные статьи.

О какой "релевантности" ты говоришь? О какой Load more = "читать дальше"?

Вангую эта кнопка для вывода ОСТАЛЬНЫХ постов, ВМЕСТО постраничной навигации. И тут не может быть никакой "релевантности", а только то что задано циклом.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
M
На сайте с 12.12.2016
Offline
17
#4
SeVlad:
О какой "релевантности" ты говоришь? О какой Load more = "читать дальше"?
Вангую эта кнопка для вывода ОСТАЛЬНЫХ постов, ВМЕСТО постраничной навигации. И тут не может быть никакой "релевантности", а только то что задано циклом.

Load more = «Загрузить ещё». Да, вывод остальных постов, вместо постраничной навигации. Релевантные в том смысле, что с тем же тегом, например, или из той же категории. Очевидно, что если бы я разбирался в циклах WordPress'а, я бы не задавал этот вопрос.

SeVlad
На сайте с 03.11.2008
Offline
1609
#5
Myvi:
Очевидно, что если бы я разбирался в циклах WordPress'а, я бы не задавал этот вопрос.

Это делает тема. Точнее её шаблон - рубрики или метки или чего там надо.

Я ещё пойму, когда постарничка не работает, но чтобы на остальных страницах был другой вывод..

Показывай что ли сайт (на форум, не в личку).

melkozaur
На сайте с 06.04.2010
Offline
505
#6

Это наверное Джетпак глючит :)

А вообще надо файл темы смотреть, archive.php или какой-то подобный.

Серверы в NL/US со скидкой 30% нашим читателям: E5-2650v4/10GB DDR4/240GB SSD/1 Gbps - от $20: https://ua-hosting.company/vps/nl SEO без компромиссов: https://seoleaks.net SEOLEAKS - продвижение сайтов: https://www.instagram.com/seoleaks
M
На сайте с 12.12.2016
Offline
17
#7
SeVlad:
Это делает тема. Точнее её шаблон - рубрики или метки или чего там надо.

Я ещё пойму, когда постарничка не работает, но чтобы на остальных страницах был другой вывод..
Показывай что ли сайт (на форум, не в личку).

Не нашёл ни шаблона рубрики, ни шаблона метки :(

---------- Добавлено 25.05.2017 в 17:19 ----------

melkozaur:
Это наверное Джетпак глючит :)
А вообще надо файл темы смотреть, archive.php или какой-то подобный.

Файл archive.php выглядит так:

<?php


get_header(); ?>

<div id="primary" class="content-area clr">
<div id="content" class="site-content left-content clr" role="main">
<header class="archive-header clr">
<h1 class="archive-header-title"><?php
if ( is_day() ) :
printf( __( 'Daily Archives: %s', 'wpex' ), get_the_date() );
elseif ( is_month() ) :
printf( __( 'Monthly Archives: %s', 'wpex' ), get_the_date( _x( 'F Y', 'monthly archives date format', 'wpex' ) ) );
elseif ( is_year() ) :
printf( __( 'Yearly Archives: %s', 'wpex' ), get_the_date( _x( 'Y', 'yearly archives date format', 'wpex' ) ) );
else :
echo single_term_title();
endif;
?></h1>
<?php
// Breadcrumbs
wpex_display_breadcrumbs(); ?>
<?php if ( term_description() ) { ?>
<div class="archive-description clr">
<?php echo term_description(); ?>
</div><!-- #archive-description -->
<?php } ?>
</header><!-- .archive-header -->
<?php if ( have_posts() ) : ?>
<div id="blog-wrap" class="clr <?php if ( '1' != wpex_grid_columns() ) echo 'masonry-grid js-isotope'; ?>">
<?php
// Begin loop
while ( have_posts() ) : the_post();
get_template_part( 'content', get_post_format() );
endwhile; ?>
</div><!-- #blog-wrap -->
<?php wpex_get_pagination(); ?>
<?php else : ?>
<?php get_template_part( 'content', 'none' ); ?>
<?php endif; ?>
</div><!-- #content -->
<?php get_sidebar(); ?>
</div><!-- #primary -->

<?php get_footer(); ?>

Есть ещё functions/load-more.php

<?php

add_action( 'wp_ajax_wpex_load_more_query', 'wpex_load_more_query' );
add_action( 'wp_ajax_nopriv_wpex_load_more_query', 'wpex_load_more_query' );

function wpex_load_more_query() {

$page = $_POST['pagenum'];
$archive_type = $_POST['archive_type'];
$archive_id = $_POST['archive_id'];
$archive_month = $_POST['archive_month'];
$archive_year = $_POST['archive_year'];
$post_format = $_POST['post_format'];
$author = $_POST['author'];
$s = $_POST['s'];

$args = array(
'paged' => $page,
'post_status' => 'publish'
);

if( !empty( $archive_type ) ) {

switch( $archive_type ) {

case 'category':
$args['cat'] = $archive_id;
break;

case 'post_tag':
$args['tag_id'] = $archive_id;
break;

case 'date':
$args['monthnum'] = $archive_month;
$args['year'] = $archive_year;
break;


}
}

if(!empty($post_format)) {
$args['tax_query'] = array(
array(
'taxonomy' => 'post_format',
'field' => 'slug',
'terms' => "post-format-$post_format"
)
);
}

if( !empty( $author ) ) {
$args['author'] = $author;
}

if( !empty( $s ) ) {
$args['s'] = $s;
}

$args = apply_filters( 'wpex_load_more_args', $args );

query_posts($args);

//let's capture the output
ob_start();
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
get_template_part( 'content', get_post_format() );
}
}
$output = ob_get_clean();
echo $output;
//wp_die();
}


function wpex_load_more_pagination( $page = 2, $archive = null ) {

// Get Global Query
global $wp_query;

// Set Output Var
$output = '';

// Load More Text
$load_more_text = get_theme_mod( 'wpex_load_more_button_text', __('Ещё статьи', 'wpex') );

// Build the Query Data
$archive_type = '';
$archive_id = '';
$archive_month = '';
$archive_year = '';
$author = '';
$post_format = isset( $wp_query->post_format ) ? $wp_query->post_format : '';
//$author = isset($wp_query->author) ? $wp_query->author : '';

// Author
if( is_author() ) {
$archive_type = 'author';
$author = get_query_var('author');

// Category
} elseif( is_category() ) {
$archive_type = 'category';
$archive_id = get_query_var('cat');

// Tags
} elseif( is_tag() ) {
$archive_type = 'post_tag';
$archive_id = get_query_var('tag');

// Date
} elseif( is_date() ) {
$archive_type = 'date';
$archive_month = get_query_var('monthnum');
$archive_year = get_query_var('year');
}

$maxpage = $wp_query->max_num_pages;

//display load more if next page exists
if( $maxpage >= 2) {

$output .= '<div id="load-more" class="clear">';
$output .= '<input id="ajax-scroll-nonce" type="hidden" value="'. wp_create_nonce('ajax-scroll') .'" />';
$output .= '<a href="#" data-pagenum="'. $page .'" data-maxpage="'. $maxpage .'" data-archive_type="'. $archive_type .'" data-archive_id="'. $archive_id .'" data-post_format="'. $post_format .'" data-author="'. $author .'" data-archive_month="'. $archive_month .'" data-archive_year="'. $archive_year .'" data-s="'.get_query_var('s').'">';
$output .= '<span class="load-more-text">'. $load_more_text .'</span>';
$output .= '</a>';
$output .= '</div>';
}

echo $output;
}
SeVlad
На сайте с 03.11.2008
Offline
1609
#8
Myvi:
query_posts

Вот уже это говорит, что тему надо в помойку.

M
На сайте с 12.12.2016
Offline
17
#9
SeVlad:
Вот уже это говорит, что тему надо в помойку.

Могу я попросить вам пояснить?

SeVlad
На сайте с 03.11.2008
Offline
1609
#10
Myvi:
Могу я попросить вам пояснить?

wpmag.ru/2014/query_posts-wordpress/

Её использование в теме может быть опасно. Её наличие в теме говорит что тема либо очень древняя, либо опасный самопис (какие ещё дыр и др сюрпризов там наворотили..).

И, кстати, именно из-за неё проблемы с пагинацией достаточно часты.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий