Saya baru saja memutakhirkan dari 4.2 ke 4.4 dan sekarang permintaan taksonomi saya kembali kosong. Sudah berfungsi dengan baik sebelum peningkatan.
Saya telah mendaftarkan taksonomi khusus bernama 'title'
, yang digunakan oleh jenis pos kustom saya 'sg-publications'
. Mengikuti hierarki templat WP, saya membuat templat yang disebut taxonomy-title.php
yang menggunakan arg kueri default, dan sampai sekarang telah menunjukkan dengan benar setiap publikasi berdasarkan judulnya.
Ini adalah output dari $ queried_object dan $ wp_query-> request dalam templat itu:
[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
Masalah yang saya lihat dalam kueri di atas tepat setelah WHERE 1=1
, karena beberapa alasan ia mencari post_title = 'stroupe-scoop'
. Ini tidak benar - itu adalah istilah siput taksonomi, bukan judul tulisan. Bahkan, ketika saya mengomentari baris itu dan menjalankannya terhadap database saya mendapatkan pengembalian yang tepat. Jadi apa yang menyebabkan WP menambahkan kondisi itu, ketika (saya berasumsi) itu tidak menambahkannya sebelum saya memutakhirkan ke 4.4?
Berikut adalah taksonomi-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();
Dan di functions.php saya memiliki filter kueri ini:
// 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
? Apakah Anda melihat di tema functions.php
untuk memeriksa apakah ada filter pada permintaan utama?