رفتن به مطلب

زمینه دلخواه داینامیک


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

سلام دوستان

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

مثلا من یک جعبه دانلود میخوام درست کنم ولی مشکلم اینه فقط موقعی میخوام نمایش داده بشه که محتوا داشته باشه . منظورم اینکه من پست های خبری و تحلیلی هم دارم که نمیخوام زیر اون ها این جعبه دانلود باشه و فقط وقتی نمایش داده بشه که متغییر هایی مثل لینک و حجم فایل رو قرار داده باشم .

امیدوارم منظورمو فهمیده باشید .

لینک به ارسال

چند وقت پیش همین مشکل برام پیش اومده بود

<?php
if(get_post_meta($post->ID,"mp3_128_1",true))
echo '<p class="music" ><a href="'.get_post_meta($post->ID,"mp3_128_1",true).'">دانلود نسخه با کیفیت 128 </a> </p>'
?>

قسمت های متلف رو خودت عوض کن ولی توضیح کلی که می تونم بگم اینه که اگر mp3_128_1 رو مقدار دهی کردیم کل تابع رو نشون بده

لینک به ارسال

سلام دوستان

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

مثلا من یک جعبه دانلود میخوام درست کنم ولی مشکلم اینه فقط موقعی میخوام نمایش داده بشه که محتوا داشته باشه . منظورم اینکه من پست های خبری و تحلیلی هم دارم که نمیخوام زیر اون ها این جعبه دانلود باشه و فقط وقتی نمایش داده بشه که متغییر هایی مثل لینک و حجم فایل رو قرار داده باشم .

امیدوارم منظورمو فهمیده باشید .

من که از افزونه Advanced Custom Fields برای زمینه های دلخواه استفاده می کنم (تا حالا از زمینه های دلخواه خود وردپرس استفاده نکردم) کدم به این صورته:


<?php if( get_field('dl_name')):?>
<div class="custom-download-box">
<ul class="metabox">
<li class="dl">
<p><strong><a href="<?php echo get_field('dl_link');?>"><?php echo get_field('dl_name');?></a></strong></p>
</li>
<li class="size">
<p><strong><?php echo get_field('dl_size');?></strong></p>
</li>
<li class="dl">
<p><strong><a href="<?php echo get_field('dl_link2');?>"><?php echo get_field('dl_name2');?></a></strong></p>
</li>
<li class="size">
<p><strong><?php echo get_field('dl_size2');?></strong></p>
</li>
<li class="pass">
<p>رمز: <strong><?php echo get_field('dl_pass');?></strong></p>
</li>
</li>
</ul>
</div>
<?php endif;?>

یعنی اگه زمینه dl_name خالی بود جعبه دانلود نمایش داده نشه.

برای زمینه های دلخواه وردپرس فکر کنم باید به جای


get_field('your_field')

کدهای خودتون رو بزارید.

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

من که از افزونه Advanced Custom Fields برای زمینه های دلخواه استفاده می کنم (تا حالا از زمینه های دلخواه خود وردپرس استفاده نکردم) کدم به این صورته:


<?php if( get_field('dl_name')):?>
<div class="custom-download-box">
<ul class="metabox">
<li class="dl">
<p><strong><a href="<?php echo get_field('dl_link');?>"><?php echo get_field('dl_name');?></a></strong></p>
</li>
<li class="size">
<p><strong><?php echo get_field('dl_size');?></strong></p>
</li>
<li class="dl">
<p><strong><a href="<?php echo get_field('dl_link2');?>"><?php echo get_field('dl_name2');?></a></strong></p>
</li>
<li class="size">
<p><strong><?php echo get_field('dl_size2');?></strong></p>
</li>
<li class="pass">
<p>رمز: <strong><?php echo get_field('dl_pass');?></strong></p>
</li>
</li>
</ul>
</div>
<?php endif;?>

یعنی اگه زمینه dl_name خالی بود جعبه دانلود نمایش داده نشه.

برای زمینه های دلخواه وردپرس فکر کنم باید به جای


get_field('your_field')

کدهای خودتون رو بزارید.

الان من هر کاری کردم نتونستم بفهمم چطوری باید ازش استفاده کنم پلاگین ACF رو هم نصب کردم ولی باز هم نشد اگه بشه بدون پلاگین بشه عالی میشه :D

