Как избежать конфликта между функцией и отдельными постами - PullRequest
0 голосов
/ 25 января 2020

Я использую следующую функцию для изменения порядка отображения моих сообщений:

function wpse139657_orderby($query){ 

    $query->set( 'orderby', 'meta_value' ); 
    $query->set( 'order', 'DESC' ); 
    $query->set( 'meta_key', 'book_release_date' ); 
    $query->set( 'meta_type', 'NUMERIC' );

        if (is_admin() || $query->query_vars['post_type'] != 'book') return $query;
} 
add_filter('pre_get_posts','wpse139657_orderby');

... но похоже, что это создает конфликт с отдельными сообщениями, фактически следующий запрос остановлен работая сразу после того, как я добавил вышеупомянутую функцию в свой блог ...

$images = get_attached_media('image');
$featured_image_id = get_post_thumbnail_id();
if ( has_post_thumbnail() ) {
    unset($images[ $featured_image_id ] );
}
$ximage =  wp_get_attachment_image_src( key($images),'medium');
echo '<img src="' . $ximage[0] . '">';

Есть ли способ отредактировать первый код выше (функция) и настроить его так, чтобы он не мешал отдельным постам?

1 Ответ

1 голос
/ 25 января 2020

это просто проверить перед установкой параметров запроса.

function wpse139657_orderby($query){
    if(is_single && !is_singular('book')){
        return;
    } 
    $query->set( 'orderby', 'meta_value' ); 
    $query->set( 'order', 'DESC' ); 
    $query->set( 'meta_key', 'book_release_date' ); 
    $query->set( 'meta_type', 'NUMERIC' );

        if (is_admin() || $query->query_vars['post_type'] != 'book') return $query;
} 
add_filter('pre_get_posts','wpse139657_orderby');
...