बाल थीम में थीम सेटिंग्स को संरक्षित करना


10

मेरा क्लाइंट थीम विकल्पों में कई सेटिंग्स के साथ कर्मा थीम का उपयोग करता है। मुझे अपने सीएसएस और पीएचपी परिवर्धन को एक बच्चे के विषय में रखने की आवश्यकता है ताकि विषय अपडेट इसे मिटा न दें। हालाँकि जब मैं अपने बाल विषय को Appearance> Themes में चुनता हूँ, तो मुख्य थीम सेटिंग्स सब खत्म हो जाती हैं।

क्या मुख्य थीम सेटिंग्स को संरक्षित करने का कोई तरीका है?


"गए" में आपका क्या मतलब है? यदि आप मूल विषय पर वापस स्विच कर सकते हैं और सेटिंग वहां है तो वे नहीं गए हैं
मार्क कप्लून

डैशबोर्ड और वेबसाइट से गया है, जो है। वे अभी भी डेटाबेस में कहीं मौजूद हैं, लेकिन यह मेरी समस्या के लिए प्रासंगिक नहीं है।
drake035

तो आपको क्या समस्या है? आपने पूछा "क्या मुख्य थीम सेटिंग्स को संरक्षित करने का कोई तरीका है?" और जब से वे अभी भी DB में हैं, वे संरक्षित हैं
मार्क कप्लुन

चाइल्ड थीम में मौजूद "संरक्षित" अर्थ। पेरेंट से चाइल्ड थीम पर स्विच करते समय मैं चाहता हूं कि चाइल्ड सेटिंग्स पैरेंट सेटिंग जैसी ही हों।
drake035

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

जवाबों:


11

डेटाबेस में इन थीम सेटिंग्स को एक सरणी के रूप में संग्रहीत किए जाने के तरीके के कारण, उन्हें केवल कॉपी करना और phpmyadmin या कुछ समान रणनीति में पेस्ट करना मुश्किल हो सकता है।

WP CLI विकल्प आदेश अपने दोस्त यहाँ है। यदि आप पहले से ही WP CLI का उपयोग नहीं करते हैं, तो इसे देखें! यहां बताया गया है कि मैंने स्टोरफ्रंट थीम से स्टोरफ्रंट-स्कैडी-चाइल्ड नामक थीम पर सेटिंग्स को कैसे कॉपी किया:

# save the existing theme settings in json format in a temporary text file
wp option get theme_mods_storefront --format=json > theme_mods_storefront.txt

# load the saved settings into the child theme option record in the database
wp option update theme_mods_storefront-sqcdy-child --format=json < theme_mods_storefront.txt

# cleanup the temp file
rm -f theme_mods_storefront.txt

दूसरी पंक्ति के रूप में आपको एक पाइप का भी उपयोग करना चाहिए wp विकल्प अपडेट अपडेट theme_mods_storefront-sqcdy-child-format = json <theme_mods_storefront.txt
ग्रेगर

हाँ, मुझे लगता है कि यह करने के लिए एक अधिक मानक तरीका है ...
वर्ग

हाय स्क्वायरकैंडी, आपने कहा "उन्हें केवल कॉपी और पेस्ट के साथ कॉपी करना मुश्किल हो सकता है", लेकिन आप जो ऑपरेशन करते हैं, वह मुझे वही लगता है। क्या मै गलत हु?
मार्को पानिची

@MarcoPanichi - यह निश्चित रूप से अलग है क्योंकि WP CLI फैंसी सामान का एक गुच्छा करता है जिसे आप कभी भी उचित तरीके से डेटा को अनजाने / पुन: क्रमबद्ध नहीं देखते हैं। यदि आप केवल मूल्यों की प्रतिलिपि बनाते हैं और डेटाबेस में सीधे MySQL कमांड या phpmyadmin के साथ चीजों को बदलने का प्रयास करते हैं, तो आप संभवतः चीजों को गड़बड़ कर देंगे।
चौकोर कैंडी

1
Wpengine.com/support/wordpress-serialized-data - "संभावित विरोध" अनुभाग देखें कि आप केवल अनुक्रमित मान पर कॉपी क्यों नहीं कर सकते हैं और यह उम्मीद कर सकते हैं कि यह 100% काम करेगा। WP CLI आपके लिए इस सब का ध्यान रखता है।
चौकोर बांका

6

वर्डप्रेस थीम संशोधनों को क्षेत्र में wp_optionsडेटाबेस तालिका में सहेजा जाता है theme_mods_{themename}। आप इसे कॉपी कर सकते हैं और अपने बच्चे के थीम नाम का नाम बदल सकते हैं।


1
और जब माता-पिता थीम अपडेट करते हैं और नए विकल्प जोड़ते हैं, तो आप क्या करते हैं?
मार्क कप्लून

1
एक बेहतर विकल्प @MarkKaplun क्या है? मुझे लगता है कि यह उस समस्या को हल करता है जो उपयोगकर्ता पूछ रहा है
Eoin

