বছর এবং মাস অনুসারে আপনি কোনও কাস্টম পোস্ট প্রকারের সংরক্ষণাগারগুলি কীভাবে প্রদর্শন করবেন?
বছর এবং মাস অনুসারে আপনি কোনও কাস্টম পোস্ট প্রকারের সংরক্ষণাগারগুলি কীভাবে প্রদর্শন করবেন?
উত্তর:
হ্যা, তুমি পারো. আপনার যা দরকার তা হল ফিল্টার তৈরি করা wp_get_archives();
যাতে এটি post_type
পরামিতি গ্রহণ করে :
function my_custom_post_type_archive_where($where,$args){
$post_type = isset($args['post_type']) ? $args['post_type'] : 'post';
$where = "WHERE post_type = '$post_type' AND post_status = 'publish'";
return $where;
}
তারপরে এটিকে কল করুন:
add_filter( 'getarchives_where','my_custom_post_type_archive_where',10,2);
আপনি যখনই কাস্টম পোস্ট ধরণের মাধ্যমে সংরক্ষণাগার প্রদর্শন করতে চান, কেবল পোস্ট_ টাইপ আরোগুলি পাস করুন:
$args = array(
'post_type' => 'your_custom_post_type',
'type' => 'monthly',
'echo' => 0
);
echo '<ul>'.wp_get_archives($args).'</ul>';
/%category%/%year%/%monthnum%/%postname%/
। তারপরে, /%category%/
কেবলমাত্র তারিখের পরিবর্তে শুরু করার জন্য লিঙ্কগুলি সংশোধন করে উপরের মতো অনুরূপ হুক ব্যবহার করা সম্ভব হতে পারে ।
mysite.com/2013/04
তবে এটি 404 এর দিকে নিয়ে যায় The কাস্টম পোস্টের ধরণটি এখানে পাওয়া যায়: mysite.com/cats
যা আমাকে mysite.com/cats/2013/04
ভাবায় যে লিঙ্কটি কী হওয়া উচিত, তবে এটি 404-র সমাধানও করে। আপনি কীভাবে সংরক্ষণাগার লিঙ্কগুলি পাবেন?
আপনি করবেন না, ওয়ার্ডপ্রেস বিকাশকারীদের অফিশিয়াল লাইনটি হ'ল কাস্টম পোস্ট টাইপগুলি সাধারণ সাধারণ পোস্টগুলির কাজ করার উদ্দেশ্যে নয় এবং যদি আপনার খেজুরের সংরক্ষণাগার ইত্যাদির প্রয়োজন হয় তবে আপনি জিনিসগুলি সঠিকভাবে করছেন না, এবং আপনি পোস্ট ফর্ম্যাট ইত্যাদি ব্যবহার করা ভাল ..
কাস্টম পোস্টের প্রকারগুলি ওয়েব অ্যাপ্লিকেশন ইত্যাদির জন্য, যদিও এমন কোনও কাস্টম পোস্ট টাইপ সেটআপ করার মতো যা কিছু ভিন্ন নামে সেকেন্ডারি বা সমান্তরাল ব্লগ হিসাবে কাজ করে, যেমন ব্লগ বনাম নিউজ, একই ক্ষমতা সহ, বৈশিষ্ট্যটি যা ছিল তা নয় এর উদ্দেশ্যে, এবং এর বাস্তবায়ন থেকে উদ্ভূত অন্যান্য প্রযুক্তিগত সমস্যার অর্থ হবে।
আপনি যদি এখনও এই বিষয়ে জেদ করে থাকেন, এবং কেবল কাস্টম ট্যাক্সনোমিজ এবং পোস্ট ফর্ম্যাটগুলি ব্যবহার করা যথেষ্ট না হয় তবে আপনি ফাংশন.ফেপগুলিতে পুনর্লিখনের বিধিগুলি যোগ করতে পারেন এবং পোস্ট URL সংরক্ষণাগার পৃষ্ঠায় নির্দিষ্ট URLগুলিতে বছর / মাস সংরক্ষণাগার পুনর্নির্দেশ করতে পারেন এবং তারপরে কাস্টমটি পরীক্ষা করে দেখুন আপনি যদি আপনার পুনর্লিখনের নিয়মে ভেরিয়েবল নির্দিষ্ট করে থাকেন এবং উপযুক্ত মানগুলি সেট করার জন্য আপনার পুনর্লিখনের নিয়মে নিশ্চিত হয়ে থাকেন তবে কোনও সংরক্ষণাগার পৃষ্ঠা পোস্ট করুন।
সম্পাদনা করুন -> যদিও উত্তরটি এখনও <WP4.4 এর জন্য কাজ করে, যেহেতু কাস্টম পোস্ট প্রকারের জন্য ৪.৪ সমর্থন এখন অন্তর্ভুক্ত করা হয়েছেwp_get_archives()
ওয়ার্ডপ্রেসে কাস্টম পোস্ট প্রকারের তারিখ ভিত্তিক সংরক্ষণাগারগুলির জন্য অবশেষে একটি সহজ, দ্রুত এবং সহজ সমাধান রয়েছে! এটি দীর্ঘকাল ধরে চলে আসা সমস্যা ছিল যা ডাব্লুপি কোর ট্রাকে এখানে লিপিবদ্ধ করা হয়েছে ।
এটি এখনও সমাধান করা যায় নি তবে ট্র্যাকের অবদানকারীদের মধ্যে একটি গিটহাবে একটি সাধারণ প্লাগইন পোস্ট করেছে যা আপনাকে সিপিটি-র জন্য তারিখ ভিত্তিক সংরক্ষণাগার রাখতে সক্ষম করবে।
এই প্লাগইনটি ইনস্টল করার পরে, বা ম্যানুয়ালি আপনার ফাংশনগুলির জন্য কোড যুক্ত করার পরে আপনি সিপিটিগুলির জন্য সংরক্ষণাগারগুলি যেমন ব্যবহার করেন:
<?php wp_get_archives_cpt( 'post_type=custom_post_type' ); ?>
নোট করুন এই নতুন ফাংশনটি wp_get_archives_cpt
স্ট্যান্ডার্ডের মতোই কাজ করে wp_get_archives
যাতে আপনি এটি যে কোনও নিয়মিত আর্গুমেন্ট গ্রহণ করেন তা ব্যবহার করতে পারেন। তবে এটি কেবল আপনার পছন্দসই পোস্টের নামের নামের যুক্তি যুক্ত করতে সক্ষম করার ক্ষমতা যোগ করে adds
দুঃখিত, তাইকেনের উত্তরে এটি যুক্ত করার পক্ষে যথেষ্ট খ্যাতি নেই।
তবে এটি যুক্ত করতে চেয়েছিলেন যে তার উত্তরটি আমার পক্ষে কাজ করেছে, তবে লিঙ্কগুলি 'লোকালহোস্ট / তারিখ / 2010' ফর্ম্যাটে ছিল। যেখানে আমার 'লোকালহোস্ট / পোস্টস্লাগ / 2010' ফর্ম্যাট দরকার। আমি wp_get_archives এর আউটপুটটিতে স্ট্রিং প্রতিস্থাপন ব্যবহার করে এটি ঠিক করতে সক্ষম হয়েছি।
সুতরাং কীভাবে আপনার পারমালিঙ্কস সেট করা আছে তার উপর নির্ভর করে এই কোডটি 404 টি সমস্যার সমাধান করবে এবং লিঙ্কগুলিকে কাস্টম পোস্ট ধরণের পারমালিঙ্ক কাঠামোটিতে পুনর্নির্দেশ করবে:
$yearly_archive = wp_get_archives(array( 'type' => 'yearly', 'post_type' => '<your post type name>', 'echo' => '0') );
$blog_url = get_bloginfo('url');
echo str_replace(($blog_url . '/date'), ($blog_url . '<your post type slug>'),$yearly_archive);
টাকিয়েনের পোস্টে যুক্ত করা যায় না তাই এখানে আমি যা করতে পেরেছি তা এখানে:
থিমের functions.php
add_action('init', 'my_year_archive_rewrites');
function my_year_archive_rewrites() {
add_rewrite_rule('resource/news/([0-9]{4})/page/?([0-9]{1,})/?', 'index.php?post_type=news&year=$matches[1]&paged=$matches[2]', 'top');
add_rewrite_rule('resource/news/([0-9]{4})/?', 'index.php?post_type=news&year=$matches[1]', 'top');
}
add_filter('getarchives_where', 'my_custom_post_type_archive_where', 10, 2);
function my_custom_post_type_archive_where($where,$args){
$post_type = isset($args['post_type']) ? $args['post_type'] : 'post';
return "WHERE post_type = '$post_type' AND post_status = 'publish'";
}
add_filter('year_link', 'my_year_link');
function my_year_link($link) {
global $wp_rewrite;
if(true) { // however you determine what archive you want
$link = str_replace($wp_rewrite->front, '/resource/news/', $link);
}
return $link;
}
কল করা wp_get_archives ()
wp_get_archives(array('post_type'=>'news', 'type'=>'yearly'));