পৃষ্ঠার মতো কাজ করার জন্য শ্রেণিবদ্ধ কাস্টম পোস্ট ধরণের পারমিলিংকস পাওয়া


16

আমি এখানে কাস্টম পোস্টের ধরণের পারমিলিক্সের প্রতিটি প্রশ্নের খোঁজখবর করেছি, তবে বেশিরভাগই হয় কাস্টম টেকনোমি পুনর্লিখনের সমস্যা, বা ফ্লাশ_প্রিট_রুলস () এর স্পষ্ট অনুপস্থিত। তবে আমার ক্ষেত্রে, আমি কেবলমাত্র একটি কাস্টম পোস্ট টাইপ ব্যবহার করছি (কোনও শ্রেণীবদ্ধ নয়), শ্রেণিবদ্ধ হতে সেট (যাতে আমি পিতামাতার সাথে সম্পর্ক স্থাপন করতে পারি), মেটাবক্স ইত্যাদির জন্য যথাযথ "সমর্থন" সহ আমি I 'পুনরায় লেখার জন্য হাজার হাজার বিভিন্ন উপায়ে ফ্ল্যাশ করা হয়েছে। আমি বিভিন্ন পারমালিঙ্ক স্ট্রাকচার চেষ্টা করেছি। তবে চাইল্ড ইউআরএলগুলির ফলাফল সর্বদা 404-এ!

আমার কাছে প্রাথমিকভাবে "পিতামাতা" এবং "শিশু" উপাদানগুলির জন্য স্বতন্ত্র কাস্টম পোস্ট প্রকারগুলি ছিল (পি 2 পি ব্যবহার করে), এবং সম্ভবত "পিতামাতার" গোষ্ঠীকরণের জন্য কোনও কর শৈলী ব্যবহার করতে আমার কোনও সমস্যা হত না - আমি জানি এটি শব্দার্থগতভাবে আরও সঠিক হবে। তবে ক্লায়েন্টের পক্ষে, প্রশাসনের পৃষ্ঠাগুলির মতোই "পোস্টগুলি" প্রদর্শিত হয় যখন তাদের স্তরক্রমটি কল্পনা করা সহজ হয়: একটি সরল গাছ যেখানে বাচ্চারা পিতামাতার নীচে প্রদর্শিত হয়, "-" উপসর্গযুক্ত থাকে এবং যথাযথ আদেশ. এছাড়াও, ড্রাগ-এন-ড্রপের মাধ্যমে অর্ডার বরাদ্দের বিভিন্ন পদ্ধতি ব্যবহার করা যেতে পারে। ট্যাক্সনমি (বা পি 2 পি) এর মাধ্যমে গ্রুপিংয়ের ফলে অ্যাডমিনের তালিকাতে "পোস্ট" এর সমতল তালিকা তৈরি হয়, যা কেবল দৃশ্যমান হিসাবে সুস্পষ্ট নয়।

সুতরাং আমি যা করছি তা আক্ষরিকভাবে মূল "পৃষ্ঠাগুলি" এর মতো একই আচরণ, তবে আমার কাস্টম পোস্টের ধরণের সাথে। আমি প্রত্যাশার মতো পোস্টের ধরনটি নিবন্ধভুক্ত করেছি এবং অ্যাডমিনে এটি পুরোপুরি কাজ করে - আমি প্রতিটি নিউজলেটার "পোস্ট" এর জন্য একটি পিতামাতা এবং একটি মেনু_অর্ডার নির্ধারণ করতে পারি, তারা সম্পাদনা তালিকাগুলিতে সঠিকভাবে উপস্থিত হয়:

Spring 2012
 First Article
 Second Article

তাদের পার্মালিনক্স প্রদর্শিত সঠিকভাবে নির্মাণ করতে হবে। প্রকৃতপক্ষে, যদি আমি কাঠামো সম্পর্কে কিছু পরিবর্তন করি বা পোস্ট টাইপটি রেজিস্টার করার সময় পুনরায় লেখার স্লাগে পরিবর্তন করি তবে সেগুলি স্বয়ংক্রিয়ভাবে সঠিকভাবে আপডেট হয়, তাই আমি জানি যে কোনও কিছুর কাজ করছে:

