4.4 এ আপগ্রেড হওয়ার পরে কাস্টম ট্যাক্সনোমি কোয়েরি ভাঙা


9

আমি সবেমাত্র 4.2 থেকে 4.4 এ আপগ্রেড করেছি এবং এখন আমার বিভাগীয় কোয়েরিটি খালি ফিরে আসে। এটি আপগ্রেড করার আগে ঠিকঠাক কাজ করেছে।

আমি নামের একটি কাস্টম ট্যাক্সনমি নিবন্ধভুক্ত করেছি 'title', যা আমার কাস্টম পোস্ট ধরণের দ্বারা ব্যবহৃত হয় 'sg-publications'। ডাব্লুপি টেম্পলেট শ্রেণিবিন্যাস অনুসরণ করে আমি একটি টেম্পলেট তৈরি করেছি taxonomy-title.phpযা ডিফল্ট ক্যোয়ারী আরোগুলি ব্যবহার করে এবং এখন অবধি প্রতিটি প্রকাশনা এর শিরোনাম দ্বারা সঠিকভাবে প্রদর্শিত হয়েছে।

এখানে সেই টেমপ্লেটে $ ক্যোয়ার্ড_বজেক্ট এবং $ ডাব্লুপিপিউয়েরি-> অনুরোধের আউটপুট দেওয়া আছে:

[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 

উপরের ক্যোয়ারিতে আমি যে সমস্যাটি দেখছি তা ঠিক পরে WHERE 1=1, কোনও কারণে এটি অনুসন্ধান করছে post_title = 'stroupe-scoop'। এটি সঠিক নয় - এটি হ'ল ট্যাক্সোনমি শব্দ স্লাগ, পোস্টের শিরোনাম নয়। আসলে, যখন আমি সেই লাইনটি মন্তব্য করি এবং এটি ডাটাবেসের বিরুদ্ধে চালিত করি তখন আমি সঠিক ফলাফল পাই get তাহলে ডাব্লুপি কী কারণে এই শর্তটি যুক্ত করছে, যখন (আমি ধরে নিই) আমি এটি ৪.৪-এ উন্নীত করার আগে এটি যুক্ত করছিলাম না?

এখানে ট্যাক্সোনমি-শিরোনাম.এফপি:

<?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();

এবং ফাংশন.এফপিতে আমার এই ক্যোয়ারী ফিল্টার রয়েছে:

// 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 );

কোয়েরি কোডটি কোথায়? যদি এটি আপনার টেম্পলেটে থাকে তবে আপনি কেবল যে অংশটি ভেঙে ফেলছেন সেটিকে কেন সরাবেন না? যদি তা না হয় - আপনি কোয়েরিটি তৈরি করতে কী ব্যবহার করেছেন?
মনট্রিলিস্ট

কোনও কাস্টম কোয়েরি কোড নেই, আমি ডাব্লুপি ডিফল্ট লুপটি ব্যবহার করছি। যেহেতু আমি টেম্পলেট হায়ারার্কি অনুসরণ করছি, ডব্লিউপি আমার ট্যাক্সনোমির জন্য সঠিক কোয়েরি প্যারামিটার উত্পন্ন করা উচিত (এবং এটি আপগ্রেড করার আগে ছিল)।
গ্যারি ডি

2
আপনার বিষয়বস্তু কি taxonomy-title.php? functions.phpমূল ক্যোয়ারীতে কোনও ফিল্টার রয়েছে কিনা তা পরীক্ষা করার জন্য আপনি থিমের সন্ধান করেছেন ?
মনট্রিলিস্ট

উত্তর:


5

আমি একটি বর্গীকরণ সূত্র স্লাগ্ ব্যবহার না করার পরামর্শ দিচ্ছি পাবলিক ক্যোয়ারী ভেরিয়েবল সঙ্গে সমানুপাতিক, মত title

title ক্যোয়ারী পরিবর্তনশীল 4.4 চালু হয় তাই আমি মনে করি যে, আপনার সমস্যার ব্যাখ্যা হতে পারে।

পরীক্ষা করে দেখুন এই অংশ এর WP_Queryশ্রেণী:

    if ( '' !== $q['title'] ) {
        $where .= $wpdb->prepare( 
            " AND $wpdb->posts.post_title = %s", 
            stripslashes( $q['title'] ) 
        );
    }

সুতরাং যখন আমরা উদাহরণস্বরূপ ব্যবহার করি:

example.tld/?title=test

ওয়ার্ডপ্রেস এখানে কি করা উচিত? এটি কি ট্যাক্সোনমি কোয়েরি বা শিরোনাম অনুসন্ধান?

সুতরাং আমি কাস্টম ট্যাক্সনোমি স্লাগের উপসর্গের সুপারিশ করব , যেমন

gary_title

সম্ভাব্য নামের সংঘর্ষ এড়াতে।

হালনাগাদ:

এটি একটি বাগ, এটি ৪.৪.১-এ স্থির করা হবে বলে নির্দেশ করার জন্য @ সাগর 90 কে ধন্যবাদ


2
৪.৪-এ পরিবর্তনের বিষয়ে শীর্ষস্থানীয়দের জন্য ধন্যবাদ - আমার সন্দেহ ছিল এটি নামকরণ বিরোধ হতে পারে। আমি কয়েকটি পরীক্ষা চালানোর পরে অনুসরণ করব।
গ্যারি ডি

কয়েকটি সংস্করণ আগে পর্যন্ত আপনি কোনও পোস্টের ধরণটি নিবন্ধন করতে পারেননি code, কারণ এটি পুরো অ্যাডমিনকে ব্যাকএন্ডে মনসপাস করেছে। জেনেরিক নাম সর্বদা সংঘর্ষের প্রার্থী। অন্যদিকে, ওয়ার্ডপ্রেসের নিজস্ব ইন্টার্নালগুলির উপসর্গ করা উচিত।
ফুসিয়া

হ্যাঁ, এটা ছিল। একবার আমি ট্যাক্সনোমি শব্দটি এবং সম্পর্কিত ফাইলের নামগুলি একটি বিরোধবিরোধী স্কিমে পরিবর্তন করে ফেললে সমস্ত ফিরে এসেছিল। আপডেট ডাব্লুপি কোড আমাকে নির্দেশ করার জন্য আবার ধন্যবাদ।
গ্যারি ডি

এটি শুনে এবং আবার দৌড়াতে পেরে আনন্দিত @ গ্যারিড
বার্জায়ার

শীতল, আমি এটি পরীক্ষা করে দেখেছি যে আমি যখন কোনও পুরানো ইনস্টলটিতে হাত পাই ;-) আমি অবশ্যই অবশ্যই এই উপসর্গের টিকিটটি সমর্থন করব, তবে আমি অদূর ভবিষ্যতে এটি দেখতে পাচ্ছি না, দুঃখের সাথে @ টসচো
বার্গিরে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.