Tôi mới nâng cấp từ 4.2 lên 4.4 và bây giờ truy vấn phân loại của tôi trở nên trống rỗng. Nó đã hoạt động tốt trước khi nâng cấp.
Tôi đã đăng ký một phân loại tùy chỉnh có tên 'title'
, được sử dụng bởi loại bài tùy chỉnh của tôi 'sg-publications'
. Theo phân cấp mẫu WP, tôi đã tạo một mẫu được gọi là taxonomy-title.php
sử dụng truy vấn mặc định, và cho đến nay đã hiển thị chính xác từng ấn phẩm theo tiêu đề của nó.
Đây là đầu ra của yêu cầu $ queried_object và $ wp_query-> trong mẫu đó:
[queried_object] => WP_Term Object
(
[term_id] => 1256
[name] => Stroupe Scoop
[slug] => stroupe-scoop
[term_group] => 0
[term_taxonomy_id] => 1374
[taxonomy] => title
[description] =>
[parent] => 0
[count] => 30
[filter] => raw
)
[queried_object_id] => 1256
[request] =>
SELECT wp_posts.*
FROM wp_posts
INNER JOIN wp_term_relationships
ON (wp_posts.ID = wp_term_relationships.object_id)
WHERE 1=1
AND wp_posts.post_title = 'stroupe-scoop'
AND (
wp_term_relationships.term_taxonomy_id
IN (1374)
)
AND wp_posts.post_type = 'sg-publications'
AND (wp_posts.post_status = 'publish'
OR wp_posts.post_status = 'private'
)
GROUP BY wp_posts.ID
ORDER BY wp_posts.post_date
DESC
Vấn đề tôi thấy trong truy vấn trên là ngay sau đó WHERE 1=1
, vì một số lý do nó đang tìm kiếm post_title = 'stroupe-scoop'
. Điều này là không chính xác - đó là sên thuật ngữ phân loại, không phải tiêu đề của bài viết. Trong thực tế, khi tôi nhận xét dòng đó và chạy nó dựa trên cơ sở dữ liệu, tôi nhận được lợi nhuận phù hợp. Vậy điều gì khiến WP thêm điều kiện đó, khi (tôi giả sử) nó không thêm nó trước khi tôi nâng cấp lên 4.4?
Đây là phân loại-title.php:
<?php
/**
* @package WordPress
* @subpackage Chocolate
*/
global $wp_query;
$quer_object = get_queried_object();
$tax_desc = $quer_object->description;
$tax_name = $quer_object->name;
$tax_slug = $quer_object->slug;
get_header();
get_sidebar();
$title = get_the_title( $ID );
$args = array(
'menu' => 'new-publications',
'container' => 'div',
'container_id' => $tax_slug . '-menu',
'menu_class' => 'menu-top-style nav nav-tab',
'menu_id' => '',
'echo' => true,
'fallback_cb' => false,
'before' => '',
'after' => '',
'link_before' => '<i class="fa fa-chevron-circle-right fa-fw fa-2x"></i>',
'link_after' => '',
'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
'depth' => 0,
'walker' => ''
);
?>
<div id="page-title">
<h1><?php _e( 'Publications - ' . $tax_name, LANGUAGE_ZONE ); ?></h1>
<p><?php _e( 'View our monthly newsletter and stay informed on the latest real estate news.', LANGUAGE_ZONE ); ?></p>
<?php wp_nav_menu($args); ?>
</div>
<div id="multicol">
<?php
if ( have_posts() ) : while ( have_posts() ) : the_post();
get_template_part( 'loop' , 'title' );
endwhile;
endif;
?>
</div><!-- end #multicol -->
<section class="page-text well"><?php _e( $tax_desc, LANGUAGE_ZONE ); ?></section>
<?php
get_footer();
Và trong hàm.php Tôi có bộ lọc truy vấn này:
// use pre_get_posts to remove pagination from publications
function gd_publications_pagination( $query ) {
if ( is_admin() || ! $query->is_main_query() )
return;
if ( is_tax('title') ) {
// Display all posts for the taxonomy called 'title'
$query->set( 'posts_per_page', -1 );
return;
}
}
add_action( 'pre_get_posts', 'gd_publications_pagination', 1 );
taxonomy-title.php
gì? Bạn có nhìn vào chủ đề functions.php
để kiểm tra xem có bất kỳ bộ lọc nào trên truy vấn chính không?