رفتن به مطلب

شرط تو در تو برای زمینه دلخواه


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

با سلام و خسته نباشید.

دنبال تابع شرطی php می گردم که اینطور باشه

مثلا:

"اگه پست فلان دسته بود، اگه زمینه دلخواه درج شده بود، زمینه دلخواه رو نشون بده"

این کد index قالبم.


<?php get_header(); ?>

<div id="left">
<?php if (of_get_option('w2f_home')== "1") { ?>

<?php
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$wp_query->query('post_type=tutorial&paged='.$paged);
?>
<?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
<div class="tuts" id="post-<?php the_ID(); ?>">
<div class="title">
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="پيوند پايدار به <?php the_title(); ?>"><?php the_title(); ?></a></h2>
<div class="postmeta">
<span class="user">فرستاده شده از <?php the_author_posts_link(); ?></span>
<span class="clock"><?php the_time('l, n F Y'); ?></span>
<span class="tags"><?php echo get_the_term_list( $post->ID, 'topic', '', ', ', '' ); ?> </span>
</div>
</div>

<div class="entry">

<div class="tutinfo clearfix">
<ul class="tutmeta">
<?php $infopro= get_post_meta( get_the_ID(), 'WTF_program', true ); ?>
<?php if($infopro !== '') { ?>
<li> <b>برنامه :</b> <?php echo $infopro; ?> </li>
<?php } ?>
<?php $infotime= get_post_meta( get_the_ID(), 'WTF_time', true ); ?>
<?php if($infopro !== '') { ?>
<li> <b>مدت زمان :</b> <?php echo $infotime; ?> </li>
<?php } ?>
<?php $infodiff= get_post_meta( get_the_ID(), 'WTF_difficulty', true ); ?>
<?php if($infodiff !== '') { ?>
<li> <b>سختي :</b> <?php echo $infodiff; ?> </li>
<?php } ?>
</ul>
</div>


<?php the_post_thumbnail( 'tuts_index', array('class' => 'postimg') ); ?>
<?php the_excerpt(); ?>
<a class="readmore" href="<?php the_permalink() ?>"> View Tutorial </a>
<div class="clear"></div>
</div>
</div>
<?php endwhile; ?>
<?php getpagenavi(); ?>

<?php $wp_query = null; $wp_query = $temp;?>
<?php } else { ?>

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>

<div class="post" id="post-<?php the_ID(); ?>">
<div class="title">
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="پيوند پايدار به <?php the_title(); ?>"><?php the_title(); ?></a></h2>
<div class="postmeta">
<span class="user">ارسال شده توسط: <?php the_author_posts_link(); ?></span>
<span class="clock"><?php the_time('l, n F Y'); ?></span>
<span class="tags"><?php the_category(', '); ?></span>
</div>
</div>

<div class="entry">
<?php the_post_thumbnail( 'tuts_index', array('class' => 'postimg') ); ?>
<?php the_excerpt(); ?>








<?php $mid_var = get_post_meta($post->ID, 'index',true);
if(isset($mid_var) && !empty($mid_var)) : ?>
<div class="readmore">
<a href="<?php echo get_post_meta($post->ID, 'index',true); ?>">
تصوير صفحه اصلي
</a>
</div>
<?php else : ?>
<div class="readmore">تصوير صفحه اصلي:<span><strike> ندارد</strike></span></div>
<?php endif; ?>

<?php $mid_var = get_post_meta($post->ID, 'demo',true);
if(isset($mid_var) && !empty($mid_var)) : ?>
<div class="readmore">
<a href="<?php echo get_post_meta($post->ID, 'demo',true); ?>">
پيش نمايش قالب
</a>
</div>
<?php else : ?>
<div class="readmore">پيش نمايش:<span><strike> ندارد</strike></span></div>
<?php endif; ?>












<br><br><br><br>
<a class="readmore" href="<?php the_permalink() ?>">ادامه مطلب </a>




<div class="clear"></div>

</div>
</div>

<?php endwhile; ?>
<div class="clear"></div>
<?php getpagenavi(); ?>
<?php else : ?>
<h1 class="title">يافت نشد !</h1>
<p>متاسفيم اما چيزي که به دنبالش بوديد هنوز در اينجا وجود ندارد .</p>
<?php endif; ?>

<?php } ?>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

