এই সহজ করা উচিত নয় ?! কাস্টম পোস্টের ধরণ / কাস্টম ট্যাক্সনমি পারমিলিংক


11

সুতরাং এটি আমাকে পুরোপুরি উন্মাদ করে চলেছে। আমি এটি ঠিক করার চেষ্টা করে দিন অতিবাহিত করেছি এবং এটি কেন এত কঠিন তা নিশ্চিত হয়ে উঠতে পারছি না কারণ এটি অবশ্যই খুব সাধারণ পারমালিঙ্ক কাঠামো!

আমি কয়েকশো উত্তর এবং পোস্ট দিয়ে দেখেছি এবং এগুলির কোনওটিই সমস্যার সমাধান বলে মনে হচ্ছে না।

আমি কেবল এই কাঠামোটি চাই:

mysite.com/custom-post-type/custom-taxonomy-term/post-name

সুতরাং আমি নিম্নলিখিত অর্জন:

mysite.com/literature - all literature posts
mysite.com/literature/fiction - all literature posts with 'fiction' term
mysite.com/literature/fiction/mybook - the post

প্রতিবার আমি কিছু চেষ্টা করার সাথে সাথে আমি 404 ত্রুটি পেয়েছি বা পৃষ্ঠাটি কাজ করে না।

বুঝতে পারছি না কেন এতো কষ্ট!

কোন সহায়তা সত্যিই প্রশংসা!

ধন্যবাদ

================================================== ==== ================== অতিরিক্ত তথ্য ==================

বর্তমানে আমি পোস্টের ধরণ এবং স্বীকৃতি নিম্নলিখিত হিসাবে নিবন্ধভুক্ত করছি:

register_post_type('literature',$args);
'rewrite' => array('slug' => 'literature/books','with_front' => false),

