2017-02-17 18 views
6

संदर्भ के लिए कस्टम डेटा संग्रहीत करने के लिए सबसे अच्छा अभ्यास क्या है संदर्भ: मुझे साइट के लिए बहुत सारे अनुकूलन और कुछ फ़ील्ड (20+) के साथ एक फॉर्म बनाने की आवश्यकता है और प्लगइन स्थापित करने और नरक को संशोधित करने के बजाय इसमें से (या प्लगइन के एपीआई सीखना) मैंने अपनी खुद की प्लगइन लिखने का फैसला किया। चूंकि मैं इसे स्क्रैच से कर रहा हूं क्योंकि डेटा संग्रह करने के सवाल का जवाब देना था।वर्डप्रेस

अधिकांश लोग एक कस्टम पोस्ट के बजाय एक कस्टम पोस्ट प्रकार और मेटा डेटा का उपयोग करने का सुझाव देंगे और जब मैं कस्टम पोस्ट प्रकार और टैक्सोनोमी आदि से परिचित हूं, तो मुझे आश्चर्य होगा कि यह शुद्ध डेटा संग्रहण के लिए सबसे अच्छा है या नहीं।

फॉर्म एकल उपयोग है और जो डेटा मैं संग्रहीत कर रहा हूं वह साइट के सामने के अंत में पहुंच योग्य नहीं होगा और केवल WP-admin पर "देखा" जाएगा और यह संभवतः केवल एक पृष्ठ होगा एक फिल्टर करने योग्य टेबल।

तो यह सवाल एक कस्टम पोस्ट प्रकार और मेटा-डेटा का उपयोग करके यह वारंट है या क्या मुझे सिर्फ एक टेबल बनाना चाहिए और $ wpdb क्लास का उपयोग करना चाहिए क्योंकि यह सीआरयूडी को सरल बनाता है और अभी भी चीजों को करने के "वर्डप्रेस तरीके" पर चिपक जाता है।

पढ़ना:This post एक कस्टम तालिका के लिए एक अच्छा मामला बनाता है, खासकर जब से उनके उदाहरण निजी डेटा भंडारण के बारे में है, दक्षता और गोपनीयता के सवाल पैदा हुई। This question, कुछ साल पहले उत्तर दिया गया था लेकिन सार्वजनिक स्थिति के लिए संग्रहीत डेटा के बाद उपयोग-मामला अलग था।

उत्तर

4

मैं एक अलग तालिका का उपयोग करने का सुझाव देता हूं। डब्ल्यूपी टेबल पोस्टमेटा आमतौर पर कई अलग-अलग प्लगइन से बहुत सारी जानकारी से भरा होता है, और अक्सर डेटाबेस में सबसे बड़ी या सबसे बड़ी तालिका होने पर समाप्त होता है।

इसके अलावा, यदि पोस्टमेटा टेबल में सहेजा गया है तो यह हमेशा पोस्ट टेबल में आंशिक रूप से सहेजा जाएगा, क्योंकि इन दोनों को जानकारी के लिए एक-दूसरे की आवश्यकता होती है और पूरा हो जाता है। इसलिए यदि आप किसी अन्य डेटाबेस में निर्यात/आयात कर रहे थे, तो आपको एक बहुत ही अप्रिय प्रक्रिया में शामिल होना होगा जहां कस्टम पोस्ट को उसी डेटाबेस की आवश्यकता होती है क्योंकि वे अंतिम डेटाबेस

इसके अलावा, डेटा बहुत आसानी से सुलभ है यदि एक अलग तालिका में, और phpmyadmin से भी पढ़ने के लिए आसान होना चाहिए और यदि आपके पास केवल मूल एसक्यूएल ज्ञान है तो $ wpdb क्लास का उपयोग करके फ़िल्टर करने योग्य तालिका को कोड करना काफी आसान होना चाहिए।

यह सब मेरे हालिया अनुभव से आता है जिसमें 2 बड़ी वर्डप्रेस वेबसाइटों को एक में विलय कर दिया गया है, और पोस्टमेटा के रूप में बहुत सारी जानकारी सहेजी गई है ... मैं वास्तव में चाहता हूं कि इसमें से अधिकांश कस्टम टेबल में सहेजे गए हों, क्योंकि इससे मेरा जीवन अधिक हो जाएगा आसान।

मेटा और कस्टम पोस्ट प्रकार का उपयोग करने का एकमात्र कारण यह होगा कि यह तेज़ और आसान है (कम से कम मेरे अनुभव में)। उम्मीद है कि इससे मदद मिलती है, मैं वास्तव में यह देखने में रूचि रखता हूं कि क्या अन्य राय हैं। आपकी परियोजना के लिए शुभकामनाएं!

1

ज्यादातर मामलों में मेटा-डेटा के साथ कस्टम पोस्ट प्रकार का उपयोग करना आसान और ठंडा है, क्योंकि यह तेज़ किया जाता है और आप इसके लिए सभी कूल वर्डप्रेस फ़ंक्शंस का उपयोग कर सकते हैं।

डेटाबेस में एक नई तालिका का उपयोग करना बेहतर होता है, जब आपको बहुत सारे डेटा को सहेजना होता है, यानी लॉग या इसी तरह का उपयोग करना होता है।

WooCommerce (वर्डप्रेस लोगों से एक प्लगइन) उत्पादों को सीपीटी और मेटा-डेटा के रूप में संबंधित सभी डेटा को सहेजते हैं।

+0

अच्छा आप woocommerce उल्लेख किया है, आप जिस तरह से woocommerce का आयोजन करता है यह डेटा है खुश हैं? मुझे पता है कि यह वर्डप्रेस मानकों के साथ इनलाइन है, लेकिन कुछ मामलों में मेरी इच्छा है कि यह अलग-अलग बनाया जाएगा। – funkysoul

+0

हां मैं इसके साथ खुश हूं। मैंने पहले से ही कई एक्सएमएल कैटलॉग आयात किए हैं जो स्वयं निर्मित आयात स्क्रिप्ट के साथ आयात करते हैं जो उत्पाद डेटा को स्टोर करने के लिए सामान्य वर्डप्रेस फ़ंक्शंस का उपयोग करते हैं। कम से कम मेरे पास स्टोर में 5000 से अधिक उत्पाद हैं, और यह अच्छा लगता है;) –

2

दिलचस्प सवाल!

मैं आमतौर पर ऐसे मामलों के लिए कस्टम पोस्ट प्रकार और टैक्सोनोमी का उपयोग करता हूं (जैसा आपने बताया)। ताकि जाना मेरी तरीका होगा, केवल एक चीज है कि मैं थोड़ा डर लग रहा है वह जगह है जहाँ आप उल्लेख "एक लॉग को ..amounts .."

मैं बहुत यकीन है कि आप का उपयोग कर बंद बेहतर होगा हूँ एक अलग मेज, यह सिर्फ पोस्टमेटा टेबल के माध्यम से काम करने के लिए बेकार है। अंत में यदि आप जानते हैं कि $ wpdb कक्षा का उपयोग कैसे करें, तो आपको ठीक होना चाहिए!

दूसरों इनपुट की ओर देख रहे