http://mysite.com/parent-page/child-page/                  /* works for pages! */
http://mysite.com/post-type/parent-post/child-post/        /* should work? */
http://mysite.com/newsletter/spring-2012/                  /* works! */
http://mysite.com/newsletter/spring-2012/first-article/    /* 404 */
http://mysite.com/newsletter/spring-2012/second-article/   /* 404 */

শ্রেণিবদ্ধ সম্পর্ক তৈরি করার সাথে আমার কাছে স্ট্যান্ডার্ড কোর "পৃষ্ঠাগুলি" রয়েছে এবং এডমিনগুলিতে এগুলি দেখতে একই রকম হয় তবে তারা আসলে সম্মুখ-প্রান্তেও কাজ করে (পিতা-মাতার এবং সন্তানের উভয় URL ভাল কাজ করে) fine

আমার পারমালিঙ্ক কাঠামোটি সেট করা আছে:

http://mysite.com/%postname%/

আমি এটিও চেষ্টা করেছি (কেবলমাত্র আরও অনেক উত্তর দেখে মনে হয়েছিল যে এটি প্রয়োজনীয় ছিল, তবে এটি আমার ক্ষেত্রে বোধগম্য হয়নি):

http://mysite.com/%category%/%postname%/

আমার রেজিস্টার সিপিটি আর্টস অন্তর্ভুক্ত:

