কাস্টম পোস্টের প্রকারগুলি নিবন্ধন করুন


44

কাস্টম পোস্টের ধরণগুলি নিবন্ধন করার কোনও উপায় কি কেউ জানেন?

এর সমতুল্য কি আছে register_post_type()?


1
অন্য যে কোনও একটি এটি অনুসন্ধান করছে। আপনি যখন কোনও কাস্টম পোস্ট টাইপ করেন তখন ডাটাবেজে কোনও কিছুই সংরক্ষণ করা হয় না। ডাব্লুপি ডিবিতে পোস্টের সারণিটি কাঠামোহীন। এটি কেবলমাত্র ডাব্লুপি স্ক্রিপ্টের ইন্টার্নালগুলির সাথে নিবন্ধভুক্ত যা আপনি রেজিস্টার পোস্টগুলির মাধ্যমে যা তৈরি করেছেন তার ধরণের সাথে আপনি পোস্ট সারণিতে একটি এন্ট্রি তৈরি করতে পারেন। আশা করি এটি অন্য কাউকে সাহায্য করবে।
MageProspero

2
ওয়ার্ডপ্রেস 4.5 হিসাবে এটি করার ফাংশন রয়েছে unregister_post_typeনিবন্ধনবিহীন পোস্ট পোস্টটি ব্যবহার করে একটি পোস্টের নিবন্ধন
ধিনজু দিবাকরণ

উত্তর:


38

বর্তমানে কোনও পোস্টের ধরণের নিবন্ধনের জন্য কোনও ফাংশন নেই, তবে প্রক্রিয়াটি বেশ সহজ।

অ্যান্ড্রু ন্যাসিন ট্র্যাকের উপর কিছু কোড সরবরাহ করেছিলেন, এখানে পাওয়া গেছে এবং নীচে পোস্ট করেছেন।

if ( ! function_exists( 'unregister_post_type' ) ) :
function unregister_post_type( $post_type ) {
    global $wp_post_types;
    if ( isset( $wp_post_types[ $post_type ] ) ) {
        unset( $wp_post_types[ $post_type ] );
        return true;
    }
    return false;
}
endif;

একটি অন্তর্নির্মিত পোস্ট প্রকারটি নিবন্ধভুক্ত করার ফলে ওয়ার্ডপ্রেসে অজানা প্রভাব পড়বে, তাই দয়া করে আপনার নিজের ঝুঁকিতে এটি করুন। একটি কাস্টম পোস্ট ধরণের নিবন্ধভুক্তি পুরোপুরি নিরাপদ হওয়া উচিত, তবে স্বাভাবিকভাবেই আপনার ইনস্টলেশনটি পরিষ্কার করবেন না (উদাহরণস্বরূপ, কোনও পোস্টের তালিকা নিবন্ধন করা ডাটাবেস থেকে ডেটা অপসারণের সমতুল্য নয়)।

আমি কয়েকটি পরিস্থিতি কল্পনা করতে পারি যেখানে এটির প্রয়োজন হতে পারে তবে আরও বোধগম্য পদ্ধতির (যেখানে সম্ভব) এটি হ'ল পোস্টের ধরণটি না চাইলে প্রথমে নিবন্ধন না করা।


2
আপনাকে স্বাগতম! .. আপনি যদি কোড আকারে নিজের পোস্টের ধরণ যুক্ত করেন, তবে সহজ সমাধান হ'ল আপনি যে ফাংশন / কোডটি চালাচ্ছেন সেগুলি কেবল তাদের মুছে ফেলা হবে। এছাড়াও নোট করুন, পোস্টের প্রকারগুলি মুছে ফেলা আপনার পোস্টের সারণি থেকে এগুলি সরিয়ে দেয় না, সুতরাং আপনার সেই টেবিলটিতে রিডানডাক্ট এন্ট্রি থাকতে পারে।
t31os

