চাইল্ড থিমে থিম সেটিংস সংরক্ষণ করা


10

আমার ক্লায়েন্ট থিম বিকল্পে অনেক সেটিংস সহ কর্ম থিম ব্যবহার করে। চাইল্ড থিমে আমার সিএসএস এবং পিএইচপি সংযোজনগুলি রাখা দরকার যাতে থিম আপডেটগুলি এটি মুছে না দেয়। তবে আমি যখন চেহারা> থিমগুলিতে আমার শিশু থিমটি নির্বাচন করি তখন মূল থিমের সেটিংস সব শেষ হয়ে যায়।

মূল থিম সেটিংস সংরক্ষণের কোনও উপায় আছে কি?


"চলে গেছেন" মানে কি? আপনি যদি প্যারেন্ট থিমটিতে ফিরে যেতে পারেন এবং সেটিংটি সেখানে থাকে তবে সেগুলি যায় না
মার্ক কাপলুন

ড্যাশবোর্ড এবং ওয়েবসাইট থেকে গেছে, এটি। এগুলি এখনও ডাটাবেসে কোথাও রয়েছে তবে এটি আমার সমস্যার সাথে প্রাসঙ্গিক নয়।
drake035

সুতরাং আপনার সমস্যা কি? আপনি জিজ্ঞাসা করেছিলেন "মূল থিম সেটিংস সংরক্ষণের কোনও উপায় আছে কি?" এবং যেহেতু তারা এখনও ডিবিতে রয়েছে সেগুলি সংরক্ষিত রয়েছে
মার্ক কপলুন

চাইল্ড থিমে উপস্থিত "সংরক্ষিত" অর্থ। অভিভাবক থেকে শিশু থিমে স্যুইচ করার সময় আমি চাই শিশুদের সেটিংস পিতামাতার সেটিংসের মতোই হয় be
drake035

তারপরে সেগুলি অনুলিপি করুন। স্বীকার করতে হবে আপনি যে সমস্যার সমাধান করতে চাইছেন তা ঠিক কী তা আমি এখনও পাই না। আপনি আপনার জীবনকে জটিল করার চেষ্টা করছেন বা বাচ্চাদের থিম করার আপনার দৃষ্টিভঙ্গি ভুল বলে মনে হচ্ছে এবং আপনি পিতামাতার থিমটি আরও ভালভাবে সংশোধন করতে পারেন (বা এটি হতে পারে যে পিতামাত থিমটি শিশু থিমগুলির জন্য ব্যবহারের জন্য উপযুক্ত নয়)
মার্ক কাপলুন

উত্তর:


11

এই থিম সেটিংসটি যেভাবে ডাটাবেসে অ্যারে হিসাবে সংরক্ষণ করা হয়, কেবলমাত্র phpmyadmin বা কিছু অনুরূপ কৌশলতে অনুলিপি করে তা অনুলিপি করা কঠিন হতে পারে।

ডাব্লু 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

বিকল্প আপডেট theme_mods_storefront-sqcdy সন্তান --format = JSON <theme_mods_storefront.txt দ্বিতীয় লাইন হিসাবে আপনি খুব WP একটি নল ব্যবহার করা উচিত
গ্রেগর

হ্যাঁ, আমি মনে করি এটি করার এটি আরও আদর্শ উপায় ...
স্কয়ারকাণ্ডি

হাই স্কয়ারকাণ্ডি, আপনি বলেছিলেন যে "এগুলি কেবল অনুলিপি এবং কপি করে মুছে ফেলা কঠিন হতে পারে", তবে আপনি যে অপারেশন করেন তা আমার কাছে একই বলে মনে হয়। আমি কি ভূল?
মার্কো পানিচি

@ মার্কোপাণিচি - এটি অবশ্যই আলাদা because কারণ ডাব্লুপি সিএলআই একগুচ্ছ অভিনব জিনিস করে যা আপনি কখনই সঠিক উপায়ে আনসিরিয়ালাইজিং / পুনরায় সিরিয়ালাইজ করতে দেখেন না। যদি আপনি কেবল মানগুলি অনুলিপি করেন এবং মাইএসকিউএল কমান্ড বা phpmyadmin দিয়ে ডাটাবেসে সরাসরি জিনিসগুলি পরিবর্তন করার চেষ্টা করেন তবে আপনি সম্ভবত জিনিসগুলিকে গোলমাল করবেন।
স্কয়ারকাণ্ডি

1
আপনি কেবল সিরিয়ালযুক্ত মানটি কেন অনুলিপি করতে পারবেন না এবং এটির জন্য 100% সময় কাজ করবে বলে আশা করছেন তার জন্য wpengine.com/support/wordpress-serialized-data - "সম্ভাব্য দ্বন্দ্ব" বিভাগটি দেখুন। ডাব্লুপি সিএমআই আপনার জন্য এই সমস্ত যত্ন নেয় care
স্কয়ারকাণ্ডি

6

