$post_type ( ओळ) तुम्हाला तुमच्या पोस्ट प्रकाराला काय नाव द्यायचे आहे, हे नाव भविष्यात अनेक फंक्शन्सच्या पॅरामीटर्समध्ये वापरले जाईल, हे लक्षात ठेवा. याव्यतिरिक्त, वर्डप्रेसने आरक्षित केलेले खालील शब्द शीर्षक म्हणून वापरले जाऊ शकत नाहीत:
- संलग्नक
- पुनरावृत्ती
- nav_menu_item
- custom_css
- customize_changeset
- क्रिया
- ऑर्डर
- थीम
- लेखक
डीफॉल्ट: सार्वजनिक युक्तिवाद मूल्य. exclude_from_search( तार्किक)
- खरे — साइटवरील शोध परिणामांमधून या प्रकारच्या नोंदी वगळा,
- असत्य - वगळू नका.
डीफॉल्ट: सार्वजनिक पॅरामीटरच्या विरुद्ध मूल्ये. दाखवा_इन_नेव्ही_मेनू( तार्किक) साइट मेनूमध्ये जोडण्यासाठी या प्रकारच्या पोस्टचे घटक उपलब्ध करून द्यावेत की नाही.
डीफॉल्ट: सार्वजनिक युक्तिवाद मूल्य. show_ui( तार्किक) या प्रकारचे रेकॉर्ड संपादित करण्यासाठी आणि जोडण्यासाठी प्रशासक पॅनेलमध्ये मानक इंटरफेस जोडणे आवश्यक आहे का.
डीफॉल्ट: सार्वजनिक युक्तिवाद मूल्य.
दाखवा_इन_मेनू ( तार्किक|ओळ) प्रशासक मेनूमध्ये आयटम जोडणे आवश्यक आहे का.
डीफॉल्ट: show_ui युक्तिवादाचे मूल्य. show_in_admin_bar ( तार्किक) प्रशासक पॅनेलमध्ये या प्रकारचा नवीन रेकॉर्ड तयार करण्यासाठी लिंक जोडणे आवश्यक आहे का.
डीफॉल्ट: show_in_menu वितर्काचे मूल्य. मेनू_स्थिती( पूर्णांक) ऍडमिन पॅनेलमधील मेनूमधील व्यवस्थेचा क्रम.
menu_icon( ओळ) मेनूसाठी आयकॉनची परिपूर्ण URL. इष्टतम प्रतिमा रिझोल्यूशन 16x16 पिक्सेल आहे.याव्यतिरिक्त, वर्डप्रेस 3.8 ने एक अंगभूत आयकॉन पॅक सादर केला - तुम्ही यापैकी कोणतेही चिन्ह फक्त पॅरामीटर मूल्य म्हणून निर्दिष्ट करून वापरू शकता, उदाहरणार्थ dashicons-cart.
डीफॉल्टनुसार, नियमित पोस्टसाठी चिन्ह वापरले जाते. वापरकर्त्यासह_मिटवा( तार्किक) ब्लॉगवरील वापरकर्ता हटवताना, त्याने प्रकाशित केलेल्या या प्रकारच्या सर्व नोंदी आपोआप हटवल्या जाव्यात का?
डीफॉल्ट: असत्य. श्रेणीबद्ध ( तार्किक) या प्रकारच्या पोस्टमध्ये पदानुक्रम असावा का.
डीफॉल्ट: असत्य. has_archive( तार्किक|ओळ) या प्रकारच्या पोस्टचे स्वतःचे संग्रहण पृष्ठ असावे का. आपण पॅरामीटर मूल्य म्हणून संग्रहण पृष्ठावर शॉर्टकट निर्दिष्ट करू शकता.
डीफॉल्ट: असत्य. पुन्हा लिहा ( रचना|तार्किक) URL मध्ये permalinks साठी नियम सेट करते. तुम्ही या पॅरामीटरचे मूल्य म्हणून असत्य निर्दिष्ट केल्यास, परमलिंकसाठी नियम तयार केले जाणार नाहीत.
स्लग ( ओळ) या प्रकारच्या पोस्टसाठी वापरलेले लेबल (डीफॉल्ट पोस्ट प्रकाराचे नाव आहे) with_front ( तार्किक) हे मूल्य $wp_rewite->परमलिंक्समध्ये (डिफॉल्ट - खरे) फीडमध्ये जोडायचे की नाही ( तार्किक) या प्रकारच्या पोस्टसाठी RSS फीड तयार करणे आवश्यक आहे का (डिफॉल्टनुसार - has_archive पॅरामीटरचे मूल्य) पृष्ठे ( तार्किक) टॅग वापरून नोंदणीकृत प्रकारच्या पोस्टमध्ये पृष्ठांकनास अनुमती असावी(डिफॉल्ट सत्य आहे) समर्थन करते ( रचना) या प्रकारच्या नोंदी संपादित करण्यासाठी पृष्ठांवर कोणती जोडणे आवश्यक आहे.
- शीर्षक - पोस्टचे शीर्षक प्रविष्ट करण्यासाठी फील्ड
- संपादक - मजकूर संपादक
- उतारा - "कोट" मेटाबॉक्स
- लेखक - "लेखक" मेटाबॉक्स
- थंबनेल - "पोस्ट थंबनेल" मेटाबॉक्स (याव्यतिरिक्त, तुमची थीम त्यांना समर्थन देणे आवश्यक आहे)
- टिप्पण्या — “टिप्पण्या” मेटाबॉक्स (निर्दिष्ट असल्यास, नोंदणीकृत प्रकारच्या पोस्टवरील टिप्पण्यांना परवानगी आहे)
- ट्रॅकबॅक - मेटाबॉक्स "बॅकलिंक्स पाठवा"
- कस्टम फील्ड - "कस्टम फील्ड" मेटाबॉक्स (कोणत्याही परिस्थितीत कस्टम फील्ड समर्थित असतील)
- पुनरावृत्ती — “पुनरावृत्ती” मेटाबॉक्स (निर्दिष्ट असल्यास, डेटाबेसमध्ये या प्रकारच्या पोस्टची पुनरावृत्ती तयार केली जाईल)
- पृष्ठ-विशेषता - मूळ घटक निवडण्याची आणि ऑर्डर मेनू_ऑर्डर सेट करण्याच्या क्षमतेसह "पृष्ठ विशेषता" मेटाबॉक्स
- पोस्ट-स्वरूप - "स्वरूप" मेटाबॉक्स, पोस्ट स्वरूपांबद्दल अधिक वाचा. वर्गीकरण ( रचनाया पोस्ट प्रकारासाठी वर्गीकरण किंवा post_tag सारख्या वर्गीकरणाचा अॅरे वापरला जाईल. फंक्शन वापरून तुम्ही वर्गीकरण देखील नियुक्त करू शकता.
पोस्ट प्रकार नोंदणीचे उदाहरण
कोड कुठे घालायचा हे तुम्हाला माहीत नसल्यास, तुमच्या सध्याच्या थीमच्या functions.php मध्ये पेस्ट करा.
add_action ( "init" , "true_register_products" ); // फंक्शन फक्त init हुकच्या आत वापराफंक्शन true_register_products() ( $labels = array ( "name" => "उत्पादने" , "singular_name" => "उत्पादन" , // प्रशासन पॅनेल जोडा->फंक्शन"add_new" => "उत्पादन जोडा" , "add_new_item" => "नवीन उत्पादन जोडा", // टॅग शीर्षक |
सानुकूल पोस्ट प्रकार तयार करा लेखसानुकूल श्रेणींसह (सानुकूल वर्गीकरण) लेख श्रेणी.
माझ्या बाबतीत, सर्व मानक रेकॉर्ड उत्पादने आहेत, म्हणून आम्ही सानुकूल रेकॉर्डद्वारे लेख प्रदर्शित करू.
फंक्शन्स फाईल functions.php मध्ये आम्ही सानुकूल पोस्ट प्रकार लेख नोंदणी करतो:
फंक्शन wptp_create_post_type() ( $labels = array("name" => __("लेख"), "singular_name" => __("लेख"), "add_new" => __("नवीन लेख"), "add_new_item" => __("नवीन लेख जोडा"), "edit_item" => __("लेख संपादित करा"), "new_item" => __("नवीन लेख"), "view_item" => __("लेख पहा"), "search_items" => __("लेख शोधा"), "not_found" => __("कोणतेही लेख सापडले नाहीत"), "not_found_in_trash" => __("कचऱ्यात कोणतेही लेख आढळले नाहीत"), $args = array( "labels" => $labels, "has_archive" => खरे, "सार्वजनिक" => खरे, "श्रेणीबद्ध" => असत्य, "मेनू_स्थिती" => 5, "समर्थन" => अॅरे("शीर्षक", "संपादक" , "उतारा", "कस्टम-फील्ड", "थंबनेल")); register_post_type("लेख", $args); ) add_action("init", "wptp_create_post_type");
तुम्हाला सानुकूल पोस्ट्समध्ये मानक श्रेण्या प्रदर्शित करायच्या असल्यास, त्यांना श्रेणी वर्गीकरणाशी लिंक करा:
"taxonomies" => अॅरे("श्रेणी"),
जर तुम्ही सानुकूल पोस्टसाठी सानुकूल वर्गीकरण देखील तयार केले असेल, तर तुम्हाला ते तयार केलेल्या वर्गीकरणाशी जोडणे आवश्यक आहे; आम्ही खालील उदाहरण घेतल्यास, हे लेख_श्रेणी असतील.
"वर्गीकरण" => अॅरे("लेख_श्रेणी"),
त्यानंतर, सानुकूल लेख पोस्ट प्रकारासाठी, आम्ही ‘लेख श्रेणी’ वर्गीकरण नोंदणी करतो जेणेकरून भिन्न पोस्ट वेगवेगळ्या श्रेणींमध्ये असतील.
फंक्शन wptp_register_taxonomy() ( register_taxonomy("articles_category", "लेख", array("labels" => array("name" => "लेख श्रेणी", "singular_name" => "लेख श्रेणी", "search_items" => " लेख श्रेणी शोधा", "all_items" => "सर्व लेख श्रेणी", "edit_item" => "लेख श्रेणी संपादित करा", "update_item" => "लेख श्रेणी अद्यतनित करा", "add_new_item" => "नवीन लेख श्रेणी जोडा", "new_item_name" => "नवीन लेख श्रेणीचे नाव", "menu_name" => "लेख श्रेणी", "hierarchical" => true, "sort" => true, "args" => array("orderby" => "term_order"), "show_admin_column" => true)); ) add_action("init", "wptp_register_taxonomy");
सानुकूल वर्गीकरणासाठी, तुम्ही स्लगला अधिक सुंदर मध्ये बदलू शकता जेणेकरून ते articles_category नाही, परंतु तुम्हाला हे सुनिश्चित करणे आवश्यक आहे की असे स्लग यापुढे इतर पृष्ठांवर किंवा पोस्टवर अस्तित्वात नाहीत, अन्यथा समस्या असतील:
"पुनर्लेखन" => अॅरे("स्लग" => "ब्लॉग"),
स्लग्स बदलताना, तुम्हाला अॅडमिन पॅनलमधील "कायम लिंक्स" सेटिंग्ज अपडेट करणे आवश्यक आहे, अन्यथा तुम्हाला इच्छित पृष्ठाऐवजी 404 त्रुटी प्राप्त होईल.
अधिक उदाहरणे येथे आढळू शकतात. परंतु हे सर्व कोड व्यवस्थित ठेवण्यात मदत झाली, ज्यासाठी मी लेखकाचा खूप आभारी आहे.
एक सानुकूल पोस्ट दिसण्यासाठी single.php फाइल जबाबदार आहे, परंतु सानुकूल पोस्टचे स्वरूप बदलण्यासाठी, तुम्ही एक फाइल सिंगल-(post_type).php तयार करू शकता - माझ्या बाबतीत ती सिंगल-articles.php असेल. त्याची स्वतःची सामग्री.
आता तुम्हाला पृष्ठावर सानुकूल पोस्ट प्रदर्शित करण्याची आवश्यकता आहे. डीफॉल्टनुसार, सानुकूल पोस्टचे संग्रहण प्रदर्शित करण्यासाठी index.php फाइल जबाबदार असते. परंतु तुम्ही एक फाइल तयार करू शकता जी तुमच्या वर्गीकरणामध्ये सानुकूल नोंदी प्रदर्शित करण्यासाठी जबाबदार असेल.
पर्याय 1 सर्वात योग्य आहे. आम्ही वर्गीकरणातील नोंदी नियमित श्रेणीप्रमाणेच प्रदर्शित करतो.
हे करण्यासाठी, एक फाईल वर्गीकरण-(वर्गीकरण).php तयार करा - माझ्या बाबतीत ते taxonomy-articles_category.php असेल आणि त्यामध्ये आम्ही नेहमीचे चक्र प्रदर्शित करतो, जसे की श्रेणीतील मानक नोंदींसाठी:
tax-item.php फाईलमध्ये आम्ही प्रत्येक पोस्टमधून मिळवण्यासाठी आवश्यक असलेला डेटा प्रदर्शित करतो, उदाहरणार्थ, शीर्षक, पोस्ट लिंक, लघुप्रतिमा आणि उतारा.
pagination.php फाईलमध्ये आम्ही पेजनेशन या फॉरमॅटमध्ये दाखवतो.
सायकल बदलण्यायोग्य नाही, पृष्ठांकन उत्कृष्ट कार्य करते. सानुकूल वर्गीकरण प्रदर्शित करण्यासाठी हा सर्वोत्तम पर्याय आहे.
पर्याय 2 - कोणतेही सानुकूल वर्गीकरण नसल्यास, आपण संग्रहणाच्या रूपात सर्व सानुकूल पोस्ट मिळवू शकता.
हे करण्यासाठी, टेम्प्लेटमध्ये आम्ही एक फाइल संग्रहण-(post_type).php तयार करतो - माझ्या बाबतीत ती archive-articles.php असेल, ज्यामध्ये वर्गीकरणाप्रमाणेच, आम्ही एक नियमित लूप प्रदर्शित करतो, फक्त त्याऐवजी. वर्गीकरण शीर्षक आम्ही सानुकूल पोस्ट प्रकाराचे नाव प्रदर्शित करतो :
या पर्यायासह, सानुकूल पोस्टसाठी संग्रहण पृष्ठ तयार केले नसल्यास, आपण थेट लिंक BLOG_URL?post_type=(post_type) किंवा माझ्या बाबतीत http://site.com/ वापरून सर्व सानुकूल पोस्टची सूची मिळवू शकता. लेख/ .
पर्याय 3. दिलेल्या टेम्पलेटसह पृष्ठावर सर्व सानुकूल लेख प्रविष्ट्या फक्त प्रदर्शित करा
"लेख", "पोस्ट_प्रति_पृष्ठ" => -1); $loop = नवीन WP_Query($args); तर ($loop->have_posts()): $loop->the_post(); get_template_part("समाविष्ट/कर-आयटम"); शेवटपर्यंत ?>get_template_part("समाविष्ट/कर-आयटम"); – tax-item.php फाइलमध्ये मी लूपमध्ये पोस्ट प्रदर्शित करण्यासाठी आवश्यक असलेली पोस्ट सामग्री प्रदर्शित करतो (शीर्षक, लघुप्रतिमा, तारीख, कोट इ.)
हा पर्याय वर्गीकरण (श्रेण्या) विचारात न घेता पृष्ठावरील सर्व लेख प्रदर्शित करतो.
आणि जर आम्हाला प्रत्येक श्रेणी त्याच्या स्वतःच्या बातम्यांसह स्वतंत्रपणे प्रदर्शित करायची असेल, तर आम्ही वर वर्णन केलेला पहिला पर्याय वापरतो.
असे म्हटले जात आहे, जर तुम्ही योस्ट एसइओ प्लगइन वापरत असाल आणि त्याचे ब्रेडक्रंब वापरत असाल तर:
त्यानंतर, जेव्हा तुम्ही "पोस्ट प्रकारांसाठी ब्रेडक्रंब्समध्ये दाखवण्यासाठी वर्गीकरण" मधील प्लगइन सेटिंग्जमध्ये वर्गीकरण "लेख श्रेणी" निवडता, तेव्हा ब्रेडक्रंबमध्ये तुम्हाला बातम्या ज्या श्रेणीशी संबंधित आहेत त्याची लिंक मिळेल; सानुकूल पोस्ट प्रदर्शित करण्यासाठी इतर पर्यायांसह , हे करता आले नाही.
वर्डप्रेसमधील सानुकूल पोस्ट प्रकारांबद्दल (CPT, WordPress मधील कस्टम पोस्ट प्रकार), कसे तयार करावे आणि कॉन्फिगर करावे, श्रेण्या आणि टॅग कसे जोडावेत, नेस्टेड URL कसे बनवावे /post type/category/post किंवा http://example.com/post_type/ श्रेणी/ पोस्ट/ .
विविध उद्देशांसाठी वापरल्या जाऊ शकणार्या नवीन प्रकारच्या पोस्ट तयार करून वर्डप्रेसची मानक कार्यक्षमता कशी वाढवायची याचे देखील वर्णन करते: तुमचा स्वतःचा पोर्टफोलिओ, चित्रपट आणि संगीत अनुक्रमणिका, उत्पादन कॅटलॉग, इव्हेंट कॅलेंडर, अगदी तुमचे स्वतःचे छोटे ऑनलाइन बनवणे. स्टोअर (कारण मोठे म्हणजे WooCommerce सारखे रेडीमेड सोल्यूशन्स वापरणे चांगले) किंवा सोशल नेटवर्क आणि या भावनेने बरेच काही.
प्रथम, सामान्य माहिती, नंतर तपशील.
वर्डप्रेसमधील पोस्ट्सबद्दल: ते डेटाबेसमध्ये कुठे संग्रहित केले जातात आणि ते कसे मिळवायचे
वर्डप्रेसमधील पूर्णपणे सर्व पोस्ट, ज्यांची खाली चर्चा केली आहे, एका टेबलमध्ये संग्रहित केली आहे: wp_posts. पोस्ट मेटाडेटा, जसे की मेटाबॉक्सेसमधील डेटा, wp_postmeta टेबलमध्ये संग्रहित केला जातो.
मी टाइप पोस्टच्या 10 पोस्ट्स कशा मिळवायच्या याचे उदाहरण देईन (मानक पोस्टप्रशासक पॅनेलमध्ये).
सर्वसाधारण शब्दात, विशेषत: डेटाची विनंती करण्याची आवश्यकता नाही. टेम्पलेट्समध्ये ते आधीच प्री-इंस्टॉल केलेले आहेत, उदाहरणार्थ, single.php मध्ये, रेकॉर्ड डेटा आधीपासूनच लूपमध्ये प्रक्रिया करण्यासाठी उपलब्ध आहे
जर (have_posts()) ( तर (have_posts()) ( the_post(); // येथे आपण लूपमधील डेटा वापरतो, जसे की the_title(), इ.) )
लूप किंवा टेम्पलेटच्या बाहेर कुठेतरी डेटा प्राप्त करणे आवश्यक असल्यास, WP_Query क्वेरी वापरली जाते
$args = array("post_type" => "पोस्ट", // पोस्ट प्रकार: पृष्ठ, संलग्नक, ... "posts_per_page" => 10, // एकावेळी 10 पोस्ट); $p = get_posts($args); // (!empty($p)) ( foreach ($p as $post) ( setup_postdata($post); ?> "> लूपमध्ये डेटाचा विस्तार केला जाऊ शकतो= the_title() ?>
SQL क्वेरी वापरून डेटा मिळवता येतो:
जागतिक$wpdb; $query = "निवडा * ($wpdb -> पोस्ट) जेथे post_type = "पोस्ट" मर्यादा 10"; $p = $wpdb -> get_results($query); बाहेर पडा(print_r($p)); // $p मध्ये आता पोस्ट डेटासह अॅरे आहे
वरील तीनही पद्धती समान आउटपुट परिणाम देतील.
वर्डप्रेसमध्ये प्रीसेट पोस्ट प्रकार: पोस्ट, पृष्ठ, संलग्नक, पुनरावृत्ती, nav_menu_item
नोंदी किंवा पोस्ट (पोस्ट)
वर्डप्रेसमध्ये सर्वात जास्त वापरले जाणारे एकक म्हणजे पोस्ट्स (उर्फ पोस्ट्स). ब्लॉग पोस्ट आणि सारखे म्हणून वापरले. यात 2 प्रीसेट वर्गीकरण आहेत: शीर्षके, ज्यांना श्रेण्या (श्रेणी) आणि टॅग देखील म्हणतात, ज्यांना टॅग (पोस्ट_टॅग) देखील म्हणतात.
पदांची क्रमवारी लावण्यासाठी आणि व्यवस्थापित करण्यासाठी वर्गीकरणाचा वापर केला जातो.
श्रेण्या टॅग्सपेक्षा भिन्न असतात कारण त्यांच्याकडे झाडाची रचना असते (ते एकमेकांच्या आत घरटे बनवता येतात).
लेबले एकमेकांपासून स्वतंत्र युनिट्स आहेत आणि अशा प्रकारे ते काही प्रमाणात रेकॉर्डसारखेच आहेत.
तसेच, डीफॉल्टनुसार, वर्डप्रेस साइटचे RSS फीड प्रविष्ट्यांमधून तयार केले जाते.
खालील टेम्पलेट फाइल्स रेकॉर्डसाठी वापरल्या जातात (प्राधान्य क्रमाने):
- सिंगल-पोस्ट.php
- single.php
- singular.php
- index.php
टेम्प्लेट फाइल्स प्राधान्यक्रमानुसार वरपासून खालपर्यंत शोधल्या जातात. थीममध्ये टेम्पलेट फाइल आढळल्यास, ती वापरली जाते आणि शोध थांबविला जातो.
पृष्ठे
पृष्ठे मुख्यतः सेवा पृष्ठे, लँडिंग पृष्ठे, लँडिंग पृष्ठे, विश्वकोश संग्रह आणि सारखी म्हणून वापरली जातात. त्यांच्याकडे झाडासारखी पदानुक्रम आहे, म्हणजे, ते एकमेकांमध्ये घरटे असू शकतात, जे अंतिम पृष्ठाच्या पत्त्यावर प्रतिबिंबित होतील (यूआरएल शृंखलामध्ये मूळ शॉर्टकट उपस्थित असतील) आणि या भूमिकेत ते शक्य आहे. त्यांना क्रमवारीत प्राधान्य द्या.
लँडिंग पृष्ठ तयार करण्यासाठी, तुम्ही दोन मार्गांनी जाऊ शकता:
एक विशेष पृष्ठ टेम्पलेट तयार करा
रूट किंवा त्याच्या उपनिर्देशिकेमध्ये थीमच्या आत कुठेतरी, अनियंत्रित नाव आणि php विस्तारासह फाइल तयार करा, उदाहरणार्थ, landing.php. आत आपण पूर्णपणे कोणतेही टेम्पलेट ठेवू शकता, जे साइटवरील इतर पृष्ठांपेक्षा पूर्णपणे भिन्न असू शकते. परंतु मुख्य गोष्ट म्हणजे हा कोड फाईलच्या सुरुवातीला ठेवणे:
टेम्पलेट नाव हे एक विशेष लेबल आहे जे वर्डप्रेसला सांगते की ही फाइल एक विशेष टेम्पलेट आहे.
आता, कोणतेही पृष्ठ तयार आणि संपादित करताना, उजवीकडे असलेल्या पृष्ठ गुणधर्म नावाच्या ब्लॉकमध्ये पहा, त्यामध्ये, टेम्पलेट विभागात, आपण आमचे अद्वितीय लँडिंग पृष्ठ निवडू शकता.
पृष्ठांसाठी, खालील टेम्पलेट पदानुक्रम वापरला जातो. रेकॉर्ड प्रमाणे, मी प्राधान्य क्रमाने सूचित करतो:
- (टेम्पलेट).php
- पृष्ठ-(पृष्ठ_लेबल).php
- पृष्ठ-(पृष्ठ_आयडी)
- page.php
- singular.php
- index.php
संलग्नक, संलग्नक किंवा संलग्नक
पोस्ट, पृष्ठ किंवा सारखे संपादित करताना अपलोडरद्वारे अपलोडरद्वारे अपलोड केलेल्या फाइल्स (प्रतिमा, ऑडिओ, व्हिडिओ आणि यासारख्या) माहिती संचयित करण्यासाठी डिझाइन केलेला उपयुक्तता प्रकार: आकार, वजन, वर्णन, पोस्ट किंवा पृष्ठ ते संलग्न आहेत, आणि अशा गोष्टी.
तुम्ही खालील कोड वापरून त्यांच्यासह पुढील हाताळणीसाठी संलग्नक मिळवू शकता:
$args = array("post_type" => "संलग्नक", // पोस्ट प्रकार: संलग्नक "post_status" => "इनहेरिट", // डीफॉल्ट "प्रकाशित" आहे, आणि त्यासह आपण संलग्नक प्राप्त करू शकत नाही, म्हणून आम्ही एक सूचित करतो विशेष संलग्नक स्थिती "वारसा"); $p = get_posts($args); बाहेर पडा(print_r($p)); // आउटपुटवर आमच्याकडे संलग्नकांसह अॅरे असेल
संलग्नकांसाठी टेम्पलेट्सची पदानुक्रम:
- (माइम-प्रकार).php
- (माइम-उपप्रकार).php
- (माइम-प्रकार-उपप्रकार).php
- attachment.php
- single.php
- singular.php
- index.php
पुनरावृत्ती, मसुदे किंवा पुनरावृत्ती
पुनरावृत्ती, ज्यांना पुनरावृत्ती देखील म्हणतात, मसुदा पोस्टच्या आवृत्त्या आहेत ज्या तुम्ही वर्डप्रेस अॅडमिन पॅनेलमध्ये लेख लिहिताना किंवा लेख प्रकाशित न करता सेव्ह करत असताना आपोआप तयार होतात.
लेखन प्रक्रियेदरम्यान, प्रत्येक लेखासाठी, डीफॉल्टनुसार, मसुद्याची प्रत्येक आवृत्ती जतन केली जाते. तुम्ही दोन भिन्न आवृत्त्यांची तुलना करू शकता आणि तुम्हाला आवश्यक असलेल्या आवृत्तीवर परत येऊ शकता.
एकाच लेखाच्या अनेक आवृत्त्या संग्रहित करणे खूप महाग आणि अनेकदा निरर्थक आहे (जरी डीफॉल्टनुसार सर्वकाही सोडणे कदाचित अधिक योग्य असेल, प्लगइन वापरून जुनी पुनरावृत्ती नियमितपणे साफ करणे, उदाहरणार्थ WP ऑप्टिमाइझ), त्यामुळे पुनरावृत्तींच्या जतन केलेल्या आवृत्त्यांची संख्या 2 पर्याय वापरून बदलले जाऊ शकते:
- wp_revisions_to_keep फिल्टर वापरा
- wp-config.php मध्ये नोंदणी करा //किमान संभाव्य मूल्य परिभाषित करण्यासाठी पुनरावृत्ती अक्षम करा("WP_POST_REVISIONS", 0);
संभाव्य मूल्ये:
- सत्य किंवा -1: मसुद्याची प्रत्येक आवृत्ती जतन करते. डीफॉल्ट पर्याय
- असत्य किंवा 0: 1 ऑटोसेव्ह वगळता ड्राफ्ट जतन करणे अक्षम करते
- शून्यापेक्षा जास्त पूर्णांक: मसुदा आवृत्त्यांची निर्दिष्ट संख्या + 1 स्वयं जतन केली जाते. निर्दिष्ट क्रमांकामध्ये बसत नसलेल्या जुन्या आवृत्त्या स्वयंचलितपणे हटविल्या जातात
नेव्हिगेशन मेनू आयटम (nav_menu_item)
नेव्हिगेशन मेनू (nav_menu_item) हा एक पोस्ट प्रकार आहे जो वर्डप्रेसमध्ये नेव्हिगेशन आयटमबद्दल माहिती संग्रहित करतो. पहिला, आणि आतापर्यंतचा एकमेव रेकॉर्ड जो इतर प्रकारच्या रेकॉर्डप्रमाणे वापरला जात नाही, साइटवर ऑपरेशन आणि डिस्प्लेसाठी डेटा स्वतःची स्वतंत्र कार्ये प्राप्त करतो.
तसेच, नेव्हिगेशन मेनू डीफॉल्टनुसार सक्षम केलेले नाहीत. त्यांना सक्षम करण्यासाठी, तुम्हाला त्यांचे समर्थन यामध्ये घोषित करणे आवश्यक आहे:
- add_theme_support ("मेनू") लिहा;
- किंवा register_nav_menu() वापरून मेनू स्पेसची नोंदणी करा, नंतर मेनू समर्थन स्वयंचलितपणे सक्षम होईल
डेटा मिळविण्यासाठी wp_nav_menu() वापरा कारण WP_Query काम करणार नाही आणि हे nav_menu_item पोस्ट प्रकाराचे वैशिष्ट्य आहे
// हा कोड wp_nav_menu(); // पहिला नोंदणीकृत नॉन-रिक्त मेनू प्रदर्शित करेल // परंतु खालील कोड $args = array("post_type" => "nav_menu_item", // पोस्ट प्रकार: पृष्ठ, संलग्नक, ...) कार्य करणार नाही; $p = get_posts($args); बाहेर पडा(print_r($p)); // आउटपुट रिक्त अॅरे असेल
सानुकूल पोस्ट प्रकार (CPT WordPress)
आता आम्ही मुख्य गोष्टीकडे आलो - एक साधन जे तुम्हाला मानक वर्डप्रेस ब्लॉगिंग कार्यक्षमता अनंत शक्यतांमध्ये विस्तारित करण्याची परवानगी देते: एक सानुकूल सानुकूल पोस्ट प्रकार.
तुम्ही आमच्या नवीन पोस्ट प्रकार sheensay_product कसे नोंदणी करू शकता याचे सर्वात सोपे उदाहरण
Add_action("init", "sheensay_post_type"); फंक्शन sheensay_post_type() ( register_post_type("sheensay_product", array("labels" => array("name" => "उत्पादने", "singular_name" => "उत्पादने", "public" => true, // type रेकॉर्ड शोधासाठी खुले आहेत आणि जसे "has_archive" => true, // संग्रहण पृष्ठे सक्षम करा "supports" => array("title", "editor", "thumbnail", "comments"), // साठी समर्थन सक्षम करा शीर्षक, संपादक, लघुप्रतिमा, टिप्पण्या));)
येथे sheensay_product हे नवीन पोस्ट प्रकाराचे नाव आहे. हे सिस्टममधील इतरांशी संघर्ष करू नये; खाली याबद्दल अधिक.
तसेच, या मूर्त स्वरूपात, ते या प्रकारच्या पोस्टसाठी शॉर्टकट म्हणून काम करते, म्हणजेच ते URL मध्ये आहे. जर तुम्हाला वेगळा शॉर्टकट निर्दिष्ट करायचा असेल, उदाहरणार्थ उत्पादने, खालील उदाहरणाप्रमाणे करा
Add_action("init", "sheensay_post_type"); फंक्शन sheensay_post_type() ( register_post_type("sheensay_product", array("labels" => array("name" => "उत्पादने", "singular_name" => "उत्पादने", "public" => true, "पुनर्लेखन" => array("slug" => "उत्पादने"), // लेबल सानुकूल पोस्ट प्रकार "has_archive" => true, "supports" => array("title", "editor", "thumbnail"),)) ) ;)
नवीन पोस्ट प्रकारासाठी योग्य नाव कसे निवडावे
खालील नावे WordPress मध्ये आरक्षित आहेत आणि नवीन पोस्ट प्रकाराचे नाव म्हणून वापरली जाऊ शकत नाहीत:
- संलग्नक
- पुनरावृत्ती
- nav_menu_item
- क्रिया
- थीम
- ऑर्डर
तसेच, तुम्ही नावाच्या सुरुवातीला wp_ उपसर्ग वापरणे टाळावे, कारण यामुळे वर्डप्रेस कोरच्या भविष्यातील आवृत्त्यांशी संघर्ष होऊ शकतो.
तुम्ही तुमच्या साइटच्या, उत्पादनाच्या किंवा ब्रँडच्या नावाशी संबंधित अनियंत्रित उपसर्गांसह नावांना उपसर्ग लावल्यास उत्तम आहे, उदाहरणार्थ sheensay_product, तर तुम्हाला संभाव्य संघर्ष टाळण्याची हमी दिली जाते.
सानुकूल वर्गीकरण कसे करावे
सानुकूल पोस्ट प्रकार पोस्टमधून वर्गीकरण वापरू शकतात, उदाहरणार्थ, श्रेणी (श्रेण्या) किंवा टॅग (टॅग), परंतु तुमच्या स्वतःच्या वर्गीकरण असू शकतात.
Add_action("init", "sheensay_post_type"); फंक्शन sheensay_post_type() ( // वर्गीकरणाची नोंदणी करा register_taxonomy("sheensay_product_type", "sheensay_product", array("label" => "Types", "hierarchical" => true, // TRUE असल्यास, वर्गीकरण हेडिंगशी समान असेल (श्रेण्या) जर FALSE (डिफॉल्ट), तर वर्गीकरण हे लेबल्सचे अॅनालॉग बनतील (टॅग): "पुनर्लेखन" => अॅरे("स्लग" => "उत्पादन-प्रकार"),)); // सानुकूल नोंदणी करा पोस्ट प्रकार (सानुकूल पोस्ट प्रकार) register_post_type ("sheensay_product", array("labels" => array("name" => "उत्पादने", "singular_name" => "उत्पादने",), "public" => true, " rewrite" => array("slug" => "products"), // CPT लेबल येथे परिभाषित केले आहे "has_archive" => true, "supports" => array("title", "editor", "thumbnail") , // शीर्षक, संपादक, लघुप्रतिमासाठी समर्थन सक्षम करा));)
सानुकूल पोस्ट प्रकारांसाठी टेम्पलेट्स
हे सर्व कोणत्या प्रकारची माहिती प्रदर्शित केली जाते यावर अवलंबून असते. तेथे 3 पर्याय असू शकतात: एक विशिष्ट पोस्ट टेम्पलेट, पोस्ट संग्रहण टेम्पलेट आणि वर्गीकरण टेम्पलेट
पृष्ठ टेम्पलेट पोस्ट करा
प्राधान्य क्रमाने सूचीबद्ध
- सिंगल-(पोस्ट_टाइप).php
- single.php
- index.php
पोस्ट संग्रहण टेम्पलेट
- संग्रहण-(पोस्ट_प्रकार).php
- archive.php
- index.php
सानुकूल वर्गीकरण टेम्पलेट
- वर्गीकरण-(वर्गीकरण_नाव)-(टर्म_नाव).php
- वर्गीकरण-(वर्गीकरण_नाव).php
- taxonomy.php
- archive.php
- index.php
येथे taxonomy_name हे sheensay_product_type आहे आणि term_name हे वर्गीकरणाचे लेबल आहे जे तुम्ही अॅडमिन पॅनेलमध्ये तयार कराल.
सानुकूल पोस्ट प्रकार डेटा (कस्टम पोस्ट प्रकार वर्डप्रेस) कसा मिळवायचा आणि तो साइटवर कसा प्रदर्शित करायचा
तुम्ही नियमित पोस्ट आणि पेजेस सारख्याच पद्धती वापरून तुमच्या वेबसाइटवर प्रदर्शित करण्यासाठी WordPress मध्ये कस्टम पोस्ट प्रकार डेटा मिळवू शकता
$args = array("post_type" => "sheensay_product", // आमचा नवीन पोस्ट प्रकार "posts_per_page" => 10, निर्दिष्ट करा); $p = get_posts($args); foreach ($p $post म्हणून) ( setup_postdata($post); ?> ">= the_title() ?>
जर आम्ही मुख्य विनंतीबद्दल बोललो, ज्यासाठी डेटा, उदाहरणार्थ, मुख्य पृष्ठावर किंवा मानक संग्रहण पृष्ठांवर प्रदर्शनासाठी प्रीलोड केला जातो, तर अनियंत्रित पोस्ट प्रकार तेथे अक्षम केले जातात.
त्यामुळे तुम्हाला कोणत्याही तयार केलेल्या पोस्टचा प्रकार नेहमीच्या पोस्टसह संग्रहित पृष्ठांवर दिसावा असे वाटत असल्यास, तुम्हाला पोस्ट प्रीलोड फिल्टर बदलणे आवश्यक आहे.
// आमचे "sheensay_product" मानक "पोस्ट" आणि "पेज" add_action("pre_get_posts", "add_sheensay_product_in_main_query") शी कनेक्ट करा; फंक्शन add_sheensay_product_in_main_query($query) ( if (is_archive() && $query -> is_main_query()) $query -> set("post_type", array("post", "page", "sheensay_product")); $query परत करा ;)
सानुकूल वर्गीकरणासह सानुकूल पोस्ट प्रकार तयार करण्यासाठी तयार वर्ग
खाली एक वर्ग आहे ज्यामध्ये तुम्ही कोणत्याही कस्टम पोस्ट प्रकाराची त्याच्या स्वतःच्या वर्गीकरणासह नोंदणी करू शकता आणि URL असे दिसेल
http://example.com/products/type/product
URL व्युत्पन्न होण्यासाठी, तुम्ही permalink सेटिंग्ज /wp-admin/options-permalink.php वर जा आणि साध्या व्यतिरिक्त कोणत्याही प्रकारच्या सामान्य सेटिंग्ज सेट करा.
खाली वर्ग कोड स्वतः आहे. तुम्हाला त्यात कोणतेही बदल करण्याची गरज नाही, परंतु तुम्ही नवीन Sheensay_Product("उत्पादने") या ओळीच्या अगदी शेवटी पोस्ट टाइप लेबल बदलू शकता;
कोड स्वतः मध्ये किंवा मध्ये लिहिलेला आहे. पहिला पर्याय श्रेयस्कर आहे, कारण या प्रकरणात, सक्रिय थीम बदलताना आपण नवीन पोस्ट प्रकारातील सामग्रीचा प्रवेश गमावणार नाही.
?p=1713 * */ final class Sheensay_Product { // Ярлык произвольного типа записи по умолчанию private $post_type = "продукция"; function __construct($post_type = "") { // Переопределяем значение ярлыка по умолчанию if ($post_type) $this -> post_type = $post_type; /* * सानुकूल पोस्ट प्रकार नोंदणी करा */ add_action("init", array($this, "sheensay_cpt_product")); /* * URL फिल्टर करा */ add_filter("post_type_link", array($this, "product_permalink_structure"), 10, 2); /* * पृष्ठांकन कार्य करण्यासाठी */ add_action("generate_rewrite_rules", array($this, "fix_product_category_pagination")); ) फंक्शन sheensay_cpt_product() ( /* * नवीन पोस्ट प्रकारासाठी सानुकूल वर्गीकरणाची नोंदणी करा */ register_taxonomy("sheensay_product_type", "sheensay_product", array("label" => "Types", "hierarchical" => true, "query_var) " => खरे, "पुनर्लेखन" => अॅरे("स्लग" => $this -> post_type),)); /* * नवीन पोस्ट प्रकार नोंदणी करा */ $labels = array("name" => "उत्पादने" , // मुख्य नाव "singular_name" => "उत्पादने", // "add_new" => "नवीन जोडा", // साइडबार "add_new_item" => "नवीन उत्पादने जोडा" मधील नवीन एंट्रीसाठी लिंकचे नाव जोडा , // नवीन एंट्री जोडताना संपादकात शीर्षक); $args = array("labels" => $labels, "public" => true, "publicly_queryable" => true, "show_ui" => true, "query_var " => खरे, "क्षमता_प्रकार" => "पोस्ट", "हाइरार्किकल" => असत्य, "मेनू_स्थिती" => शून्य, "समर्थन" => अॅरे("शीर्षक", "संपादक", "थंबनेल", "उतारा" ), "पुनर्लेखन" => अॅरे( "स्लग" => $this -> post_type . "/%sheensay_product_type%", "with_front" => असत्य,), "has_archive" => $this -> post_type,); register_post_type("sheensay_product", $args); if (current_user_can("manage_options")) // या फंक्शनसह सावधगिरी बाळगा. हे सर्व URL शोध नियम रीसेट करते. सर्व काम पूर्ण झाल्यानंतर त्यावर टिप्पणी करणे चांगले आहे flush_rewrite_rules(); ) फंक्शन product_permalink_structure($post_link, $post) ( if (FALSE !== strpos($post_link, "%sheensay_product_type%")) ( $product_type_term = get_the_terms($post -> ID, "sheensay_product_type"); जर (!e) ($product_type_term)) $post_link = str_replace("%sheensay_product_type%", $product_type_term -> स्लग, $post_link); ) $post_link परत करा; ) फंक्शन fix_product_category_pagination($wp_rewrite) ($wp_rewrite) - नियम रद्द करा > post_type . "/([^/]+)/page/?((1,))/?$"]); $wp_rewrite -> नियम = अॅरे($this -> post_type . "/?$" => $wp_rewrite -> अनुक्रमणिका . "?post_type=sheensay_product", $this -> post_type . "/page/?((1,))/?$" => $wp_rewrite -> अनुक्रमणिका . "?post_type=sheensay_product&paged=" . $wp_rewrite -> preg_index(1), $this -> post_type."/([^/]+)/page/?((1,))/?$" => $wp_rewrite -> अनुक्रमणिका . "?sheensay_product_type= " $wp_rewrite -> preg_index(1) . "&paged=" . $wp_rewrite -> preg_index(2),) + $wp_rewrite -> नियम; ) ) /* * वर्ग चालवा * कंसात तुम्ही पोस्ट टाइप लेबलचे नाव परिभाषित करू शकता */ नवीन Sheensay_Product("उत्पादने");
आता अॅडमिन पॅनलमध्ये तुम्ही नवीन उत्पादने आणि त्यांचे प्रकार नोंदवू शकता
a! सामग्री व्यवस्थापन प्रणाली वर्डप्रेसअनेक वर्षे ओळख मिळाली, परंतु खरी प्रगती म्हणजे रेकॉर्डला प्रकारांमध्ये विभक्त करण्याच्या क्षमतेची अंमलबजावणी. या धड्यात आपण सानुकूल पोस्ट प्रकार, त्यांची निर्मिती आणि वापर यावर जवळून नजर टाकू.
थोडा इतिहास
सराव मध्ये, सानुकूल पोस्ट प्रकार खूप पूर्वी दिसू लागले, अधिक तंतोतंत फेब्रुवारी 17, 2005 पासून, जेव्हा वर्डप्रेस 1.5डेटाबेसमधील post_type फील्डद्वारे, स्थिर पृष्ठांसाठी सानुकूल प्रकारांसाठी समर्थन जोडले गेले आहे. Wp_insert_post() फंक्शन तेव्हापासून आहे वर्डप्रेस 1.0म्हणून जेव्हा post_type फील्ड 1.5 मध्ये कार्यान्वित केले गेले तेव्हा हे फंक्शन वापरून ते पॉप्युलेट करणे खूप सोपे होते.
आणि फक्त आवृत्ती 2.8 मध्ये सानुकूल प्रकार तयार करण्यासाठी register_post_type() फंक्शन दिसू लागले आणि काही इतर उपयुक्त गोष्टी “नाईटली बिल्ड्स” मध्ये उपलब्ध होत्या आणि 2.9 पासून ही फंक्शन्स प्रत्येकासाठी उपलब्ध झाली.
आता काय?!
सानुकूल पोस्ट प्रकार डेटाबेसमधील विशिष्ट post_type फील्ड मूल्यासह नियमित पोस्ट (लेख) पेक्षा अधिक काही नाही. नियमित पोस्टमध्ये, post_type फील्डचे मूल्य असते पोस्ट, पृष्ठ महत्त्वाचे पृष्ठआणि असेच. तथापि, आम्ही आता पोस्टमध्ये समाविष्ट असलेल्या सामग्रीचे तपशील निर्दिष्ट करण्यासाठी आमचे स्वतःचे प्रकार तयार करू शकतो. तुम्ही पुस्तके, चित्रपट, विनोद, उत्पादने आणि इतर कशासाठीही सानुकूल पोस्ट प्रकार तयार करू शकता.
योग्यरित्या केले असल्यास, तुम्ही कोडच्या काही ओळींसह खालील परिणाम प्राप्त करू शकता:
- सबमेनू आयटमसह प्रशासक क्षेत्राच्या मुख्य पॅनेलवर एक सानुकूल प्रकार ठेवा: या प्रकारच्या सर्व नोंदींची सूची आणि या प्रकारासह एक नवीन प्रविष्टी देखील तयार करा;
- या प्रकारच्या पोस्टचे संग्रहण तयार करा, म्हणजे, सानुकूल प्रकारासाठी मुख्य पृष्ठासारखे काहीतरी करा;
- सानुकूल पोस्ट प्रकारांद्वारे तसेच सानुकूल वर्गीकरणाद्वारे प्रवेश करता येईल अशा श्रेणी आणि टॅग तयार करा.
विविध प्रकारच्या सामग्रीसाठी भिन्न डेटा आवश्यकता असतात. नियमित पोस्टसाठी, तुम्ही लेखक, श्रेणी आणि तारीख समाविष्ट करू इच्छित असाल. "पुस्तक" प्रकारासह रेकॉर्डसाठी, मला पुस्तकाचा लेखक, पृष्ठांची संख्या, शैली, प्रकाशक आणि इतर विशिष्ट डेटा निर्दिष्ट करण्यास सक्षम व्हायचे आहे. डेटा एंट्रीसाठी सानुकूल (मेटा बॉक्स) क्षेत्रे वापरून हे सहज साध्य करता येते.
— रेकॉर्ड निर्मिती पृष्ठावर थेट अतिरिक्त डेटा प्रविष्ट करण्यासाठी क्षेत्रे. हे क्षेत्र सानुकूल पोस्ट प्रकारांसह कार्य करणे सोपे करतात.
सानुकूल पोस्ट प्रकारांसह कार्य करणे
सानुकूल पोस्ट प्रकार प्रभावीपणे तयार करण्यासाठी आणि वापरण्यासाठी, तुम्ही खालील गोष्टींशी परिचित असले पाहिजे:
- सानुकूल पोस्ट प्रकार तयार करणे;
- सानुकूल वर्गीकरण तयार करणे;
- सानुकूल डेटा क्षेत्रे तयार करणे.
सानुकूल पोस्ट प्रकार तयार करणे
तुम्हाला सर्वप्रथम सानुकूल पोस्ट प्रकार तयार करण्याची आवश्यकता आहे. आदर्शपणे, तुम्ही सानुकूल पोस्ट प्रकार हाताळण्यासाठी एक प्लगइन तयार कराल, परंतु तुम्ही तुमच्या थीमची functions.php फाइल देखील वापरू शकता.
1 |
|
अक्षरशः कोणतीही सेटिंग्ज नसलेला प्रकार तयार करण्याचा हा सर्वात सोपा प्रकार आहे. आमचा नवीन पोस्ट प्रकार विकसित करण्यासाठी, आम्ही काही सामान्यतः वापरलेले पर्याय वापरू आणि त्यांना पूर्वीच्या रिक्त $args अॅरेमध्ये जोडू.
1 | फंक्शन my_custom_post_product() ( |
- लेबल— विषयामध्ये तयार होत असलेल्या सानुकूल पोस्ट प्रकाराचे वर्णन करण्यासाठी लेबल्सचा हा अॅरे वापरला जातो
- वर्णन- सानुकूल पोस्ट प्रकार तयार केला जात आहे, ते काय करते आणि आम्ही ते का वापरतो याचा सारांश.
- सार्वजनिक— सानुकूल प्रकार सार्वजनिकरित्या वापरायचा की नाही आणि तो प्रशासकीय क्षेत्रात दाखवायचा की नाही. या प्रकरणात, सत्य स्थापित केले आहे.
- मेनू_स्थिती— मुख्य प्रशासक पॅनेलवर आमच्या प्रकारच्या मेनू आयटमची स्थिती. 5 चे मूल्य म्हणजे आयटम "रेकॉर्ड्स" मेनू आयटम नंतर लगेच स्थापित केला जाईल, जर 10 म्हणजे "मीडिया फाइल्स" आयटम इ. नंतर.
- समर्थन करते— या पर्यायामध्ये अॅरे समाविष्ट आहे जे त्या फील्डचे वर्णन करते जे आपण रेकॉर्ड निर्मिती पृष्ठावर संपादित करू शकतो. म्हणजेच, शीर्षक - पोस्टचे नाव प्रविष्ट करण्यासाठी फील्ड दिसेल, संपादक - पोस्टचा मजकूर प्रविष्ट करण्यासाठी मजकूर क्षेत्र प्रदर्शित केले जाईल इ. वापरलेली सानुकूल वर्गीकरण, product_category , देखील सूचित केले आहे.
- has_archive- सत्य वर सेट केल्यास, एक पुनर्लेखन नियम तयार केला जाईल, जो तुम्हाला आमच्या प्रकारच्या नोंदींची यादी http://mysite.com/product/ वर मिळवण्याची परवानगी देतो.
हा कोड तुमच्या function.php फाइलमध्ये इन्स्टॉल केल्यानंतर, तुम्हाला कस्टम पोस्ट प्रकारासाठी मेनू दिसेल. रेकॉर्ड जोडणे आणि रेकॉर्डची सूची पाहणे आता शक्य आहे.
तथापि, वितर्कांच्या अॅरेसाठी हे सर्व पर्याय नाहीत; तुम्हाला पर्यायांची संपूर्ण यादी आणि सानुकूल प्रकारांच्या सर्व क्षमता आढळतील.
परस्परसंवादी सूचना
वर्डप्रेस वापरकर्त्याच्या क्रियांद्वारे ट्रिगर केलेले काही संदेश व्युत्पन्न करते. प्रकारांसह कार्य करताना वापरकर्त्याला सूचित करण्यासाठी आम्ही समान संदेश देखील तयार करू शकतो. हे post_updated_messages द्वारे केले जाते.
1 | फंक्शन my_updated_messages( $messages ) ( |
हे एक वैशिष्ट्य वापरून तुम्ही सर्व सानुकूल पोस्ट प्रकारांसाठी सूचना सेट करू शकता याची नोंद घ्या. तुम्ही प्रकाराचे नाव निर्दिष्ट न केल्यास, सर्व सानुकूल प्रकारांसाठी सूचना वापरल्या जातील.
संदर्भित संकेत क्वचितच लागू केले जातात आणि वापरले जातात. एक वापरकर्ता म्हणून, मी हे वैशिष्ट्य कधीही वापरले नाही, परंतु मला खात्री आहे की कोणीतरी ते अजूनही वापरते. तर अशा संदर्भीय मदत तयार करूया.
संदर्भित इशारे वरच्या उजव्या कोपर्यात, स्क्रीन सेटिंग्ज टॅबजवळ आहेत.
1 | फंक्शन my_contextual_help( $contextual_help , $screen_id , $screen ) ( $contextual_help = " या पृष्ठावर साइटवर विकल्या जाणार्या सर्व उत्पादनांची सूची आहे. नोंदी उलट कालक्रमानुसार आहेत, शेवटचे आयटम आम्ही प्रथम जोडलेले आयटम आहेत. तुम्ही प्रत्येक उत्पादनाच्या नावावर क्लिक करून त्याचे तपशील पाहू/संपादित करू शकता किंवा तुम्ही अनेक आयटम निवडून ड्रॉप-डाउन मेनू वापरून मोठ्या प्रमाणात क्रिया करू शकता. ) elseif ( "उत्पादन" == $स्क्रीन -> आयडी ) ( $contextual_help = " हे पृष्ठ तुम्हाला उत्पादन तयार करण्यास किंवा त्याबद्दलचा विद्यमान डेटा संपादित करण्यास अनुमती देते. कृपया अतिरिक्त फील्ड भरण्याची खात्री करा. }
|
अशी टूलटिप दाखवण्यासाठी, आम्हाला स्क्रीन आयडी माहित असणे आवश्यक आहे. निर्मिती दरम्यान आपल्याला स्क्रीन आयडी शोधण्याची आवश्यकता असल्यास, फक्त हे करा:
echo $screen -> id ; |
सानुकूल वर्गीकरण
नियमित ब्लॉगसाठी, संघटनात्मक रचना तयार करण्यासाठी श्रेणी आणि टॅग पुरेसे आहेत. सानुकूल पोस्ट प्रकारांसाठी हे नेहमीच पुरेसे नसते. सानुकूल वर्गीकरण ही समस्या सोडवू शकते. आमच्या बाबतीत, "उत्पादन श्रेणी" नावाचे वर्गीकरण, जे केवळ सानुकूल प्रकार "उत्पादने" असलेल्या पोस्टसाठी वापरले जाते.
सानुकूल वर्गीकरण तयार करण्याची प्रक्रिया सानुकूल पोस्ट प्रकार तयार करण्यासारखीच आहे. चला आमचे उदाहरण पाहू:
1 | फंक्शन my_taxonomies_product() ( |
सानुकूल प्रकार तयार करताना, आम्ही एक लेबल अॅरे तयार केला आणि सूचित केले की श्रेणीबद्ध रचना तयार केलेल्या वर्गीकरणासाठी संबंधित आहे (म्हणजे, पालक आणि मूल घटक असू शकतात) - हे नियमित पोस्टमधील श्रेणींसाठी वैशिष्ट्यपूर्ण आहे. अन्यथा, रचना श्रेणीबद्ध नसल्यास, सामान्य टॅग तयार केले जातात. आपण वर्गीकरण बद्दल अधिक वाचू शकता.
अतिरिक्त डेटा क्षेत्रे
तुम्ही पोस्ट संपादन पृष्ठावर डेटा एंट्रीसाठी अतिरिक्त क्षेत्रे किंवा ब्लॉक्स (मेटा बॉक्स) पाहिले असतील. श्रेणी किंवा टॅग निवडणे यासारखे मानक प्रत्येकाला माहीत आहेत. तसेच काही विषयांमध्ये असे पर्याय आहेत जे तुम्हाला पोस्टमध्ये चित्र जोडण्याची परवानगी देतात इ.
आम्ही सानुकूल प्रकार "उत्पादने" तयार करत असल्याने, आम्हाला उत्पादनाची किंमत निश्चितपणे आवश्यक असेल, चला सानुकूल तयार करण्याची प्रक्रिया पाहू या.
निर्मिती प्रक्रिया 3 टप्प्यात विभागली जाऊ शकते:
- ब्लॉक स्वतः व्याख्या;
- सामग्री परिभाषित करणे (कोणती फील्ड ब्लॉकमध्ये उपस्थित आहेत);
- प्रविष्ट केलेल्या डेटावर प्रक्रिया करण्यासाठी अल्गोरिदमचे वर्णन.
मेटा बॉक्सची व्याख्या
1 | add_action( "add_meta_boxes" , "product_price_box" ); |
वरील कोड खालील पॅरामीटर्ससह ब्लॉक तयार करतो:
- उत्पादन_किंमत_बॉक्स— मेटा बॉक्ससाठी एक अद्वितीय अभिज्ञापक (त्याला फंक्शनच्या नावाशी जुळणे आवश्यक नाही);
- उत्पादन किंमत— प्रशासकाला पृष्ठावर दिसणार्या मेटा बॉक्सचे नाव;
- उत्पादन_किंमत_बॉक्स_सामग्री— एक कार्य जे विंडोची सामग्री प्रदर्शित करेल;
- उत्पादन— सानुकूल पोस्ट प्रकाराचे नाव ज्याचे मेटा बॉक्स आहेत;
- बाजू— पृष्ठावरील ब्लॉकची स्थिती (बाजूला, सामान्य किंवा प्रगत — डीफॉल्टनुसार);
- उच्च— मेटा बॉक्सेसचे प्राधान्य (या प्रकरणात “उच्च”, ब्लॉक साइडबारच्या अगदी शीर्षस्थानी स्थित आहे. पर्याय: उच्च, कोर, निम्न किंवा डीफॉल्ट - डीफॉल्टनुसार).
सामग्री व्याख्या
1 | फंक्शन product_price_box_content( $post ) ( |
उत्पादनाची किंमत प्रविष्ट करण्यासाठी आम्ही फक्त एक फील्ड जोडतो. फंक्शनचे नाव घोषित केल्यावर तिसऱ्या पॅरामीटरच्या मूल्याशी जुळते (वरील कोड) लक्षात ठेवा.
प्रविष्ट केलेल्या डेटावर प्रक्रिया करणे
शेवटची पायरी म्हणजे प्रविष्ट केलेल्या उत्पादनाची किंमत डेटाबेसमध्ये जतन करणे.
1 | add_action( "सेव्ह_पोस्ट" , "उत्पादन_किंमत_बॉक्स_सेव्ह" ); जर (परिभाषित ("DOING_AUTOSAVE") && DOING_AUTOSAVE) जर ( ! wp_verify_nonce ( $_POST [ "उत्पादन_किंमत_बॉक्स_सामग्री_नॉन्स"] , plugin_basename( __FILE__ ) ) ) जर ( "पृष्ठ" == $_POST [ "पोस्ट_प्रकार" ] ) ( |
बहुतेक फंक्शन चेक आहे. सर्वप्रथम, ऑटोसेव्हिंग तपासले जाते; सेव्ह किंवा अपडेट बटण दाबेपर्यंत किंमत जतन केली जाणार नाही. नंतर या पोस्टचा डेटा संपादित करण्यासाठी प्रवेश अधिकार तपासले जातात आणि त्यानंतरच, update_post_meta फंक्शन वापरून, किंमत डेटाबेसमध्ये प्रविष्ट केली जाते.
ब्लॉगवर तयार केलेल्या प्रकारच्या पोस्ट प्रदर्शित करणे
आम्ही सानुकूल पोस्ट प्रकार तयार करण्याचे सर्व टप्पे पार केले आहेत, आमच्या श्रमांच्या फळाचा लाभ घेणे आणि आम्ही स्थापित केलेल्या वर्गीकरणानुसार ब्लॉगवर पोस्टचे प्रदर्शन तयार करणे बाकी आहे.
सानुकूल प्रकार तयार करताना आम्ही has_archive पॅरामीटरसाठी सत्य निर्दिष्ट केले असल्याने, उत्पादन प्रकाराच्या रेकॉर्डची सूची http://mysite.com/product/ वर उपलब्ध आहे.
archive-.php फाइल (आमच्या बाबतीत archive-product.php) अस्तित्वात असल्यास ती डिस्प्लेसाठी वापरली जाते. अन्यथा, archive.php प्रदर्शनासाठी वापरला जाईल आणि जर अशी फाइल थीममध्ये नसेल तर ती वापरेल)
)
;
$products = नवीन WP_Query( $args );
जर ( $products -> have_posts () ) (
तर ( $products -> have_posts () ) (
$products -> the_post ();
?>
<
h1>
h1>
<
div class
=
"content"
>
div>
}
}
इतर(
प्रतिध्वनी "अरे नाही, अन्न सापडले नाही!";
}
?>
किंमत प्रदर्शन
प्रविष्ट केलेला अतिरिक्त डेटा, आमच्या बाबतीत उत्पादनाची किंमत, get_post_meta() फंक्शन वापरून पुनर्प्राप्त केला जाऊ शकतो. आम्ही उत्पादन_किंमत फील्ड अतिरिक्त वापरत असल्याने, किंमत मूल्य मिळविण्यासाठी:
सानुकूल पोस्ट प्रकार तयार करण्यासाठी प्लगइन
तुम्हाला तुमच्या प्रोग्रॅमिंग क्षमतेवर विश्वास नसल्यास, तुम्ही नेहमी रेडीमेड सोल्यूशन (प्लगइन) शोधू शकता आणि ते वापरू शकता. सानुकूल प्रकार अपवाद नाहीत. प्लगइन WCK सानुकूल पोस्ट प्रकार निर्मातातुम्हाला कोणत्याही कोडिंग ज्ञानाशिवाय वर्डप्रेससाठी सानुकूल पोस्ट प्रकार सहज तयार करण्याची अनुमती देते.
डीफॉल्ट श्रेणी केवळ पोस्टसाठी वापरल्या जातात. तथापि, काही परिस्थितींमध्ये तुम्ही त्यांना सानुकूल पोस्ट प्रकारासह वापरू इच्छित असाल. हे कसे करायचे ते आम्ही या लेखात सांगू.
प्लगइन पद्धत
नवशिक्या वापरकर्त्यांसाठी, सानुकूल पोस्ट प्रकार तयार करण्यासाठी आम्ही कस्टम पोस्ट प्रकार UI प्लगइन वापरण्याची शिफारस करतो. या प्लगइनचा वापर करून, तुमच्याकडे श्रेणींसह कोणत्याही अंगभूत किंवा सानुकूल वर्गीकरणासह सानुकूल पोस्ट प्रकार संबद्ध करण्याची क्षमता आहे. प्लगइन स्थापित केल्यानंतर, CPT UI वर जा » नवीन सानुकूल पोस्ट प्रकार तयार करण्यासाठी पोस्ट प्रकार जोडा/संपादित करा किंवा विद्यमान एक संपादित करा.
Advanced Options वर खाली स्क्रोल करा आणि तिथे तुम्हाला Built in Taxnomies पर्याय दिसेल. श्रेण्यांच्या पुढील बॉक्स चेक करा आणि तुमचा पोस्ट प्रकार जतन करा.
सानुकूल पोस्ट प्रकारासाठी व्यक्तिचलितपणे श्रेण्या जोडणे
जर तुम्ही तुमच्या functions.php फाइलमध्ये कोड जोडून कस्टम पोस्ट प्रकार तयार केला असेल, तर तुम्हाला वर्गीकरण समर्थित वर्गीकरण म्हणून जोडण्यासाठी तो कोड बदलावा लागेल. तुम्हाला फक्त ही ओळ तुमच्या सानुकूल पोस्ट प्रकार वितर्कांमध्ये जोडायची आहे:
'taxonomies' => अॅरे ('श्रेणी'),
हे शक्य आहे की तुमच्या कोडमध्ये आधीपासून ही ओळ इतर सानुकूल वर्गीकरणासह आहे. तसे असल्यास, नंतर तुम्हाला फक्त स्वल्पविराम जोडणे आणि श्रेणी जोडणे आवश्यक आहे:
'taxonomies' => अॅरे ('विषय', 'श्रेणी'),
येथे संपूर्ण कोडचे उदाहरण आहे जिथे आम्ही सर्व अंगभूत श्रेणींसाठी समर्थनासह "चित्रपट" नावाचा सानुकूल पोस्ट प्रकार तयार केला आहे.
फंक्शन custom_post_type() ( // कस्टम पोस्ट प्रकारासाठी UI लेबले सेट करा $labels = array("name" => _x("चित्रपट", "पोस्ट प्रकार सामान्य नाव", "ट्वेंटीथर्टीन"), "एकवचन_नाव" => _x(" चित्रपट", "पोस्ट प्रकार एकवचनी नाव", "वीसतीस"), "मेनू_नाव" => __("चित्रपट", "वीसतीस"), "पालक_आयटम_कोलन" => __("पालक चित्रपट", "वीसतीस"), "सर्व_आयटम " => __("सर्व चित्रपट", "वीसतीस"), "दृश्य_आयटम" => __("चित्रपट पहा", "वीसतीस"), "add_new_item" => __("नवीन चित्रपट जोडा", "वीसतेरा"), "add_new" => __("नवीन जोडा", "वीसतेरा"), "edit_item" => __("चित्रपट संपादित करा", "वीसतीस"), "update_item" => __("चित्रपट अपडेट करा", "वीसतेरा") , "search_items" => __("चित्रपट शोधा", "विसावीस"), "not_found" => __("सापडले नाही", "विसावीस"), "not_found_in_trash" => __("कचऱ्यात सापडले नाही", " twentythirteen"),); // सानुकूल पोस्ट प्रकारासाठी इतर पर्याय सेट करा $args = array("label" => __("चित्रपट", "Twentythirteen"), "description" => __("चित्रपट बातम्या आणि परीक्षणे", "तेवीस"), "लेबल" => $लेबल्स, "समर्थन" => अॅरे("शीर्षक", "संपादक", "उतारा", "लेखक", "थंबनेल", "टिप्पण्या", "पुनरावृत्ती", "सानुकूल -फील्ड", "हाइरार्किकल" => असत्य, "सार्वजनिक" => खरे, "शो_यूआय" => खरे, "शो_इन_मेनू" => खरे, "शो_इन_नाव_मेनू" => खरे, "शो_इन_अॅडमिन_बार" => खरे, "मेन्यू_स्थिती " => 5, "can_export" => खरे, "has_archive" => खरे, "exclude_from_search" => असत्य, "publicly_queryable" => खरे, "capability_type" => "पृष्ठ", // येथेच आम्ही वर्गीकरण जोडतो आमच्या CPT "taxonomies" => अॅरे("श्रेणी"),); // तुमच्या सानुकूल पोस्ट प्रकाराची नोंदणी करणे register_post_type("चित्रपट", $args); ) /* "init" कृतीमध्ये हुक करा जेणेकरून फंक्शन * आमची पोस्ट प्रकार नोंदणी असलेले * अनावश्यकपणे कार्यान्वित होणार नाही. */ add_action("init", "custom_post_type", 0);
श्रेणी पृष्ठावर एकाधिक पोस्ट प्रकार प्रदर्शित करणे
डीफॉल्टनुसार, वर्डप्रेस साइटवरील श्रेणी पृष्ठे मानक पोस्ट प्रकार प्रदर्शित करतात. तुम्हाला तुमच्या पोस्टचा प्रकार डिफॉल्ट पोस्ट म्हणून समान श्रेणीच्या पृष्ठावर दिसावा असे वाटत असल्यास, तुम्हाला खालील कोड तुमच्या functions.php फाइलमध्ये जोडणे आवश्यक आहे:
Add_filter("pre_get_posts", "query_post_type"); फंक्शन query_post_type($query) ( if(is_category()) ( $post_type = get_query_var("post_type"); if($post_type) $post_type = $post_type; बाकी $post_type = array("nav_menu_item", "post" चित्रपट"); // मेनू कार्य करण्यास अनुमती देण्यासाठी nav_menu_item विसरू नका! $query->set("post_type",$post_type); $query परत करा; ))
तुमच्या सानुकूल पोस्ट प्रकाराच्या नावात चित्रपट बदलण्यास विसरू नका.
वर्डप्रेस साइट्सचा विकास आणि समर्थन हे आमचे वैशिष्ट्य आहे. विनामूल्य सल्लामसलत करण्यासाठी संपर्क - ,