کدی که دوستمون ashki0076 دادن به خوبی کار میکنه فقط مشکل اینجاست که محدوده اگه بشه یه کدی نوشت که حالت حلقه ایی و شرطی داشته باشه فکر کنم جواب بده مثلا باکسی که طراحی کردم رو داخل حلقه قرار بدم و با if شرط گذاری بشه حیف که PHP زیاد وارد نیستم اگه دوستان برنامه نویس این حلقه رو بتونن بنویسن ممنون میشم :wub:

لینک به ارسال

درود.

منظورتون از حلقه ای چی هست ؟

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

لینک به ارسال

درود.

منظورتون از حلقه ای چی هست ؟

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

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

الان کدی که Ghaem دادن به همین شکله ولی برای افزونه ACF هستش و من نمیخوام از افزونه واسه یه همچین کار کوچیکی استفاده کنم .

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

لینک به ارسال

ببنید با کدی که در پست دوم داده شده یکی هست و پست جناب قائم حلقه نیست ابتدا چک شده در صورتی که زمینه دلخواه با dl_name وجود داشت کلا div مورد نظر یا دستورات دیگر انجام شود در صورتی که نبود کلا هیچ کدام انجام نمی شود و در اینجا یک شرط کلی هست اگر زمینه دلخواه dl_name وجود داشت انجام شود در نظر بگیرید اگر زمینه های دلخواه دیگری وجود داشته باشد و dl_name وجود نداشته باشد در این کد کلا نمایش داده نمی شود.

شما برای کار مد نظر خود فکر می کنم نیازی به حلقه ندارد .

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


<?php
if(get_post_meta($post->ID,"mp3_128_1",true))
echo '<p class="music" ><a href="'.get_post_meta($post->ID,"mp3_128_1",true).'">دانلود نسخه با کیفیت 128 </a> </p>'
?>

چک کنید و نمایش بدید.

حال باز اگر منظور شما را بنده کامل متوجه نشدم از کاری که قصد انجام دارید پوزش؛بیشتر توضیح دهید.

لینک به ارسال

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

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

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

لینک به ارسال


$custom_field_keys = get_post_custom_keys();
foreach ( $custom_field_keys as $key => $value ) {
$valuet = trim($value);
if ( '_' == $valuet{0} )
continue;
$check = $value;
}
if($check) {
if(get_post_meta($post->ID,"yourcustomfield",true))
echo '<p class="music" ><a href="'.get_post_meta($post->ID,"mp3_128_1",true).'">دانلود نسخه با کیفیت 128 </a> </p>'
}

بعد از


if($check) {

چک می شود در صورتی که در پست جاری زمینه دلخواهی وجود داشت نمایش نمایش داده شود دستورات حالا شما می توانید این شرط را قبل از div باکس دانلود قرار بدید در صورتی که حداقل 1 زمینه موجود بود باکس نمایش داده شود.

سپس در بدنه شرط هم زمینه دلخواه را نمایش بدید مانند نمونه.

لینک به ارسال


$custom_field_keys = get_post_custom_keys();
foreach ( $custom_field_keys as $key => $value ) {
$valuet = trim($value);
if ( '_' == $valuet{0} )
continue;
$check = $value;
}
if($check) {
if(get_post_meta($post->ID,"yourcustomfield",true))
echo '<p class="music" ><a href="'.get_post_meta($post->ID,"mp3_128_1",true).'">دانلود نسخه با کیفیت 128 </a> </p>'
}

بعد از


if($check) {

چک می شود در صورتی که در پست جاری زمینه دلخواهی وجود داشت نمایش نمایش داده شود دستورات حالا شما می توانید این شرط را قبل از div باکس دانلود قرار بدید در صورتی که حداقل 1 زمینه موجود بود باکس نمایش داده شود.

سپس در بدنه شرط هم زمینه دلخواه را نمایش بدید مانند نمونه.

ممنون :)

اینو بعد از تغییرات داخل فایل فانکشن قرار بدم ؟؟ چون داخل Single که قرار دادم مشکل داشت و کد ها قرو قاطی میشد .

لینک به ارسال

خیر داخل همان singel قرار بدید در داخل حلقه پست

کد های چی مشکل دارند ؟ شما در بدنه شرط موارد مورد نیاز خودتون را قرار بدید اون یک مورد به عنوان مثال بود.

لینک به ارسال

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

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

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

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

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

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

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

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

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