পৃষ্ঠার পার্মালিঙ্ক বিবাদ (একই স্লাগ) বনাম একটি কাস্টম পোস্ট প্রকারের নামটি সমাধান করুন


19

আমার কাছে "ভিসনিংসহুস" নামে একটি কাস্টম পোস্ট টাইপ রয়েছে এবং সেই স্লাগের সাথে একটি পৃষ্ঠাও রয়েছে। এটি যেমন হওয়া উচিত (অবশ্যই) হওয়া উচিত।

বর্তমানে, " http://my-site.com/visningshus " এ ধরণের সমস্ত পোস্ট তালিকাভুক্ত করে। আমি সেই পৃষ্ঠাটি দেখতে চাই যার পরিবর্তে সেই পার্মালিঙ্ক স্লাগ রয়েছে।

আমি কীভাবে ওয়ার্ডপ্রেসটিকে পোস্টের নামটিকে প্রাধান্য না দিয়ে তার পরিবর্তে পারমালিঙ্ক তৈরি করতে এবং পৃষ্ঠাটি প্রদর্শন করতে পারি?

উত্তর:


33

সবচেয়ে সহজ হবে এই সিপিটির জন্য সংরক্ষণাগার পৃষ্ঠাটি অক্ষম করা:

register_post_type( 'visningshus',
    array(
        [...]
        'has_archive' => false,
        [...]
    )
);

পরে "সেটিংস> পারমলিংকস" এ আপনাকে পারফরমিকগুলি রিফ্রেশ করতে ভুলবেন না


1
নিখুঁতভাবে কাজ করেছেন - তবে এখন ডাব্লুপি-অ্যাডমিনে সঠিক হওয়া সত্ত্বেও কাস্টম পোস্ট টাইপের নাম দিয়ে শুরু করা সমস্ত পারমিলিক্স একটি 404 দেয়, আবার কোনও পুনর্লিখন ঘটেছিল বলে মনে হয় না। এর অর্থ হল, সমস্ত পারমলিংকগুলি সাইটে সঠিক, তবে সমস্ত কাস্টম পোস্ট একটি 404 দেয় you আপনি কি এটিতে সহায়তা করতে পারেন? :)
হেনরিক এরল্যান্ডসন

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

খুব বুদ্ধিমান. একগুচ্ছ সমস্যার সমাধান করে
বাইসঞ্চি

8

আমি @ কার্লের পোস্টে মন্তব্য করার মতো উচ্চ খ্যাতি নই, তবে তার সঠিক উত্তর (কমপক্ষে পৃষ্ঠা স্লাগ এবং কাস্টম পোস্ট টাইপ স্লাগ একই রকম রাখার এবং একটি সংরক্ষণাগার.এফপিপি ফাইল ব্যবহার না করার এই পরিস্থিতিতে )

তবে তার উত্তর পৃষ্ঠাবদ্ধকরণের সাথে ত্রুটি দেয়। পৃষ্ঠাগুলি ত্রুটি এড়াতে:

add_rewrite_rule('^visningshus/page/([0-9]+)','index.php?pagename=visningshus&paged=$matches[1]', 'top');

এটি পৃষ্ঠায়িতকরণটি দেখায়, পৃষ্ঠা নম্বরটি আঁকায় এবং তারপরে ফ্লিপ সাইডটি এটি মিলিয়ে স্লাগের সাথে পৃষ্ঠাটি ব্যবহার করতে বাধ্য করে এবং তারপরে পৃষ্ঠাটি পরিবর্তনশীল সন্নিবেশ করায়।

এই ছাড়াও করার 'has_archive' => false,উপরে পোস্ট আকাঙ্ক্ষিত কার্যকারিতা অর্জন করা উচিত নয়।

অন্যরা যেমন বলেছে, এই পরিবর্তনটি করার পরে সেটিংস> পারমালিক্সে গিয়ে পুনর্লিখনের নিয়মগুলি নিশ্চিত করে ফেলা নিশ্চিত হন।

আশা করি এটি কাউকে সাহায্য করবে, কারণ আমি জানি যে এটি আমাকে দীর্ঘদিন ধরে স্ট্যাম্পড করেছে।


4

তেনা হেনরিক!

আমি মনে করি আপনাকে যা করতে হবে তা হ'ল ওয়ার্ডপ্রেস পুনর্লিখনের নিয়মে ইতিমধ্যে তৈরি করা একটি পুনর্লিখনের নিয়ম যুক্ত করা। আপনার থিমের ফাংশন.ফ্পে এই কোড স্নিপেট যুক্ত করুন বা এটি একটি পৃথক পগিন হিসাবে অন্তর্ভুক্ত করুন ...

