رفتن به مطلب

رنگبندی خاص برای دسته های خاص


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

سلام دوستان ...

توی انجمن گشتم ولی چنین تاپیکی ندیدم. میخواستم کاری کنم شبیه سایت ماندگاروب. یعنی برای هر دسته، رنگبندی خاصی برای صفحه اون دسته بندی داشته باشم.

مثلا صفحه دسته بندی سئو یه رنگی داشته باشه و صفحه دسته بندی امنیت یه رنگ دیگه و ...

خودم حسم براینه که میشه از کد زیر کمک گرفت برای اینکار !

این کد مربوط به یکی از دسته های سایت هستش.


<body class="rtl archive category category-1">

درسته ؟

اگر درسته چه جوری باید به این کد کلاس بدم ؟

تشکر

لینک به ارسال

سلام مهدی جان

شما به طور کلی دو راه داری

راه اول:

برای هر دسته یه فایل قالب بسازی. مثلا برای دسته شماره 1 اسم فایل میشه Category-1.php. و هر فایل رو استایل جداگونه بدی.

راه دوم:

از archive.php استفاده کنی و داخلش شرط بزاری. به عنوان مثال:


<?php if(is_category('1') ) { "<div id='cat1'></div>" } ?>

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

لینک به ارسال

سلام مهدی جان

شما به طور کلی دو راه داری

راه اول:

برای هر دسته یه فایل قالب بسازی. مثلا برای دسته شماره 1 اسم فایل میشه Category-1.php. و هر فایل رو استایل جداگونه بدی.

راه دوم:

از archive.php استفاده کنی و داخلش شرط بزاری. به عنوان مثال:


<?php if(is_category('1') ) { "<div id='cat1'></div>" } ?>

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

سلام مرتضی جان ...

ممنون از پاسخت. راه دوم خوبه، ولی ماندگاروب فکر کنم از کدی که گذاشتم استفاده کرده، درسته ؟ یعنی از کلاس تگ body استفاده کرده، درسته ؟

لینک به ارسال
سلام مرتضی جان ... ممنون از پاسخت. راه دوم خوبه، ولی ماندگاروب فکر کنم از کدی که گذاشتم استفاده کرده، درسته ؟ یعنی از کلاس تگ body استفاده کرده، درسته ؟

سلام ، خب میتونید کلاس ها رو از طریق پی اچ پی به صورت شرطی اضافه کنید

<body class="<?php if(is_category('1') ) { echo 'cat'; } elseif (is_category('2') { echo 'anothercat'; } else { echo 'othercats'; }  ?>">

لینک به ارسال

الان فرض مثال من میخوام صفحه اصلی سایت رو بعضی از قسمتهاشو ، متنهای بعضی کلاسها رو رنگ سبز مثلا بزنم و بکگراند بعضی از کلاس ها رو هم رنگ سبز بزنم، با استفاده از کد شرطی علی اقا به چه ترتیب میشه ؟!

با شرطی کردن به این صورت میشه که : مثلا وقتی صفحه اصلی هستیم یک کلاس مخصوص بادی به نام فرضی home-blog در صفحه اصلی داشته باشیم، و در دسته بندی با ایدی 12 مثلا کلاسی به نام cat-12 به بادی بدیم ... حالا من میخوام یکسری قسمتهای که از قبل مشخص شده و قراره فقط رنگهاش در صفحه های مختلف عوض بشه چطوری باید کلاس بدم ؟

لینک به ارسال

ابتدای حلقه single.php اضافه کنید


<?php
if(in_category(5)) {
$my_custom_class = 'my-custom-class';
}
else {
$my_custom_class = '';
}
?>

و در کلاس اولین div اکوش کنید:


<div class="post <?php echo $my_custom_class;?>">

فرض شده آی دی دسته بندیتون 5 باشه

و به my-custom-class در css استایل بدید

لینک به ارسال

خوب دوست عزیز این که مربوط میشه فقط به ادامه مطلب اون دسته بندی ! درسته ؟ میخوام جوری باشه که توی ارشیو هم از اون کلاس استفاده کنم !

لینک به ارسال

به دسته مورد نظر نامک دخواه رو بدید و در پوشه های قالب یک آرشیو با کلاس های دلخواه بسازید و نام آن را category-slug بگذارید.

