رفتن به مطلب

کد php برای انتخاب کلاس مناسب در options framework


itachi

پست های پیشنهاد شده

الان دارم روی پوسته SKT-Corp کار می‌کنم که از options framework استفاده می‌کند. در خط ۳۵ فایل فایل header.php یک دستور شرطی وجود دارد که بصورت دینامیک نوع کلاس
 

کد:
<div class="wrapper_main ****">

 

را مشخص می‌کند. این المان دو کلاس دارد. یک کلاس ثابت که همان wrapper_main است و دیگری که دو حالت layout_wide یا layout_box خواهد بود. دستور شرطی زیر مشخص می‌کند که کدام کلاس به تگ بالا داده شود.
 

کد:
<div class="wrapper_main <?php if ( of_get_option('layout', true) != 'box' ) { echo 'layout_wide'; } else { echo 'layout_box';}?>" >

 

در نسخه‌ای که بنده روی آن کار می‌کنم بصورت پیشفرض کلاس layout_box به تگ div در بالا داده می‌شود در صورتی که در نسخه نمایشی آنلاین کلاس layout_wide به آن داده شده است. آدرس نسخه آنلاین پوسته http://sktthemesdemo.net/sktcorppro می‌باشد. بسیار سپاسگذار خواهم بود که بنده را راهنمایی دقیق بفرمایید کجا را ویرایش کنم تا کلاس layout_wide به تگ مذکور داده شود.

فایل header به پیوست است.

header.php

لینک به ارسال

سلام

منظورتون اینه که توی لوکال به درستی کار میکنه و وقتی آنلاین میشه قالب، مشکل بوجود میاد ؟

لینک به ارسال

خیر. برعکس در نسخه آنلاین که نسخه دمو می‌باشد کاملا درست هست اما در نسخه لوکال که بنده فارسی کرده‌ام به درستی کار نمی‌کند و کلاس نادرستی به تگ <div> داده می‌شود.

حالت درست

<div class="wrapper-main layout_wide">

حالت نادرست

<div class="wrapper-main layout_box">

مشکل اینجاست که بنده حتی نمی‌دانم تنظیمات layout کجا هست که آن کد php بر اساس آن تصمیم گیری می‌کند. در فایل options.php قسمتی با عنوان layout setting وجود دارد ولی بررسی کردم و نتیجه نگرفتم. فکر نمی‌کنم ربطی به مشکل من داشته باشد. فایل options.php به پیوست می‌باشد.

options.php

لینک به ارسال
در 13 ساعت قبل، itachi گفته است :

الان دارم روی پوسته SKT-Corp کار می‌کنم که از options framework استفاده می‌کند. در خط ۳۵ فایل فایل header.php یک دستور شرطی وجود دارد که بصورت دینامیک نوع کلاس
 

کد:

<div class="wrapper_main ****">

 

را مشخص می‌کند. این المان دو کلاس دارد. یک کلاس ثابت که همان wrapper_main است و دیگری که دو حالت layout_wide یا layout_box خواهد بود. دستور شرطی زیر مشخص می‌کند که کدام کلاس به تگ بالا داده شود.
 

کد:

<div class="wrapper_main <?php if ( of_get_option('layout', true) != 'box' ) { echo 'layout_wide'; } else { echo 'layout_box';}?>" >

 

در نسخه‌ای که بنده روی آن کار می‌کنم بصورت پیشفرض کلاس layout_box به تگ div در بالا داده می‌شود در صورتی که در نسخه نمایشی آنلاین کلاس layout_wide به آن داده شده است. آدرس نسخه آنلاین پوسته http://sktthemesdemo.net/sktcorppro می‌باشد. بسیار سپاسگذار خواهم بود که بنده را راهنمایی دقیق بفرمایید کجا را ویرایش کنم تا کلاس layout_wide به تگ مذکور داده شود.

فایل header به پیوست است.

header.php

این کدتون بر اساس مقدار گزینه layout در پنل تنظیمات قالب کلاس رو می سازه وارد ادمین بشید و تغییرش بدید 

لینک به ارسال

تصاویر تنظیمات قالب و theme options به پیوست است. در هیچ کجای آن گزینه layout وجود ندارد. اگر ممکن است اسکرین شات با علامت روی محل مورد نظر پیوست پاسخ فرمایید. سپاس فراوان

Wordpress theme customizer.png

Wordpress theme options.png

لینک به ارسال

من نمی دونم گزینه اش کجاست فقط کد پی اچ پی ای رو که گذاشته بودید براتون ترجمه کردم 

<?php if ( of_get_option('layout', true) != 'box' ) { echo 'layout_wide'; } else { echo 'layout_box';}?>

این کد شرط کرده اگر option با نام layout فعال بود و مقدار box نبود کلاس layout_wide استفاده بشه و الا کلاس layout_box

نشانی سایتتون رو جایگزین site.com تو نشانی زیر بکنید و توی آدرسبارتون کپی کنید بعد از باز شدن صفحه کنترل + f رو بزنید و تو کادر جستجویی که باز می شه تایپ کنید layout تا گزینه رو تو صفحه براتون پیدا کنه بعد مقدارش رو تغییر بدید و ذخیره کنید

http://site.com/wp-admin/options.php

 

لینک به ارسال

جواب رو پیدا کردم. با نگاه به سایت سازنده پوسته در اینجا متوجه شدم که نسخه رایگان آن layout setting ندارد. به ناچار یک Child theme ساختم و کل محتویات فایل header.php پوسته parent را در فایلی به همین نام در پوشه قالب فرزند کپی کردم و در آن کد تولید کننده کلاس را طوری تغییر دادم که خروجی layout_wide را به من بدهد.

ویرایش شده توسط itachi
لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...