اولا آیا دستورات شرطی که گذاشتم درسته؟

ثانیا: دنبال راهی هستم که بنویسم اگه پست های ارسال شده جزء دسته های مثلا 1 و 2 بود این زمینه های دلخواه رو نشون بده اگه نه اصلا هیچی نشون نده.

با تابع in_category و is_category هر کاری کردم نتونستم درستش کنم.

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

این شرط رو دور همه ی شرط ها گذاشتم ارور داد:


<?php $post = $wp_query- >post;
if ( in_category('1') ) :

کدها رو اینجا گذاشتم
}
?>

بازم ممنون از همه دوستان

لینک به ارسال

انتظار نداشته باشید که کدهاتون رو بخونیم و چک کنیم کد را جا بگذارید اگر ایراد داشت ارور می ده متن ارور را بیاورید تا رفع ایراد بشه

برای دسته به کوئریتون cat=5 (5 آی دی دسته است) اضافه کنید و برای زمینه دلخواه


<?php if ( get_post_meta($post->ID, 'نام زمینه ', true) ) : ?>
کد احضار زمینه
<?php endif;?>

دسته بندی را هم به اینصورت


<?php
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$wp_query->query('post_type=tutorial&cat=1&paged='.$paged);
?>

البته به این شرط احتیاجی ندارید ولی درستش اینجوریه


<?php $post = $wp_query- >post;
if ( in_category('1') ) :?>
کدها رو اینجا گذاشتم
<?php endif;?>

لینک به ارسال

با سلام و تشکر از پاسختون

سؤالم رو اینطور می گم:

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


<?php $mid_var = get_post_meta($post->ID, 'demo',true);
if(isset($mid_var) && !empty($mid_var)) : ?>
<div class="readmore">
<a href="<?php echo get_post_meta($post->ID, 'demo',true); ?>">
پيش نمايش قالب
</a>
</div>
<?php else : ?>
<div class="readmore">پيش نمايش:<span><strike> ندارد</strike></span></div>
<?php endif; ?>

حالا می خوام این زمینه ی دلخواه فقط وقتی نشون داده بشه که مثلا پست مربوطه، جزء دسته های 1 و 2 و 3 باشه. و در بقیه ی دسته ها این زمینه دلخواه نشون داده نشه.

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

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

به بیان دیگه می خوام:

این شرط:


<?php if ( get_post_meta($post->ID, 'نام زمینه ', true) ) : ?>
کد احضار زمینه
<?php endif;?

داخل این شرط باشه:


<?php $post = $wp_query- >post;
if ( in_category('1') ) :?>
کدها رو اینجا گذاشتم
<?php endif;?>

یعنی به این شکل:


<?php $post = $wp_query- >post;
if ( in_category('1') ) :?>
<?php if ( get_post_meta($post->ID, 'نام زمینه ', true) ) : ?>
کد احضار زمینه
<?php endif;?>
<?php endif;?>

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

لینک به ارسال

سلام و خداقوت

مشکل حل شد. اخطار به خاطر خط اول کد بود یعنی


<?php $post = $wp_query- >post;

که نباید بین query- >post فاصله باشه.

درستش این بود:


<?php $post = $wp_query->post;

یعنی if تو if را فکر می کردم مشکل داره که دیدم خیر.

تشکر از همه ی عزیزان

لینک به ارسال
  • 10 ماه بعد...

اگه همچین کدی رو واسه کل دسته های سایت بخوایم, باید از چه کدی استفاده کنیم؟

مثلا: اگه لینک رو بزاریم, کد رو نمایش بده. در غیر این صورت چیزی رو نمایش نده و بتونیم چندین بار با کد های مختلف اون رو نشون بدیم

لینک به ارسال