1
@ बाल विषयों के बारे में मैंने जितने प्रश्न पढ़े हैं, उतनी ही कम मुझे इसकी सीमाएँ पसंद हैं। ऐसा लगता है कि मूल विषय में किसी भी गैर तुच्छ परिवर्तन के लिए आपको बाल थीम कोड का पुनर्मूल्यांकन करना होगा। यदि आप सभी सीएसएस करते हैं, तो थोड़ी समस्या होती है, लेकिन किसी अन्य चीज के लिए पुनर्मूल्यांकन की आवश्यकता होती है। यहां ओपी को यह सुनिश्चित करने की आवश्यकता होगी कि वह प्रत्येक अपग्रेड पर मूल विषय के साथ विकल्पों को सिंक करता है (यदि कोई नया विकल्प गैर खाली डिफ़ॉल्ट मान जोड़ा गया था)। मैं अपने आप को बाल विषयों का उपयोग करने की वकालत करता हूं, और इसके बजाय "माता-पिता" को शाखा देने के लिए और अपडेट होने पर मर्ज करने का उपयोग करता हूं।
मार्क कप्लून

जब आप कहते हैं, तो बच्चे के नाम के नाम का उपयोग करके नाम बदलें, आपका क्या विशिष्ट नाम है? मुझे समझ नहीं आ रहा है कि बच्चे का थीम नाम कहां से लाएं।

@fuddin थीम नाम चाइल्ड थीम के फ़ोल्डर का नाम है; उदाहरण के लिए: मूल विषय सेटिंग्स को विकल्प_नाम 'थीम_मॉड्स_परेंट-थीम-नेम' द्वारा पहचाना जाता है; चाइल्ड थीम सेटिंग्स को विकल्प_नाम 'थीम_मॉड्स_परेंट-थीम-नेम-चाइल्ड' द्वारा पहचाना जा सकता है। आप स्पष्ट रूप से देखने के लिए अपने डेटाबेस पर एक चयन कर सकते हैं:SELECT * FROM wp_options WHERE option_name LIKE "theme_mods_%"
मार्को पानिची

1

मैंने डेटाबेस में केवल विकल्प कॉपी करके हल किया ।

यहाँ चरण-दर-चरण प्रक्रिया है :

  1. अपने phpMyAdmin में लॉग इन करें और वेबिस्ट के डेटाबेस का चयन करें
  2. डेटाबेस बैकअप
  3. स्थिति के बारे में स्पष्ट दृष्टिकोण रखने के लिए इस क्वेरी को निष्पादित करें SELECT * FROM wp_options WHERE option_name LIKE "theme_mods_%":; यह निर्देश अब तक आपकी वेबसाइट पर सक्रिय प्रत्येक विषय के लिए एक पंक्ति लौटाएगा
  4. विकल्प_नाम = theme_mods_parent-theme-name द्वारा पहचानी गई मूल विषय सेटिंग्स की पंक्ति को संशोधित करें
  5. यहां, option_value फ़ील्ड में, आपके पास क्रमबद्ध रूप में सभी मूल विषय सेटिंग्स हैं; उन्हें कॉपी करें; सामग्री को मानव-अनुकूल रूप में देखने के लिए आप एक अनजाने उपकरण का उपयोग कर सकते हैं
  6. बिंदु 3 पर वापस आएं, लेकिन अब चाइल्ड थीम सेटिंग्स की पंक्ति को संशोधित करें
  7. Option_value फ़ील्ड में आपके द्वारा पहले कॉपी की गई सेटिंग्स पेस्ट करें; सहेजें

0

आप ऐसा कुछ कर सकते हैं जैसे कि थीम को सक्रिय और स्विच करते समय जेनेसिस चाइल्ड थीम में डिफ़ॉल्ट थीम सेटिंग्स को बचाने के लिए क्या शामिल हैं:

//* Theme Setting Defaults
add_filter( 'genesis_theme_settings_defaults', 'child_theme_defaults' );
function child_theme_defaults( $defaults ) {

    $defaults['blog_cat_num']              = 6;
    $defaults['content_archive']           = 'full';
    $defaults['content_archive_limit']     = 150;
    $defaults['content_archive_thumbnail'] = 0;
    $defaults['image_alignment']           = '';
    $defaults['image_size']                = 'entry-image';
    $defaults['posts_nav']                 = 'prev-next';
    $defaults['site_layout']               = 'full-width-content';

    return $defaults;

}

//* Theme Setup
add_action( 'after_switch_theme', 'child_theme_setting_defaults' );
function child_theme_setting_defaults() {

    if( function_exists( 'genesis_update_settings' ) ) {

        genesis_update_settings( array(
            'blog_cat_num'              => 6,
            'content_archive'           => 'full',
            'content_archive_limit'     => 150,
            'content_archive_thumbnail' => 0,
            'image_alignment'           => '',
            'image_size'                => 'entry-image',
            'posts_nav'                 => 'prev-next',
            'site_layout'               => 'full-width-content',
        ) );

    } else {

        _genesis_update_settings( array(
            'blog_cat_num'              => 6,
            'content_archive'           => 'full',
            'content_archive_limit'     => 150,
            'content_archive_thumbnail' => 0,
            'image_alignment'           => '',
            'image_size'                => 'entry-image',
            'posts_nav'                 => 'prev-next',
            'site_layout'               => 'full-width-content',
        ) );

स्पष्ट रूप से आपको अपने विषयों की कार्यक्षमता के साथ काम करने के लिए इस कोड को संशोधित करना होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.