$args = array(
    'public'                => true,
    'publicly_queryable'    => true,
    'show_ui'               => true,
    'has_archive'           => 'newsletter',
    'hierarchical'          => true,
    'query_var'             => true,
    'supports'              => array( 'title', 'editor', 'thumbnail', 'page-attributes' ),
    'rewrite'               => array( 'slug' => 'newsletter', 'with_front' => false ),

আমার কাস্টম পোস্টের ধরণের বাচ্চাদের এবং সাধারণ পৃষ্ঠার শিশুদের মধ্যে একমাত্র দৃশ্যমান পার্থক্যটি হ'ল আমার সিপিটি-তে পেরামালিংক কাঠামোর শুরুতে স্লাগ থাকে, তারপরে পিতা / সন্তানের স্লাগগুলি অনুসরণ করা হয় (যেখানে পৃষ্ঠাগুলি কেবল পিতামাতার / শিশু স্লাগগুলির সাথে শুরু হয়, কোন "উপসর্গ")। কেন এই বিষয়গুলিকে খারাপ লাগবে, জানি না। প্রচুর নিবন্ধগুলি ইঙ্গিত দেয় বলে মনে হয় যে ঠিক যেমন এই শ্রেণিবিন্যাসের সিপিটি পার্মলিংকগুলি আচরণ করা উচিত - তবে আমার, যদিও সুন্দরভাবে গঠন করা হয়েছে, কাজ করে না।

আমি যখন ৪০৪ পৃষ্ঠার ক্যোয়ারী_ভারগুলি পরীক্ষা করি তখন আমার কী বিস্মিত হয় - মনে হয় যে তারা আমার সন্তানের পৃষ্ঠাগুলি "সন্ধান" করার জন্য ডাব্লুপি'র জন্য সঠিক মান রয়েছে তবে কিছু কাজ করছে না।

$wp_query object WP_Query {46}
public query_vars -> array (58)
'page' => integer 0
'newsletter' => string(25) "spring-2012/first-article"
'post_type' => string(10) "newsletter"
'name' => string(13) "first-article"
'error' => string(0) ""
'm' => integer 0
'p' => integer 0
'post_parent' => string(0) ""
'subpost' => string(0) ""
'subpost_id' => string(0) ""
'attachment' => string(0) ""
'attachment_id' => integer 0
'static' => string(0) ""
'pagename' => string(13) "first-article"
'page_id' => integer 0
[...]

আমি বিশ শতকে সহ বিভিন্ন থিম দিয়ে চেষ্টা করেছি, এটি নিশ্চিত করার জন্য এটি আমার দিক থেকে কিছু অনুপস্থিত টেম্পলেট নয়।

পুনর্লিখন বিধিমালা পরিদর্শক ব্যবহার করে, এটি ইউআরএলটির জন্য কী তা দেখায়: http://mysite.com/newsletter/spring-2012/first-article/

newsletter/(.+?)(/[0-9]+)?/?$   
       newsletter: spring-2012/first-article
           page: 
(.?.+?)(/[0-9]+)?/?$    
       pagename: newsletter/spring-2012/first-article
           page: 

এটি অন্য পরিদর্শক পৃষ্ঠায় কীভাবে প্রদর্শিত হয়:

RULE:
newsletter/(.+?)(/[0-9]+)?/?$
REWRITE:
index.php?newsletter=$matches[1]&page=$matches[2]
SOURCE:
newsletter

এই পুনর্লিখনের আউটপুটটি আমাকে বিশ্বাস করতে পরিচালিত করবে যে নিম্নলিখিত "নন-প্রিটি" পারমালিঙ্ক কাজ করবে:

http://mysite.com/?newsletter=spring-2012&page=first-article

এটি 404 নয়, তবে এটি সন্তানের নয়, মূল সিপিটি আইটেম "নিউজলেটার" দেখায়। অনুরোধটি এমন দেখাচ্ছে:

Array
(
    [page] => first-article
    [newsletter] => spring-2012
    [post_type] => newsletter
    [name] => spring-2012
)

উত্তর:


15

স্ট্যাক এক্সচেঞ্জে এখানে অংশ নেওয়া আমার প্রথমবারের মতো, তবে আমি এটি দিয়ে যাব এবং আমি আপনাকে সঠিক দিক নির্দেশ করতে সাহায্য করতে পারি কিনা তা দেখুন।

ডিফল্টরূপে, শ্রেণিবদ্ধ সিপিটিগুলি আপনি বর্ণিত ঠিক তেমন আচরণ করে। এক্ষেত্রে অনন্য স্লাগ উপসর্গ, "নিউজলেটার" হ'ল পুনরায় লেখক ইঞ্জিনকে কীভাবে আলাদা আলাদা পোস্টের জন্য অনুরোধ জানাতে হয় তা জানানো।

এই সিপিটি নিবন্ধকরণ আরগগুলি দেখতে দুর্দান্ত, তবে যখন কোনও সিপিটি-র অনুরোধ করা হয়, pagenameক্যোয়ারী ভারের কোনও মান থাকতে হবে না এবং nameকোয়েরি ভেরিটি newsletterএখানে যেমন হওয়া উচিত , তাই দেখা যাচ্ছে যে আপনার সেটআপে কোথাও কোনও বিরোধ আছে।

ডিবাগে সহায়তা করতে, পুনর্লিখনের নিয়ম পরিদর্শক প্লাগইন ইনস্টল এবং সক্রিয় করতে , তারপরে " সরঞ্জামগুলি -> পুনর্লিখন বিধিগুলি " তে স্ক্রিনটি দেখুন ।

  1. তালিকাটি দেখার সময়, নিউজলেটার সিপিটির জন্য আপনার সমস্ত নিয়ম কোনও পৃষ্ঠা পুনর্লিখনের নিয়মের আগে তালিকাভুক্ত করা উচিত । " উত্সটি স্ক্যান করে কেসটি যাচাই করুন " কলামটি ।
  2. যদি এটি চেক আউট হয় তবে " ম্যাচ ইউআরএল " ফিল্ডে আপনার "প্রথম-নিবন্ধ" সিপিটির জন্য ইউআরএল ইনপুট করুন এবং কোন নিয়ম মেলে তা দেখতে "ফিল্টার" বোতামটি ক্লিক করুন। এটি একটি নিউজলেটার নিয়ম এবং একটি পৃষ্ঠা নিয়মের সাথে মিলিত হওয়া উচিত তবে নিউজলেটারের নিয়মটি প্রথম হওয়া উচিত।

যদি এটি কোনও সমস্যা প্রকাশ না করে তবে সংঘর্ষ হতে পারে কিনা তা দেখার জন্য "প্রথম-নিবন্ধ" স্লাগ সহ অন্যান্য পোস্টগুলি সন্ধান করতে post_nameকলামটি অনুসন্ধান করুন wp_posts। ঠিক নিশ্চিত হওয়ার জন্য "নিউজলেটার" এর জন্যও অনুসন্ধান করুন।

পুনরায় রাইটিং রুল ম্যাচে কোনটি সেট করা হচ্ছে তা যাচাই করে দেখার জন্য অনুরোধের প্রথম দিকে আপনার ক্যোয়ারী বারগুলি পরীক্ষা করার জন্য নিম্নলিখিত স্নিপেট যুক্ত করুন (সামনের প্রান্তে চাইল্ড সিপিটি দেখুন)। যদি pagenameভার এখানে উপস্থিত না হয়, তবে অনুরোধে এটি পরে কোনও কিছু দ্বারা সেট করা হচ্ছে:

add_filter( 'request', 'se77513_display_query_vars', 1 );

function se77513_display_query_vars( $query_vars ) {
    echo '<pre>' . print_r( $query_vars, true ) . '</pre>';

    return $query_vars;
}

যে কোনও প্লাগইন / ফাংশন যা ক্যোয়ারী ওয়ারগুলি সংশোধন করে তা দ্বন্দ্বের কারণ হতে পারে, তাই যদি আপনি এখনও সমস্যাগুলি দেখতে পান তবে সেগুলি অক্ষম করুন। এছাড়াও প্রতিটি পদক্ষেপের পরে আপনার পুনর্লিখনের নিয়মগুলি ফ্লাশ করুন, বিশেষ করে যদি অনুরোধটি উপরের দ্বিতীয় ধাপে কোনও ভুল নিয়মের সাথে মিলছে ("পারমালিঙ্কস" স্ক্রিনটি একটি আলাদা ট্যাবে খোলা রাখুন এবং কেবল তা রিফ্রেশ করুন)।


পুনরায় লেখার নিয়ম পরিদর্শকের কাছ থেকে আউটপুট দেখানোর জন্য আমি প্রশ্নটি সম্পাদনা করেছি, কারণ এই মন্তব্যগুলি পর্যাপ্ত বিন্যাসের অনুমতি দেয় না। সিপিটির নিয়মগুলি তালিকার শীর্ষে অন্য যে কোনও কিছুর আগে প্রদর্শিত হবে - তবে নিশ্চিত নয় যে নীচের নিয়মগুলির মধ্যে "পৃষ্ঠা" বিধিগুলি রয়েছে (পরিষ্কার নয়)। এছাড়াও, post_nameকলামে কোনও সংঘর্ষ নেই ।
সোমমেটম

সঠিক পারমিলিং কাঠামো সম্পর্কে আপনার কোনও চিন্তাভাবনা আছে? আমি সর্বস্বান্ত ফিরে করেছি /%postname%/যেহেতু সহ /%category%/শুধুমাত্র লেখা পরিদর্শক আরও কিছু গুলান বলে মনে হয়। এমনকি আমি লোকেদের দাবি দেখেছি যে /%category%/সিপিটি-র অর্থ "প্যারেন্ট" হিসাবে বোঝানোর জন্য যাদুকরীভাবে ম্যাপ করা হয়েছে, যদিও আমি এটি সত্য বলে মনে করি না।
সোম্যাটিক

এই আউটপুটটি অন্য একটি প্লাগইন হিসাবে উপস্থিত হবে বলে মনে হচ্ছে, আপনি নিয়মের "উত্স" দেখতে পাচ্ছেন না don't যে কোনও উপায়ে, দেখে মনে হচ্ছে আপনার নিয়মটি মিলে যাচ্ছে। আমি সঠিকভাবে সেট হয়ে যাচ্ছি কিনা তা নিশ্চিত করার জন্য অনুরোধের আগে কোয়েরি ওয়ার্স পরীক্ষা করার জন্য একটি স্নিপেট অন্তর্ভুক্ত করার জন্য আমি আমার উত্তর সম্পাদনা করেছি ed
ব্র্যাডি ভারচার 15 ই

পারমালিঙ্ক স্ট্রাকচারের ক্ষেত্রে, আমি বিভাগটি অন্তর্ভুক্ত করার অনুরাগী নই। এটি কেবলমাত্র একটি চলমান অংশ যা কোনও কিছুই সাহায্য করে না এবং পোস্টগুলি একাধিক বিভাগের হতে পারে। ভবিষ্যতে পারমলিংক কাঠামো পরিবর্তন করতে পারে বা স্লাগ উপসর্গ ব্যতীত অন্য কোনও সিপিটি লোড করাতে চাইলে যদি এমন কোনও সুযোগ থাকে তবে আমি আপনার কাঠামোটিকে নির্দিষ্ট এবং অনন্য মতো কিছু দিয়ে "নেমস্পেসিং" করার পরামর্শ দেব /blog/%postname%/
ব্র্যাডি ভার্চার

এটি সঠিক প্লাগইন, তবে দুটি পৃষ্ঠা রয়েছে: "পুনরায় লেখক বিশ্লেষক" এবং "পুনর্লিখনের নিয়ম", উভয়ই পরীক্ষার ইউআরএল সরবরাহ করে। আমি অন্য পৃষ্ঠাটি চেষ্টা করেছিলাম এবং এটি উত্সটি প্রথম ইন্ডেন্টেড গোষ্ঠীর জন্য "প্রোগ্রাম" এবং দ্বিতীয়টির জন্য "পৃষ্ঠা" হিসাবে দেখায়।
সোম্যাটিক

5

parent/Childপার্মালিঙ্ক যতদিন বাক্সের বাইরে কাজ করে আপনি সেট হিসাবে

'hierarchical'=> true,
'supports' => array('page-attributes' ....

হালনাগাদ:

আমি কেবল এটি আবার পরীক্ষা করেছি এবং এটি এই পরীক্ষার ক্ষেত্রে প্রত্যাশার সাথে কাজ করে:

add_action('init','test_post_type_wpa77513');
function test_post_type_wpa77513(){
    $args = array(
        'public' => true,
        'publicly_queryable' => true,
        'show_ui' => true, 
        'show_in_menu' => true, 
        'query_var' => true,
        'rewrite' => true,
        'capability_type' => 'post',
        'has_archive' => true, 
        'hierarchical' => true,
        'supports' => array( 'title', 'editor', 'thumbnail', 'page-attributes' )
    ); 

    register_post_type( 'newsletter', $args );
}

এবং permalink সেট করে /%postname%/আমি নিউজলেটার / পিতামাতা / শিশু ঠিক কাজ করে working


উপরের আমার কোডটি এটি দেখায় নি, তবে আমার page-attributesসমর্থন রয়েছে (যা কেবলমাত্র পিতামাতাকে বরাদ্দের জন্য মেটাবক্স দেখানো সম্পর্কে, পারমালিক্সগুলিকে প্রভাবিত করা উচিত নয়) - তবে 404 এর প্রাপ্তি। কোন পারমালিঙ্ক স্ট্রাকচার সেট করা দরকার? বা এটা কোন ব্যাপার?
সোম্যাটিক

@ সুমেটিক আমি কেবল এটি আবার পরীক্ষা করেছি এবং এটির কাজ ঠিকঠাক, পারমালিঙ্কের জন্য আমি নিশ্চিত না যে এটির বিষয়টি বিবেচনা করা উচিত কিনা তবে কোনওভাবেই আমি আমার উত্তর আপডেট করেছিলাম।
বাইনারনেট

আমি নিশ্চিত করতে পারি যে, 'লেবেল'-এর জন্য একটি আর্গুমেন্ট অ্যারের যোগ করা হয়েছে (এটি ছাড়া সিপিটি অ্যাডমিনে উপস্থিত হবে না), এই মৌলিক উদাহরণটি দ্বৈতদ্বীপের সাথে WP3.5 এর একটি ভ্যানিলা ইনস্টলের কাজ করে on তবে আমি আপনার register_post_typegs আরোগুলিতে কয়েকটি মূল পার্থক্য লক্ষ্য করছি : আমি ব্যবহার করেছি 'rewrite' => array( 'slug' => 'newsletter', 'with_front' => false ), যেখানে আপনি স্রেফ ব্যবহার করেছেন true। এছাড়াও আপনি কেবল পাস trueজন্য has_archive, যেখানে আমি স্লাগ্ গৃহীত। যাইহোক, যখন আমি আপনার আরগগুলি মেলে, তখনও আমি 404 পেয়েছিলাম ... এখনও আমি কোথায় ভুল করছি তা সন্ধান করার চেষ্টা করছি।
সোম্যাটিক

3

You আপনি কি এটিকে আবার বন্ধ করে দেওয়ার চেষ্টা করেছেন? Asking জিজ্ঞাসা বাদ দিয়ে , আমাকে জিজ্ঞাসা করতে হবে "আপনার কি কোনও প্লাগইন সক্রিয় রয়েছে এবং আপনার থিমটি পারমালিক্সে কিছু করছে (যেমন: ট্যাক্সোনমি নিবন্ধন করা, পোস্টের ধরণগুলি পুনরায় লেখার নিয়ম যোগ করে? , ইত্যাদি)?

যদি তাই হয়: আপনি সমস্ত প্লাগইন অক্ষম করে এবং টুয়েন্টিলেভেনে স্যুইচ করার পরেও কি এটি এখনও ঘটে? এখানে চিত্র বর্ণনা লিখুন

আরও ডিবাগ করার জন্য, গিটহাবের দিকে রওনা করুন এবং টসচোসকে "পুনর্লিখন" প্লাগইনটি ধরুন । তারপরে wp.org- এ অফিসিয়াল প্লাগইন রেপোতে স্যুইচ করুন এবং MonkeyManRewriteAnalyzer প্লাগইন আঁকুন । আমি দুজনকে কিছুটা একসাথে আঠালো করার জন্য কিছুটা এক্সটেনশনও লিখেছিলাম। এটি আপনাকে আপনার সেটআপ সম্পর্কে প্রচুর বিবরণ দেবে।


ঠিক আছে, আমি যদি সমস্ত কিছু অক্ষম করি কাছে কাস্টম পোস্টের ধরণটি থাকবে না যা এই প্রশ্নের মূল বিষয় ... তবে হ্যাঁ, আমি বিশটি তত্ত্ব দিয়েও চেষ্টা করেছি। ক্যোয়ারিতে কী জড়ো হচ্ছে তা দেখার জন্য আমি এখনও কয়েকটি প্রয়োজনীয় প্লাগগুলি খনন করছি, যা আমি দেখতে পাচ্ছি সেগুলি থেকে পারমালিঙ্কগুলি নিজেরাই সুগঠিত।
সোম্যাটিক

@ সুমেটিক অবশ্যই আপনার অক্ষম করবেন না না :)
কায়সার

@ সুমেটিক আপডেট দেখুন।
কায়সার

1

সুতরাং আমি সম্পূর্ণ ক্লিন ইনস্টল এবং কেবল একটি একক সিপিটি ঘোষণার মাধ্যমে প্রত্যাশিত শ্রেণিবদ্ধ পৃষ্ঠার আচরণ পেতে পারি তা নিশ্চিত করার পরে, আমি জানতাম যে দোষটি আমার নিজের প্লাগইনের মধ্যেই রয়েছে যা আমি সিপিটি তৈরির ব্যবস্থাপনার জন্য ব্যবহার করি (খুব জটিল, কাস্টম মেটাবক্সগুলি পরিচালনা করে, ট্যাক্সোনমিগুলি পরিচালনা করে) ইত্যাদি)। সমস্যাটি ছিল, পুনর্লিখন বা প্রশ্নের সমাধানের জন্য যাচাই করার সমস্ত পরামর্শ সত্ত্বেও, আমি স্পষ্টত ভুল কিছু দেখতে পাচ্ছিলাম না। আমি প্রতিটি ফিল্টার এবং হুক পরীক্ষা করেছি, প্রতিটি বিন্দুতে কোয়েরিটি দেখেছি এবং 404 এর কারণ হতে পারে এমন কিছুই দেখেনি।

