আমি কীভাবে আমার সন্তানের থিমটিকে তার পিতামাতার সক্রিয় থাকাকালীন কাস্টমাইজ করা সেটিংসটিকে পুনরায় প্রয়োগ করব?


17

দৃশ্যপট

  1. 2015 থিম চয়ন করুন। ব্যাকগ্রাউন্ড ছবি, শিরোনামের চিত্র, সাইটের নাম এবং ট্যাগলাইন হিসাবে বিভিন্ন সেটিংস কাস্টমাইজ করুন।
  2. তবে থিমের যে কোনও ফাইলের বিষয়বস্তু স্পর্শ করবেন না।
  3. 2015 থিমের সর্বাধিক ন্যূনতম শিশু থিম তৈরি করতে কোডেক্সের চাইল্ড থিমগুলি ব্যবহার করুন ।
  4. নতুন শিশু থিমটি সক্রিয় করুন।

ওহো?

এই খালি ন্যূনতম চাইল্ড থিমটি অ্যাক্টিভেটেড সাইটটি পিতামাতাদের থিম থেকে সম্পূর্ণ আলাদা দেখায়। পটভূমি এবং শিরোলেখের চিত্রটি চলে গিয়েছিল এবং সাইডবার (বা শিরোনাম) উইজেটের সমস্ত পদ্ধতি সক্রিয় করা হয়েছিল যা প্যারেন্ট 2015 থিমটিতে সক্রিয় ছিল না (ডিফল্টরূপে)।

2015 থিমের জন্য কয়েকটি স্বনির্ধারিত সেটিংস সহ সাইটের আসল চেহারা:

কাস্টমাইজড 2015 থিমের সাথে সফিজেজে ওয়ান্ডার্স

2015 থিমের style.cssউত্সাহ প্রাপ্ত চাইল্ড থিমটি যেমন দেখায় তেমন সাইটটিতে কেবল প্রয়োজনীয় শিরোনাম রয়েছে এবং এতে কোডেক্সের চাইল্ড থিম পৃষ্ঠার পরামর্শ অনুসারে কেবল শৈলীগুলি তৈরি করেছে function.php

এখানে চিত্র বর্ণনা লিখুন

প্রশ্ন

আমি কীভাবে এটি তৈরি করব যাতে চাইল্ড থিমটি সক্রিয় করা পিতামাতার থিমটির কাস্টমাইজেশন এবং ডিফল্ট রাখে?

এই ক্ষেত্রে: শিরোনাম এবং পটভূমি চিত্র এবং ডিফল্ট (সাইডবার / শিরোলেখ) উইজেটগুলির অপসারণ (নিষ্ক্রিয়তা?)


মন্তব্য

ইতিমধ্যে ভারী কাস্টমাইজড থিমের চাইল্ড থিম তৈরি করুন এটি সদৃশ বলে মনে হতে পারে তবে থিমের ফাইলগুলি সম্পাদনা করে এটি কাস্টমাইজেশন সম্পর্কিত।

এই প্রশ্নটি চাইল্ড থিমটি সক্রিয় করার সময়, কোন মূল সেটিংসগুলি পুনরায় সেট করতে হবে; কাস্টম মেনু ইত্যাদি? আমি ঠিক পরে মনে হচ্ছে কি জিজ্ঞাসা করা। দুর্ভাগ্যক্রমে, একমাত্র উত্তর বৈশিষ্ট্যগুলিতে একটি অমিল সম্পর্কে অনুমান করে, যা আমার পক্ষে নয় এবং ওপির মন্তব্যেও একই প্রভাব ফেলেনি।

আমিও তাকালাম

উত্তর:


9

আমি @ ওয়েবটাউরের উত্তরে একটি +1 দিয়েছি কারণ এটি আপনাকে সঠিক দিকনির্দেশ দেয়, তবে আমি মনে করি এটিতে কিছু চেক নেই।

সবার আগে এটি যাচাই করা হয় না যে থিমটি সক্রিয় হচ্ছে তা চাইল্ড থিম এবং এটি যাচাই করে না যে থিমটি পূর্বে সক্রিয় থিমটি চাইল্ড থিমের সক্রিয় হওয়ার মূল বিষয়বস্তু।

ওপি সম্পর্কে আমার উপলব্ধি অনুসারে এই শর্তগুলি প্রয়োজনীয়।