2
@ অানু: register_post_type()প্রতিটি পৃষ্ঠায় লোড ( init) ব্যবহার না করা হলে কেবলমাত্র "স্থায়ী" থাকার বিষয়টি হ'ল সম্ভবত পারমালিঙ্ক কাঠামো (এটি রিফ্রেশ করুন এবং এটি চলে যাবে) এবং ডাটাবেসে থাকা পোস্টগুলি, যা আপনি মুছে ফেলতে পারবেন করে DELETE FROM wp_posts WHERE post_type = '[your custom post type]'
জান ফ্যাব্রি

মজার বিষয় হচ্ছে, আমি সেই কাস্টম_পোস্ট_প্রকারের জন্য রেজিস্টার_পোস্ট_প্রকারের কোডটি সরিয়েছি এবং আমি এই সিপিতে কোনও পোস্ট যোগ করি নি, তবে এটি অ্যাডমিন ইউআই সরিয়ে দেয়নি।
আনু

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

3
ফেব্রুয়ারী ২০১ 2016-এ আপডেট - এই ফাংশনটি ডাব্লুপি 4.5 এর জন্য মূলতে একীভূত হয়েছিল (এপ্রিল মাসে হাস্যকর হবে)।
রিকার্ডো বিআরজিওয়েব

37

ওয়ার্ডপ্রেস 4.5 হিসাবে এটি করার জন্য ফাংশন রয়েছে unregister_post_type,। উদাহরণ: -

function delete_post_type(){
    unregister_post_type( 'blocks' );
}
add_action('init','delete_post_type');

এটি উচ্চ অগ্রাধিকারের হওয়া দরকার পরে পোস্টের
নিবন্ধটি

@ ডিঞ্জু দিবাকরণ এটি ডিবি থেকে পুরানো পোস্টের ধরণ মুছে ফেলছে না যা আমি এখন ব্যবহার করছি না।
ফাইয়াজ আলম

এটির কার্যকারী, নিশ্চিত হয়ে নিন যে আপনি পোস্টের ধরণটি নিবন্ধ করার জন্য ব্যবহৃত ক্রিয়াটির সাথে তুলনা করে এই ক্রিয়াকে উচ্চ অগ্রাধিকার দিয়েছেন।
অজিথ আর নায়ার

1
এটি উল্লেখযোগ্য যে unregister_post_type()এটি ডেটাবেস থেকে কোনও কিছু মুছবে না। এটি কেবলমাত্র পোস্টের প্রবন্ধটি নিবন্ধিত হতে বাধা দেয়।
ডেভ রোমি

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

7

এটি আমার পক্ষে কাজ করেছিল, যেমন রাস্ট যদি সম্ভব হয় অপসারণ () ব্যবহার করে বলেছিলেন

add_action( 'after_setup_theme','remove_foundation_options', 100 );

function remove_foundation_options() {   
    remove_action( 'init', 'Orbit');    
}

5

T31os হিসাবে উল্লেখ করা হয়েছে যে গ্লোবাল ভেরিয়েবল থেকে পোস্টের ধরণটি সরানো সহজ।

তবে আপনি যদি নন-কোর পোস্ট টাইপটি বোঝাতে চান তবে কোডটি নথিভুক্ত করার জন্য এটি অনুসন্ধান করা ভাল এবং এটি ভালভাবে ছুঁড়ে দেওয়া remove_action()(যদি এটি শালীন কোড হয় তবে এটি সরাসরি চালানোর পরিবর্তে হুক করা উচিত)।


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

@ জন পি ব্লচ হাঁ, আমি এটি সম্পর্কে অবহিত। কখনও কখনও আপনি এটিকে সঠিক করে
তোলার জন্য সমস্ত টিআইএন

1

ওয়ার্ডপ্রেস সংস্করণে 4.5.৫ বা তার উপরে তারা পোস্টের ধরণ (নিবন্ধভুক্ত_পোস্ট_প্রকার) সরাতে একটি ফাংশন সরবরাহ করে। উদাহরণ

function delete_post_type(){
unregister_post_type( 'jobs' );
}
add_action('init','delete_post_type');

এটি অবশ্যই কাজ করবে।

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