register_taxonomy('literature_category',array('literature'), array(
'rewrite' => array( 'slug' => 'literature','with_front' => false ),

আমি যদি উভয়কেই 'সাহিত্য' হিসাবে নিবন্ধিত করি তবে আমি mysite.com/literature পৃষ্ঠায় একটি 404 পেয়েছি তবে এটি আমার পার্মালিঙ্কটি এইভাবে প্রদর্শন করে: mysite.com/literature/books/mybook

এই প্রশ্নের পরামর্শ অনুসরণ করার পরে - কাস্টম পোস্টের ধরণ, কর বিভাগ এবং পার্মলিংক

আমি এটি আমার ফাংশনে যুক্ত করেছি:

function filter_post_type_link($link, $post) {
    if ($post->post_type != 'literature')
        return $link;

    if ($cats = get_the_terms($post->ID, 'literature_category'))
        $link = str_replace('%literature_category%', array_pop($cats)->slug, $link);
    return $link;
}
add_filter('post_type_link', 'filter_post_type_link', 10, 2);

এবং আমার পোস্টের 'slug' => 'literature/%literature_category%' ধরণটি পরিবর্তন করে আমার বিভাগে পরিবর্তন করে'slug' => 'literature'

mysite.com/literatureপৃষ্ঠাগুলি ব্যতীত এটি দুর্দান্ত কাজ করে সুতরাং নিম্নলিখিত url এ আমি 404 ত্রুটি পেয়েছি:

mysite.com/literature/page/2/


কৌতূহলের বাইরে আপনি এতক্ষণ কী চেষ্টা করেছেন?
ম্যাথু বয়েনেস

এই উত্তরটি আমাকে নিকটতম পেয়েছে - ওয়ার্ডপ্রেস.স্ট্যাকেক্সেঞ্জার.কম
সেকশনস

শীতল, আমি জিজ্ঞাসা করে খুশি, সে আমাকে কিছু সময় বাঁচিয়েছে!
ম্যাথু বয়েনেস

উত্তর:


6

আপনি ইতিমধ্যে যেমন করেছিলেন এই প্রশ্নে পরামর্শ অনুসরণ করুন , তবে এটি আপনার কোডে যুক্ত করুন:

add_action( 'generate_rewrite_rules', 'fix_literature_category_pagination' );
function fix_literature_category_pagination( $wp_rewrite ) {
    unset($wp_rewrite->rules['literature/([^/]+)/page/?([0-9]{1,})/?$']);
    $wp_rewrite->rules = array(
        'literature/?$' => $wp_rewrite->index . '?post_type=literature',
        'literature/page/?([0-9]{1,})/?$' => $wp_rewrite->index . '?post_type=literature&paged=' . $wp_rewrite->preg_index( 1 ),
        'literature/([^/]+)/page/?([0-9]{1,})/?$' => $wp_rewrite->index . '?literature_category=' . $wp_rewrite->preg_index( 1 ) . '&paged=' . $wp_rewrite->preg_index( 2 ),
    ) + $wp_rewrite->rules;
}

শেষ অবধি, সেটিংস> পারমালিঙ্কস এ যান এবং সেভকে চাপুন। যদি এটি এখনও কাজ না করে, আপনার পারমিলিকগুলি আবার সংরক্ষণ করুন। কখনও কখনও আমার মনে হয় আপনাকে দু'বার বাঁচাতে হবে তবে কে জানে। যাইহোক, আপনি কীভাবে তৈরি করবেন তা আমাকে জানান। নোট করুন যে কম্পিউটার বিজ্ঞানের স্ট্যান্ডার্ড উত্তর # 1 প্রযোজ্য: এটি আমার জন্য কাজ করে ... ;-)

টিএমআইয়ের জমি থেকে ...

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

[literature/([^/]+)/([^/]+)(/[0-9]+)?/?$] => index.php?literature_category=$matches[1]&book=$matches[2]&page=$matches[3]
[literature/([^/]+)/page/?([0-9]{1,})/?$] => index.php?literature_category=$matches[1]&paged=$matches[2]

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

মজাদার ঘটনা: আপনার যদি "পৃষ্ঠা" শিরোনামে কোনও "বই" থাকে এবং এর একাধিক পৃষ্ঠা থাকে তবে এই আদেশটি দ্বন্দ্ব বোধ করবে এবং এর পরবর্তী পৃষ্ঠাগুলি কাজ করবে না!


হ্যাঁ, এটা আমার কাছে ঘটেছে যে আমার বাক্য গঠন এখানে ভুল ছিল। যথেষ্ট মজাদার, এটি আমার পক্ষে কাজ করে এবং যখন আমি এটি ঠিক করি তখন এটি কার্যকর হয় না। আমি এটি রাখব এবং আমার উত্তরটি আপডেট করব যখন আমি এটি বের করব ...
ম্যাথু বয়েনেস

ম্যাথিউ আপনার সাহায্যের জন্য ধন্যবাদ। আমি চেষ্টা করেছিলাম এবং দুর্ভাগ্যক্রমে এটি কার্যকর হয়নি। আমি আমার প্রশ্নে আরও তথ্য যুক্ত করেছি যা আশা করি এটি আরও ভাল ব্যাখ্যা করা হয়েছে!
fxfuture

1
ঠিক আছে, বিভ্রান্তির জন্য আমার ক্ষমা চাই। সেখানে সামান্য মস্তিষ্কের গ্যাস ছিল (সম্প্রতি কিছুটা মস্তিষ্কের মটরশুটি থাকতে হবে)। আমার উত্তর আপডেট করা হয়েছে, এবং আবার এটি আমার জন্য কাজ করে। আপনার permalink ওভার সংরক্ষণ করতে ভুলবেন না।
ম্যাথু বয়েনেস

1
ওহ, আমি আপনার আপডেট হওয়া প্রশ্নটি দেখেছি। সুতরাং এটি যে সাহিত্য / কল্পকাহিনী / পৃষ্ঠা / 2 কাজ করে না, এটি যে / সাহিত্য / পৃষ্ঠা / 2 কাজ করে না, এটা কি ঠিক? যদি তা হয় তবে এটি একটি সহজ সমাধান, আমরা একই জিনিসটি একটি স্তর পর্যন্ত করব
ম্যাথু বয়েনেস

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