তদুপরি, একটি বিষয় যা আপনার বিবেচনায় নিতে হবে তা হ'ল চাইল্ড থিমের থিম মোডগুলি সক্রিয় হওয়ার সাথে কী করা উচিত, যদি সেগুলি ইতিমধ্যে বিদ্যমান থাকে।

@ ওয়েবেটোউরের উত্তরে সেগুলি একটি ব্যাকআপে সঞ্চিত রয়েছে, এটি আপনাকে কিছু পরিস্থিতিতে বাঁচাতে পারে তবে ওয়ার্ডপ্রেস সেগুলি ডিফল্টরূপে স্বীকৃতি দেয় না এবং তাই তাদের ব্যবহার করার জন্য কিছু অতিরিক্ত কোডের প্রয়োজন require

আমি মনে করি এটির চেয়ে ভাল হবে, প্রথমবারের মতো শিশু থিমটি সক্রিয় হওয়ার পরে পিতামাতাদের থিমের পরিবর্তনের জন্য থিম পরিবর্তন করা উচিত ।

সংক্ষেপে, প্যারেন্ট থিম থেকে থিম মোডের উত্তরাধিকারী হওয়ার আগে আমি যে শর্তগুলি পরীক্ষা করতে চাই তা হ'ল:

  • পূর্বে সক্রিয় থিমটি সক্রিয় হওয়া শিশু থিমের পিতামাতার হতে হবে
  • সক্রিয় হওয়া চাইল্ড থিমটি আগে কখনও সক্রিয় করা হয়নি

দ্বিতীয় শর্তটি নিশ্চিত করতে আমি একটি কাস্টম বিকল্প ব্যবহার করব, কারণ ওয়ার্ডপ্রেস এই চেকটি করার কোনও উপায় সরবরাহ করে না।

এই কোডটি, কী চলছে তা ব্যাখ্যা করার জন্য দয়া করে ইনলাইন মন্তব্যগুলি পড়ুন:

add_action( 'switch_theme', function( $new_name, \WP_Theme $new_theme ) {

    // get the previously active theme
    $previous = get_option( 'theme_switched', -1 );

    // get the parent of current theme, will be false if no parent
    $parent = $new_theme->parent() ? $new_theme->get_template() : false;

    // current stylesheet name
    $stylesheet = get_option( 'stylesheet' );

    // has the theme being activated ever been activated before?
    $lastActive = get_option( $stylesheet . '_last_active', false );

    // if previouly active theme is the parent of the the child theme being activated
    // and it has never been activated before..
    if ( ! $lastActive && $parent === $previous ) {

        // update "last_active" option so following code won't run again for this theme
        update_option( $stylesheet . '_last_active', current_time( 'timestamp', 1 ) );

        // get the theme mods of the parent
        $previousMods = get_option( 'theme_mods_' . $parent, array() );

        // inherit current theme mods from parent theme mods
        update_option( 'theme_mods_' . $stylesheet, $previousMods );
    }

}, 10, 2 );

আপনার উদ্বেগের প্রথম দিকটি সত্যই ন্যায়সঙ্গত নয়: যদি বর্তমান থিমটি চাইল্ড থিম না হয় তবে get_templateকেবল বর্তমান থিমের দির নামটি ফিরিয়ে আনবে। পূর্ববর্তী সক্রিয় থিম এবং বর্তমানের মধ্যে সম্পর্কটি আপনার জানতে হবে না: থিমটির যদি পিতা-মাতা থাকে তবে সেগুলি সেটিংস লোড করে অন্যথায় এটি কেবল তার নিজস্ব সেটিংস লোড করে। আমি আপনার দ্বিতীয় পয়েন্টের সাথে সম্মতি জানাই যা সেটিংসের ওভাররাইট করা হচ্ছে সম্পর্কিত বিষয়টি সম্বোধন করে।
ওয়েবটাউর

তদুপরি, ব্যবহারকারী যদি পছন্দসই শিশু থিমটি সক্রিয় করার আগে ঘটনাক্রমে অন্য থিমটি সক্রিয় করে? কোডটি কাজ করবে না এবং ( theme_switched, current_theme) সম্পর্কটি শুরু করার সাথে অপ্রাসঙ্গিক।
ওয়েবটাউর

1
@ মারজানভেনেমা যদি আপনি ওয়েব টুয়ারকে অনুদান দান করেন তবে আমি খুব খুশি হব
গাজাজ্যাপ

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

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