slug همان نامک شما باید باشد.

آرشیو دسته مورد نظر از این قالب پیروی میکند و نه از archive.php.

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

به دسته مورد نظر نامک دخواه رو بدید و در پوشه های قالب یک آرشیو با کلاس های دلخواه بسازید و نام آن را category-slug بگذارید.

slug همان نامک شما باید باشد.

آرشیو دسته مورد نظر از این قالب پیروی میکند و نه از archive.php.

خب اینی که شما عرض کردید میشه همون راه دوم اقا مرتضی ! درسته ؟ یعنی برای هر دسته بندی یک فایل ؟!

ببینید کار خیلی ساده ای هستش به نظرم، ولی توضیح دادنش سخته :)

لینک به ارسال
الان فرض مثال من میخوام صفحه اصلی سایت رو بعضی از قسمتهاشو ، متنهای بعضی کلاسها رو رنگ سبز مثلا بزنم و بکگراند بعضی از کلاس ها رو هم رنگ سبز بزنم، با استفاده از کد شرطی علی اقا به چه ترتیب میشه ؟! با شرطی کردن به این صورت میشه که : مثلا وقتی صفحه اصلی هستیم یک کلاس مخصوص بادی به نام فرضی home-blog در صفحه اصلی داشته باشیم، و در دسته بندی با ایدی 12 مثلا کلاسی به نام cat-12 به بادی بدیم ... حالا من میخوام یکسری قسمتهای که از قبل مشخص شده و قراره فقط رنگهاش در صفحه های مختلف عوض بشه چطوری باید کلاس بدم ؟

به اون قسمت ها هم به صورت شرطی کلاس بدید ، ببینید راهش همینه ، یا شما باید پرونده براش بسازین یا اینکه به صورت شرطی کلاس ها رو بدید یا به صورت شرطی کلّ صفحه رو دوباره تعریف کنید! حالا یکی از این 3 راه رو میتونید انتخاب کنید.

لینک به ارسال

اینکه واس هر دسته بندی یه قالب بسازی که خیلی دردسر داره و ... راه اصولی و منطقیش همینیه که علی گفت که استفاده از توابع خود وردپرس هست :

برای دسته بندی :


is_category

برای کلاس های خودت مثلا :


<div class="categpry-1">
</div>

<div class="categpry-2">
</div>

<div class="categpry-3">
</div>

<div class="categpry-n">
</div>

کلاسهارو هم با خود توابع میتونی بزاری :


the_category_ID();

حالا واس هر دسته بندی یه کلاس جدا داری که میتونی تو css به هر کدوم استایل بدی که خود css رو هم دوباره میتونی با توابع بدی که کارت راحت تر باشه

لینک به ارسال
  • 2 هفته بعد...

سلام ...

من با کمک یکی از دوسنان خوبم به شکل زیر تونستم رنگبندی خاص خودم رو روی دسته بندیهای مختلف پیاده کنم.

با توجه به کد :


<body <?php body_class(); ?>>

با توجه به این کد که در همه قالبهای استاندارد هم هستش من به دسته های مختلف، رنگهای مختلف دادم، حالا یه مشکلی پیش اومده اونم اینه که دیگه ادامه مطلبهای اون دسته ها از اون رنگهای دسته هاشون استفاده نمیکنن !!!! فقط زمانی که توی صفحه مربوط به اون دسته بندی میرم اون تغییرات رو میبینم، میشه شما توضیح بدید ؟

اون دوستمون بنده خدا دیر به دیر به نت سر میزنه و به همین خاطر مزاحم شما دوستان شدم.

مرسی

لینک به ارسال

همونطور که گفتید شما میتونید از همون کدی که گفتید آی دی دسته مورد نظرتون رو پیدا کنید و با کمک کلاس اون دسته رنگ بندی اختصاصی برای صفحه مربوط به دسته هات ایجاد کنی

اما اگر بخوای برای صفحات داخلیت رنگ بندی اختصاصی داشته باشی باید برای نوشته هات ساختار های متفاوت تعریف کنی. هنگام ارسال مطلب میتونی بگی از کدوم ساختار استفاده کنه.