ওয়ার্ডপ্রেস থিম পরিবর্তনগুলি ক্ষেত্রের wp_optionsডাটাবেস সারণীতে সংরক্ষণ করা হয় theme_mods_{themename}। আপনি এটি অনুলিপি করতে পারেন এবং আপনার সন্তানের থিমের নাম ব্যবহার করে নতুন নামকরণ করতে পারেন।


1
এবং যখন প্যারেন্ট থিম আপডেট হয় এবং নতুন বিকল্প যুক্ত করে, তখন আপনি কী করবেন?
মার্ক কাপলুন

1
@ মার্কক্যাপলুন এর চেয়ে ভাল বিকল্প কী? আমি মনে করি
ইইন

1
@ শিশু থিম সম্পর্কে আমি যত বেশি প্রশ্ন পড়ি, তাতে এর সীমাবদ্ধতা কম আমার পছন্দ হয়। দেখে মনে হচ্ছে যে পিতামাতার থিমের কোনও তুচ্ছ পরিবর্তনের জন্য আপনাকে চাইল্ড থিম কোডটি পুনরায় মূল্যায়ন করতে হবে। আপনার সমস্ত কিছু যদি সিএসএস হয় তবে কিছুটা সমস্যা আছে তবে অন্য যে কোনও কিছুর জন্য পুনর্নির্মাণের প্রয়োজন। এখানের ওপিকে অবশ্যই নিশ্চিত করতে হবে যে তিনি প্রতিটি আপগ্রেডের ক্ষেত্রে মূল থিমের সাথে বিকল্পগুলি সিঙ্ক করেছেন (যদি খালি খালি ডিফল্ট মান সহ একটি নতুন বিকল্প যুক্ত করা থাকে)। আমি নিজেকে চাইল্ড থিমগুলি ব্যবহার করার পক্ষে পরামর্শ দিচ্ছি এবং পরিবর্তে "পিতামাতার" শাখায় গিট ব্যবহার করব এবং যখন আপডেট থাকবে তখন মার্জ কর।
মার্ক কাপলুন

আপনি যখন বলেন, চাইল্ড থিমের নাম ব্যবহার করে নতুন নামকরণ করুন, আপনার নির্দিষ্ট নামটি কী বোঝায়? শিশু থিমের নামটি কোথা থেকে পাব তা আমি বুঝতে পারি না।

@ ফিউদ্দিন থিমের নাম চাইল্ড থিমের ফোল্ডারের নাম; উদাহরণস্বরূপ: পিতামাতার থিম সেটিংস বিকল্প_নাম 'থিম_মডস_পিতা-থিম-নাম' দ্বারা সনাক্ত করা হয়; চাইল্ড থিম সেটিংসটি 'থিম_মডস_পিতা-পিতা-থিম-নাম-চাইল্ড' বিকল্পের সাহায্যে সনাক্ত করা যায়। এটি পরিষ্কারভাবে দেখার জন্য আপনি আপনার ডাটাবেসে একটি নির্বাচন সম্পাদন করতে পারেন:SELECT * FROM wp_options WHERE option_name LIKE "theme_mods_%"
মার্কো পানিচি

1

আমি ডাটাবেসে অপশনগুলি অনুলিপি করে সমাধান করেছি ।

এখানে ধাপে ধাপে পদ্ধতি :

  1. আপনার পিএইচপিএমআইএডমিনে লগইন করুন এবং ওয়েবসাইটের ডেটাবেস নির্বাচন করুন
  2. ডাটাবেস ব্যাকআপ
  3. শৃঙ্খলা পরিস্থিতি একটি স্পষ্ট আছে এই প্রশ্নের সাথে সম্পাদন: SELECT * FROM wp_options WHERE option_name LIKE "theme_mods_%"; এই নির্দেশনাটি আপনি এখন পর্যন্ত আপনার ওয়েবসাইটে সক্রিয় প্রতিটি থিমের জন্য একটি সারি ফিরিয়ে দেবে
  4. বিকল্প_নাম = থিম_মডস_পিতা-থিম-নাম দ্বারা চিহ্নিত প্যারেন্ট থিম সেটিংসের সারিটি সংশোধন করুন
  5. এখানে অপশন_ভ্যালু ক্ষেত্রে, আপনার কাছে সিরিয়ালযুক্ত আকারে সমস্ত মূল থিম সেটিংস রয়েছে; এগুলি অনুলিপি করুন; মানব-বান্ধব আকারে সামগ্রীটি দেখতে আপনি একটি আনসিরিয়ালাইজ সরঞ্জাম ব্যবহার করতে পারেন
  6. 3 পয়েন্ট এ ফিরে আসুন, তবে এখন চাইল্ড থিম সেটিংসের সারিটি পরিবর্তন করুন
  7. অপশন_ভ্যালু ক্ষেত্রে আপনি এর আগে অনুলিপি করা সেটিংস আটকান; সংরক্ষণ

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',
        ) );

স্পষ্টতই আপনার থিমের কার্যকারিতা নিয়ে কাজ করার জন্য আপনাকে এই কোডটি সংশোধন করতে হবে।

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