সুতরাং আমি 9 টি বড় শ্রেণীর প্রত্যেককে ম্যানুয়ালি নিষ্ক্রিয় / সক্ষম করার কাজটি রেখে গিয়েছিলাম এবং তারপরে, তাদের মধ্যে কমপক্ষে 2 জন 404 হ'ল কারণ হিসাবে প্রতিটি ফাংশনটি একের পর এক চালিয়ে তাদের অক্ষম / সক্ষম করে, এবং তারপরে লাইনটি চিহ্নিত করেছি এই ফাংশনগুলির মধ্যে লাইন অনুসারে - 408 কারণ ঘটছে তা ঠিক দেখার চেষ্টা করার জন্য একটি জোর জোর প্রচেষ্টা, এমনকি কেন আমি জানি না।

আমি যখন ব্যবহারের ফলাফল পেয়েছি তখনই তা ঘটে $query->get_queried_object()। মনে হচ্ছে এই মোড়ক ফাংশনটি ব্যবহার করে আসলে নিজেরাই ক্যোয়ারী পরিবর্তন করে। যা আমি ভেবেছিলাম আমার ফাংশন শেষে আমি অপরিবর্তিত ছিলাম। 2 শ্রেণীর জুড়ে তিন ফিল্টার জড়িত ছিল যে প্রশ্নের সাথে সংশোধিত: parse_query, posts_orderby, posts_join- এবং কলব্যাক ফাংশন সব কলিং হয় $query->get_queried_object()পাস উপর $queryতারপর ARG কিছু শর্তসাপেক্ষ পরীক্ষা সঞ্চালিত হবে এবং কখনও কখনও পরিবর্তন ক্যোয়ারী (যেমন বিশেষ সাজানোর ক্রম ক্ষেত্রে জন্য) Vars। আশ্চর্যের ব্যাপার যে, এই ফাংশন আসলে জরিমানা তারা যা কিছু ডিজাইন করা হয়েছে এ কাজ সত্ত্বেও আমার ব্যবহার কাজ করেছিল। এর আগে ফিরে আসা $ ক্যোয়ারির সাথে আমি কখনও কোনও ভুল লক্ষ্য করিনি!