در اینصورت به بادی مطلبت یک کلاس اضافه میشه برای اون ساختاری که تعریف کردی.

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

نمونه استایلت اینجوری در کلاس body به عنوان مثال اینجوری نمایش داده میشه :


<body class="rtl single single-post postid-64 single-format-standard logged-in admin-bar no-customize-support gecko">

یا


<body class="rtl single single-post postid-64 single-format-news logged-in admin-bar no-customize-support gecko">

که در این صورت علاوه بر استایل دلخواه (برای مثال بالایی کلاس single-format-news) ساختار متفاوتی برای صفحه های اختصاصی ایجاد کنی.

لینک به ارسال

همونطور که گفتید شما میتونید از همون کدی که گفتید آی دی دسته مورد نظرتون رو پیدا کنید و با کمک کلاس اون دسته رنگ بندی اختصاصی برای صفحه مربوط به دسته هات ایجاد کنی

اما اگر بخوای برای صفحات داخلیت رنگ بندی اختصاصی داشته باشی باید برای نوشته هات ساختار های متفاوت تعریف کنی. هنگام ارسال مطلب میتونی بگی از کدوم ساختار استفاده کنه.

در اینصورت به بادی مطلبت یک کلاس اضافه میشه برای اون ساختاری که تعریف کردی.

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

نمونه استایلت اینجوری در کلاس body به عنوان مثال اینجوری نمایش داده میشه :


<body class="rtl single single-post postid-64 single-format-standard logged-in admin-bar no-customize-support gecko">

یا


<body class="rtl single single-post postid-64 single-format-news logged-in admin-bar no-customize-support gecko">

که در این صورت علاوه بر استایل دلخواه (برای مثال بالایی کلاس single-format-news) ساختار متفاوتی برای صفحه های اختصاصی ایجاد کنی.

سلام دوست عزیز ... ممنون از پاسخت.

من الان سه تا دسته بندی دارم به نام های 1-فیلم و 2-سریال و 3-موزیک، با استفاده از همون کدی که گفتم و کلاس بندی، برای هر دسته، یک رنگ بکگراند انتخاب کردم، مثلا دسته موزیک رنگ بکگراندش رو کردمش سبز و .... و فیلم رو ابی و سریال رو هم زرد کردم.

حالا میخوام همین شرایط توی ادامه مطلبهامم صدق کنه، یعنی اگر کاربر رفت توی یک پست موزیک، باز بکگراند همون رنگ سبز باشه یا اگر رفت توی یک پست سریال بکگراند همون رنگ زرد باشه ... مشکلم اینه ... ممنون میشم پاسخ بدید.

لینک به ارسال

بله. همونطور که گفتم از ساختار استفاده کن. به همون شکل که به بک گراند دسته هات با کمک کلاس دسته ای که در بادی ایجاد میشه استایل دادی به همون شکل میتونی به پست هات کلاس بدی.

اگه ساختار تعریف کنید مثلا برای هر کدام از دسته هات (فیلم،سریال،موزیک) یک کلاس به بادیت اضافه میشه که دادن استایل با توجه به اون حداقل کاری است که میشه انجام داد.

مثال :

Untitled_1.jpg

که شما میتونی خیلی راحت نوع پستت رو انتخاب کنی .

سرچ بکن این امکان رو اضافه کن متوجه میشی.

لینک به ارسال

بله. همونطور که گفتم از ساختار استفاده کن. به همون شکل که به بک گراند دسته هات با کمک کلاس دسته ای که در بادی ایجاد میشه استایل دادی به همون شکل میتونی به پست هات کلاس بدی.

اگه ساختار تعریف کنید مثلا برای هر کدام از دسته هات (فیلم،سریال،موزیک) یک کلاس به بادیت اضافه میشه که دادن استایل با توجه به اون حداقل کاری است که میشه انجام داد.

مثال :

Untitled_1.jpg

که شما میتونی خیلی راحت نوع پستت رو انتخاب کنی .

سرچ بکن این امکان رو اضافه کن متوجه میشی.

خب این موضوع ساختار به نظرم برای پستهای قبلی مشکل ساز میشه ! درسته ؟ یعنی اونا دیگه از خاصیت جدید پیروی نمیکنن، درسته ؟

