رفتن به مطلب

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


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

سلام

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


<img title="<?php the_title(); ?>" src="<?php echo $tp; ?>" alt="<?php the_title(); ?>">

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

این هم کوئری مربوطه هست


<?php
$custom_query = new WP_Query(array(
'post_status' =>'publish',
'post_type' =>'post',
'order' =>'descending',
'orderby' =>'ID',
'posts_per_page' =>'4',

'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1
));
?>
<?php if($custom_query->have_posts()) :?>

<div class="slides">
<ul>
<?php while($custom_query->have_posts()) : $custom_query->the_post();?>
<li id="slide-<?php the_ID();?>">
<figure>
<img title="<?php the_title(); ?>" src="<?php echo $tp; ?>" alt="<?php the_title(); ?>">
</figure>
<section>
<h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
<div><a class="buttons dark-blue" href="<?php the_permalink(); ?>" title="توضیحات <?php the_title(); ?>"><i class="icon-external-link"></i></a></div>
</section>
</li>
<?php endwhile;?>
<?php endif;?>
<?php wp_reset_query(); ?>
</ul>
</div>

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

متغییر $tp رو توی این بخش تعریف نکردید؟

بله تعریف کردم. اول فایل index کد زیر را قرار دادم


<?php $tp = get_post_meta($post->ID, 'tp', true); ?>

لینک به ارسال

الان tp که در کد بالا قرار دادید خاصیت زمینه دلخواه (post_meta) رو نداره. حالا فعلاً من نمیدونم چه مقادیری به tp میدید - اگه بگید مسئله حل میشه.

اما فرض کنید در فلان پست برای زمینه tp مقدار image1 رو قرار بدید که نام تصویر شاخص این پست هست که قبلاً در پوشه images آپ شده . پس برای نمایش این تصویر:


<img src="<?php bloginfo(template_directory); ?>/images/<?php echo get_post_meta($post->ID, "tp", true); ?>.jpg" />

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

لینک به ارسال

الان tp که در کد بالا قرار دادید خاصیت زمینه دلخواه (post_meta) رو نداره. حالا فعلاً من نمیدونم چه مقادیری به tp میدید - اگه بگید مسئله حل میشه.

اما فرض کنید در فلان پست برای زمینه tp مقدار image1 رو قرار بدید که نام تصویر شاخص این پست هست که قبلاً در پوشه images آپ شده . پس برای نمایش این تصویر:


<img src="<?php bloginfo(template_directory); ?>/images/<?php echo get_post_meta($post->ID, "tp", true); ?>.jpg" />

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

من یک عکس را داخل وردپرس آپلود می کنم و آدرس کاملش را به tp می دهم.(این عکس برای هر پست متفاوت هست) ولی تصویر آخرین پست موجود در حلقه برای تمام پست ها در نظر گرفته می شه.

لینک به ارسال

نه منظورم انتساب post_meta‌ به tp بود

چون پست متا ها در جدول پست ها نیستند پس باید بهش بفهمونیم که بر مبنای آی دی بره و از جدول post_meta‌ مقدار tp رو بخونه. یا دارم اشتباه می کنم؟

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

نه منظورم انتساب post_meta‌ به tp بود

چون پست متا ها در جدول پست ها نیستند پس باید بهش بفهمونیم که بر مبنای آی دی بره و از جدول post_meta‌ مقدار tp رو بخونه. یا دارم اشتباه می کنم؟

من هنوز متوجه نشدم منظور شما چیست. ولی کد بخش تصویر شاخص را به شکل زیر تغییر دادم و درست شد. میشه یکم واضحتر بفرمایید مشکل از کجا بوده؟


<img title="<?php the_title(); ?>" src="<?php echo get_post_meta($post->ID, "tp", true); ?>" alt="<?php the_title(); ?>">

لینک به ارسال

دقیقاً در پست 6 گفتم که مشکل از کجاست - کوئری شما از جدول پست ها هست درحالی که متا ها دارای جدول جدایی هستند پس باید بر مبنای آی دی پست tp رو از جدول متاها فراخوانی کنیم

لینک به ارسال

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

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

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

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

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

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

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

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

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