একরকম, কয়েক ডজন লাইভ প্রোডাকশন সাইটগুলিতে এক বছরেরও বেশি বিকাশ এবং ব্যবহারের পরে, আমি এই ভুল থেকে কোনও প্রতিকূল প্রভাব কখনও পাইনি। কেবল যখন আমি শ্রেণিবদ্ধ সিপিটিগুলিতে প্রবেশ করি তখনই এই সামান্য পার্থক্যটি হঠাৎ করে জিনিসগুলি ভেঙে দেয়। এটিই আমাকে এতটা শক্ত করে ফেলেছিল তারই অংশ - আমি যতটা বলতে পারি, আমার ক্যোয়ারী ফিল্টারগুলি বিশ্বাসযোগ্য ছিল!

আমি স্বীকার করি আমি এখনও ঠিক জানি না কেন এই ফাংশনটি কল করা সিপিটি শিশু পৃষ্ঠাগুলির কেবল এই একটি ছোট দিকটি ভেঙে দেয় - এবং এখনও অন্য কোনও সমস্যা প্রকাশ পায় নি! তবে এটি স্পষ্ট ছিল যে এটি একটি ফিল্টার কলব্যাকের মধ্যে ব্যবহার করা $queryকোনওভাবেই ফিরে আসে mang এই কলটি সরিয়ে দিয়ে আমার 404 ত্রুটিগুলি অদৃশ্য হয়ে গেল।

