वर्डप्रेस गुरु नहीं। मुझे एक छोटा सा सरल प्लगइन विरासत में मिला है जो उपयोगकर्ता को एक छवि अपलोड करने की अनुमति देता है, जो तब एक सरणी में जुड़ जाता है, और फिर आप उस छवि (शीर्षक, विवरण, आदि) के लिए सरणी मान जोड़/संपादित कर सकते हैं। मेरे पास जो मुद्दा है वह थोड़ी देर के लिए बहुत अच्छा काम करता है, फिर अचानक फॉर्म डीबी में विकल्प_वैल्यू में मानों को सहेजना बंद कर देता है। यह 10-15 प्रविष्टियों के बाद हो सकता है। मैंने सत्यापित किया है कि विकल्प.php पर भेजा जा रहा पेलोड सही है।

यह प्लगइन बेतरतीब ढंग से टेबल पर डेटा सहेजना क्यों बंद कर देता है?

मैंने विकल्प सरणी पंजीकृत की है

$djwp_images = get_option('djwp_images');

add_action('admin_init', 'djwp_register_settings');
function djwp_register_settings() {
   register_setting('djwp_images', 'djwp_images');
   register_setting('djwp_settings', 'djwp_settings');
}

एक एकल उदाहरण नीचे दिखाया गया है कि यह फ़ॉर्म के लिए सरणी के माध्यम से कैसे पुनरावृत्त होता है।

<form class="djform" method="post" action="options.php">
    <?php foreach ($djwp_images as $id => $data) { ?>
    // Single example shows how and array is used to input values
    <input type="hidden" name="djwp_images[<?= $id; ?>][file_url]"
                       value="<?= $file_url ?>"/>
    <? } ?>
    <?= submit_button(); ?>
</form>

पास्टबिन में पूर्ण स्रोत कोड

वर्डप्रेस का उपयोग करना: 4.9.8

1
Sixthpoint 24 अक्टूबर 2018, 19:35

1 उत्तर

सबसे बढ़िया उत्तर

समस्या सीधे WP से संबंधित नहीं है। समस्या यह है कि प्रत्येक लूप पर (for में) यह लगभग 20 इनपुट आउटपुट करता है। कुल मिलाकर, यह सैकड़ों इनपुट आउटपुट करता है, और आपको अपने सर्वर पर input_vars की मात्रा बढ़ानी होगी। या तो इसे अपने functions.php के ऊपर डालें, इसे हल करना चाहिए:

ini_set('max_input_vars', 3000);
ini_set('post_max_size', '128M');

या उन मानों को अपने सर्वर के php.ini में अपडेट करें (और सर्वर को पुनरारंभ करें)

0
T.Todua 4 नवम्बर 2018, 13:15