اگه همچین کدی رو واسه کل دسته های سایت بخوایم, باید از چه کدی استفاده کنیم؟

مثلا: اگه لینک رو بزاریم, کد رو نمایش بده. در غیر این صورت چیزی رو نمایش نده و بتونیم چندین بار با کد های مختلف اون رو نشون بدیم

به صورت شرط ساده در صورت وجودلینک اون رو نمایش میده :


<?php if ($esme-zamine!="") : ?>
<div class="class">
<?php echo $esme-zamine; ?>
</div>
<?php endif ?>

اگر زمینه دلخواه رووارد کرده باشید نمایش داده میشه و اگر خالی باشه نمایش داده نمیشه

لینک به ارسال

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

اگه ممکنه بگید دقیقا هر کد رو کجا بزارم

http://codepen.io/anon/pen/lehDm

لطفا به صورت کامل بگید :wub:

ممنون

لینک به ارسال

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

اگه ممکنه بگید دقیقا هر کد رو کجا بزارم

http://codepen.io/anon/pen/lehDm

لطفا به صورت کامل بگید :wub:

ممنون

کد بالارو که دادم ببینید به دقت :


<?php if ($esme-zamine!="") : ?>

هر کدی که دارید برای نمایش اینجا قرار بدید

<?php endif ?>

در کد بالا به جای esme zamine اسم زمینه دلخواهی که دارید رو بزارید

لینک به ارسال

کد بالارو که دادم ببینید به دقت :


<?php if ($esme-zamine!="") : ?>

هر کدی که دارید برای نمایش اینجا قرار بدید

<?php endif ?>

در کد بالا به جای esme zamine اسم زمینه دلخواهی که دارید رو بزارید

اگه کد رو اینجا بزارم, چطوری اجرا میشه؟

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

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


<?php if ($esme-zamine!="") : ?>
<a href="لینک" class="myButton">Download</a><br />

<?php endif ?>

حالا بجای کلمه لینک, چه کدی بزارم که اجرا بشه؟

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

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

دوست عزیز شما باید به جای esme-zamine که من در کد گذاشتم ، زمینه دلخواهی که ساختید رو بزارید

بعد وقتی پست ارسال میکنید زمینه مورد نظر خودتون رو انتخاب کنید و مقدارش رو لینکی که میخواید رو بزارید و در سایت نمایش داده میشه

لینک به ارسال

دوست عزیز شما باید به جای esme-zamine که من در کد گذاشتم ، زمینه دلخواهی که ساختید رو بزارید

بعد وقتی پست ارسال میکنید زمینه مورد نظر خودتون رو انتخاب کنید و مقدارش رو لینکی که میخواید رو بزارید و در سایت نمایش داده میشه

باز هم متوجه نشدم

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


<a href="لینک" class="myButton">Download</a><br />

وقتی اون رو توی کد میزارم اینجوری میشه


<?php if ($esme-zamine!="") : ?>
<a href="لینک" class="myButton">Download</a><br />
<?php endif ?>

وقتی این کد رو توی سایت میزارم, اجرا نمیشه

دوست عزیز شما باید به جای esme-zamine که من در کد گذاشتم ، زمینه دلخواهی که ساختید رو بزارید

اینجوری میشه:


<?php if (
<a href="لینک" class="myButton">Download</a><br />
!="") : ?>
هر کدی که دارید برای نمایش اینجا قرار بدید
<?php endif ?>

بازم اجرا نمیشه

اصلا دلیلی واسه اجرا شدن این کد نمیبینم!!!

چون توی style باید یه کد باشه که اون رو فراخوانی کنه!

لینک به ارسال

درود.

شما با استایل کاری ندارید

برای اینکه مقدار زمینه دلخواه را در لینک لود کنید طبق گفته کسرا جان :


<?php $zm = get_post_meta($post->ID,'esme-zamine',true);
if ($zm!="") : ?>
<a href="<?php echo $zm; ?>" class="myButton">Download</a><br />
<?php endif; ?>

لینک به ارسال

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

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

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

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

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

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

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

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

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