সমস্ত টিপসের জন্য ধন্যবাদ - চূড়ান্ত সমাধানটি কিছুটা সম্পর্কযুক্ত না হলেও, প্রতিটি উত্তর থেকে অন্তর্দৃষ্টি অর্জন করার মতো, আমি অনুগ্রহকে বিভক্ত করতে পারি wish আপনার কোডটি অন্ধভাবে বিশ্বাস না করার এটি একটি শিক্ষামূলক পাঠ হয়ে দাঁড়িয়েছে, যদিও এটি দীর্ঘদিন ধরে নির্ভরযোগ্যভাবে আপনার জন্য কাজ করে, বা এটি কোনও সুস্পষ্ট ত্রুটি তৈরি করে না।

কখনও কখনও, কায়সারের চার্টটি এত সুন্দরভাবে সূচিত হয়, লাইটগুলি ফিরে না আসা পর্যন্ত আপনাকে কেবল সুইচ নিক্ষেপ করতে হবে। আমার ক্ষেত্রে, সমস্যাটি দেখার আগে আমাকে কোনও ক্রিয়াকলাপে পৃথক লাইনে নেমে একইভাবে সমস্যা সমাধানের কৌশলটি গ্রহণ করতে হয়েছিল।


আপনি অবজেক্টটিকে get_queried_object()বাধা না দিয়ে মোড়ক ফাংশনটিও ব্যবহার করতে পারেন $wpdb
কায়সার