add_action('init', function () {
     add_rewrite_rule('visningshus/?$','index.php?pagename=visningshus', 'top');
     flush_rewrite_rules();
}, 1000);

4
যদি কেউ এটি ব্যবহার করে তবে সরান flush_rewrite_rules();আপনার initপ্রতিবার পুনর্লিখনের নিয়মগুলি পরিবর্তন করা উচিত নয় । একবার এটি পুনরায় লোড করুন, বা অ্যাডমিন ড্যাশবোর্ডে পার্মালিঙ্ক সেটিংসে গিয়ে ম্যানুয়ালি
পেরামালিংকগুলি ফ্লাশ

0

দ্বন্দ্ব সমাধান না করেই সমাধান করেছি। স্লাগ ভিজিনসিংস সহ একটি পৃষ্ঠা তৈরি করুন এবং এতে আপনি যা চান তা লিখুন। এই পৃষ্ঠার আইডি নোট নিন।

আপনি যেভাবে পছন্দ করুন আর্কাইভ-কাস্টম-পোস্ট-টাইপ.এফপি টেম্পলেট তৈরি করুন এবং কাস্টমাইজ করুন (সম্ভবত আপনি কেবল একটি পৃষ্ঠা টেম্পলেট ব্যবহার করবেন) তবে লুপ অংশটি এর সাথে প্রতিস্থাপন করুন

$recent = new WP_Query("page_id=your-page-id");  
while($recent->have_posts()) : $recent->the_post();
    the_content();
endwhile;

তারপরে আপনি যখন http://my-site.com/visningshus এ যাবেন তখন আপনি পৃষ্ঠাটি সঠিক url- এ পরিচালিত সামগ্রী দেখতে পাবেন।

আমাকে জানাতে এটি কাজ করে।


দুর্দান্ত ধারণা, তবে এটি অত্যধিক জটিল। তুমি কি আমার সমাধান চেষ্টা করেছ?
ক্রাফ্টনার

@ ক্র্যাফটার না, আমি করিনি। আমি পরের বার চেষ্টা করে দেখব। ধন্যবাদ!
মোলোকম

এটিতে শিরোনামের মতো কিছু পার্শ্ব প্রতিক্রিয়া রয়েছে এবং এখনও কিছু তৈরি হচ্ছে যেন এটি কোনও সংরক্ষণাগার পৃষ্ঠা এবং কোনও পৃষ্ঠা নয়। আমি সেই সমাধানটি ব্যবহার করার পরামর্শ দেব না।
ক্রাফ্টনার

পৃষ্ঠা আইডি পরিবর্তন হলে কী হবে? এটি নিরাপদ নয়।
জোয়েল জেমস

0

ভোট দেওয়ার অনুমতি নেই, তবে + কার্লস সমাধানের জন্য, রেজিস্টার_পোস্ট_ টাইপ থাকা উচিত

'has_archive' => false

সহজ। তবে, আপনি যখন পৃষ্ঠাবদ্ধতার সমস্যার মুখোমুখি হন, একবার দেখুন

add_rewrite_rule

0

আমার জন্য এটি কী স্থির করেছিল তা সংরক্ষণাগারটিকে মিথ্যা হিসাবে সেট করা ছিল কিন্তু আমার কাস্টম পোস্টের ধরণের সেট আপ করার সময় হায়ারার্কিকালটিকে মিথ্যা হিসাবে সেট করা ছিল!


0

যে কোনও কাস্টম পোস্ট ধরণের স্লাগের জন্য কাস্টম পোস্ট ধরণের সামগ্রীতে পৃষ্ঠাগুলি অগ্রাধিকার দেওয়ার একটি সাধারণ সমাধান এখানে।

// prioritize pagination over displaying custom post type content
add_action('init', function() {
  add_rewrite_rule(
    '(.?.+?)/page/?([0-9]{1,})/?$',
    'index.php?pagename=$matches[1]&paged=$matches[2]',
    'top'
  );
});

এই স্নিপেট যোগ করার পাশাপাশি, আপনার কাস্টম পোস্টের প্রকারটিও নিশ্চিত করা উচিত archive = false

এবং সর্বশেষে তবে অন্ততপক্ষে Permalink সেটিংস পৃষ্ঠা সেটিংস> Permalink (/wp/wp-admin/options-permalink.php) এ যান এবং পৃষ্ঠায় লিঙ্ক কাঠামো রিফ্রেশ করতে বর্তমান সেটিংস সংরক্ষণ করুন।

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