لینک به ارسال
خب این موضوع ساختار به نظرم برای پستهای قبلی مشکل ساز میشه ! درسته ؟ یعنی اونا دیگه از خاصیت جدید پیروی نمیکنن، درسته ؟

بله . باید اونها رو ویرایش کنی تا درست بشه. که اگه پست هات زیاد باشه مشکله

لینک به ارسال

بله . باید اونها رو ویرایش کنی تا درست بشه. که اگه پست هات زیاد باشه مشکله

یعنی دیگه هیچ راهی وجود نداره غیر از ساختار ؟!

لینک به ارسال
دوستان خواهشا راهنمایی کنن، راه دیگه ای وجود نداره ؟

دوست عزیز!!!

الآن 4 روش برای انجام اینکار بهتون پیشنهاد شده!

مشکل چیه؟

اگر تغییرات جزئی هست و مشکل پست های قبلیتون هم مطرح هست میتونین از دستورات شرطی برچسب یا دسته بندی استفاده کنید.

اگر تغییرات کلّی و مشکل پست های قبلیتون هم مطرح هست میتونین از پرونده جدید برای دسته بندی استفاده کنید

اگر میخواین از این به بعد اینکار خاص رو انجام بدید میتونین از ساختار استفاده کنید

اگر میخواین یه چیز درجه یک و کامل داشته باشین و برای از این به بعد استفاده اش کنید استفاده از post_type مطرحه!

لینک به ارسال

دوست عزیز!!!

الآن 4 روش برای انجام اینکار بهتون پیشنهاد شده!

مشکل چیه؟

اگر تغییرات جزئی هست و مشکل پست های قبلیتون هم مطرح هست میتونین از دستورات شرطی برچسب یا دسته بندی استفاده کنید.

اگر تغییرات کلّی و مشکل پست های قبلیتون هم مطرح هست میتونین از پرونده جدید برای دسته بندی استفاده کنید

اگر میخواین از این به بعد اینکار خاص رو انجام بدید میتونین از ساختار استفاده کنید

اگر میخواین یه چیز درجه یک و کامل داشته باشین و برای از این به بعد استفاده اش کنید استفاده از post_type مطرحه!

من میخوام بدونم یعنی از همون روشی که گفتم نمیشه به ادامه مطلبهای هر دسته خاص هم استایل داد ؟

لینک به ارسال

الان علی اقا من میخوام از همون دستور شرطی استفاده کنم، اومدم اینجوری زدم :


<body class="<?php if(is_blog) { echo 'home-blog'; } elseif (is_category('1') { echo 'anothercat'; } else { echo 'othercats'; } ?>">

منتهی دیگه سایت بالا نمیادش و ارور میگیره از همین لاین !! اومدم تو این شرط گفتم که اگر صفحه اصلی بود با این home-blog کلاس و اگه توی دسته بندی 1 بود با کلاس anothercat و ...

یعنی الان کدم اشتباه ؟

لینک به ارسال


<body class="<?php if( is_home() || is_front_page()) { echo 'home-blog'; } elseif (is_category('1')) { echo 'anothercat'; } else { echo 'othercats'; } ?>">

اشتباه از اونجا بود که شرط رو اشتباه اعمال کرده بودین

وقتی دستور شرطی

is_category()

هست شما پرانتز های خود if() هم باید در نظر بگیرید...

لینک به ارسال


<body class="<?php if( is_home() || is_front_page()) { echo 'home-blog'; } elseif (is_category('1')) { echo 'anothercat'; } else { echo 'othercats'; } ?>">

اشتباه از اونجا بود که شرط رو اشتباه اعمال کرده بودین

وقتی دستور شرطی

is_category()

هست شما پرانتز های خود if() هم باید در نظر بگیرید...

ممنون علی اقا ...

ایا این شرط گذاری برای ادامه مطلبها هم استفاده میشه ؟

لینک به ارسال
ممنون علی اقا ... ایا این شرط گذاری برای ادامه مطلبها هم استفاده میشه ؟

بله ، با شرط is_single همینطور برای خیلی چیزای دیگه...

https://codex.wordpress.org/Conditional_Tags

لینک به ارسال

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

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

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

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

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

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

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

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

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