কিন্তু $queryযে দখল করে না? আমি এটি একটি ফিল্টারের মধ্যে ব্যবহার করছি parse_query, এবং বিশেষত $queryফিল্টার থেকে পাস করা একটি নির্দিষ্ট কোয়েরি অবজেক্টটি পাওয়া দরকার ...
সোম্যাটিক

আমি কেবল আমার ফিল্টারের অভ্যন্তরে মোড়ক ব্যবহারের চেষ্টা করেছি parse_query। এটি আবার একই 404 ত্রুটি ঘটায়। get_queried_object()এই ফিল্টারগুলিকে ব্যর্থ না করে যা করতে হয় তার অনুলিপি করার জন্য আমি কিছু উপায় পেয়েছি ...
সোম্যাটিক

-2

আপনি কি ডাব্লুপি-র সর্বাধিক বর্তমান সংস্করণটি চালাচ্ছেন? আমি অনুমান করি যে এটিই প্রথম প্রশ্ন (যেমন আপনি যখন প্রযুক্তি প্রযুক্তি সমর্থন করবেন এবং তারা আপনাকে জিজ্ঞাসা করবে যে আপনার কম্পিউটারটি প্লাগ ইন করা হয়েছে কিনা!) যেহেতু আমি পড়েছি যে এই সমস্যাটি সর্বাধিক বর্তমান সংস্করণ আপডেটে সম্বোধিত হয়েছিল।

Digwp.com এ একটি পোস্ট রয়েছে যা এই সমস্যাটিকে সম্বোধন করে (http://digwp.com/2011/06/dont-use-postname/)। স্পষ্টতই ডাব্লুপি পোস্ট এবং পৃষ্ঠাগুলির মধ্যে পার্থক্যটি সহজে বলতে পারে না এবং আপনি যদি পাঠ্য-ভিত্তিক বিকল্প দিয়ে আপনার ইউআরএলগুলি শুরু করেন তবে ডাব্লুপি একটি পতাকাটি ট্রিগার করে যা আপনার প্রতিটি পৃষ্ঠা / পোস্টের জন্য একটি নিয়ম তৈরি করে। আপনার সাইটে যদি আপনার প্রচুর পরিমাণে সামগ্রী থাকে তবে এর ফলে প্রচুর সংখ্যক অনুরোধ হতে পারে এবং আপনার সার্ভারটি সম্ভবত সময় শেষ করতে পারে যার ফলস্বরূপ পৃষ্ঠাগুলি থাকা সত্ত্বেও 404 এর একগুচ্ছ হয়ে যাবে।

So. আপনি যদি প্রথমে একটি সংখ্যা ভিত্তিক কাঠামো ব্যবহার করেন তবে আপনার পাঠ্য ভিত্তিক কাঠামো, আমি বাজি দেব যে আপনার 404 সমস্যাটি সমাধান হয়ে যাবে। এখন, এসইও সম্পর্কিত বিষয় বিবেচনা করে, আমি কোনও তারিখের কাঠামো ব্যবহার করব না, তবে এই সিদ্ধান্ত নেওয়া আপনার পক্ষে যথেষ্ট যুক্তিযুক্ত হবে।


2
আমি 3.5 তে আছি ডাব্লুপি 3.3.3 হিসাবে এই সমস্যাটি ডিজিওয়পিতে স্থির হয়েছে।
সোম্যাটিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.