شرط گذاشتن برای پست ها

  • نویسنده موضوع mr.mj
  • تاریخ شروع

mr.mj

تازه وارد
سلام

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

با استفاده از افزونه WP Robot

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

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

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

باید چیکار کنم؟

 

farsadf

کاربر عضو
باید با فانکشن has_thumbnail یه تابع شرطی بسازید و همینطور فایل های WP Robot رو ویرایش کنید(تابع شرطی رو باید توی WP Robot و قبل از ایمپورت اطلاعات در دیتابیس قرار بدید)

 

mr.mj

تازه وارد
تشکر

میشه بیشتر توضیح بدید و کدهای لازم رو قرار بدید؟

 

MahdiY

راهبر انجمن
همچنین از تابع strpos استفاده کنید و چک کنید آیا تگ img موجود هست یا نه

 

mr.mj

تازه وارد
تشکر از پاسخ گویی

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

ولی اون باکس هایی که گفتم فقط عنوان خبرها رو میاره

 

farsadf

کاربر عضو
تابع has_post_thumbnail یه تابع پیشفرض توی وردپرس هست که میاد چک میکنه که آیا تصویر شاخص ست شده یا نه.

مثلا :


کد:
<?php
if(has_post_thumbnail) { // do something}
else{ // do other thing}
?>
 

mr.mj

تازه وارد
من خیلی وارد نیستم

این کدهای قسمت اخرین اخیار


کد:
<?php query_posts('post_type=post&paged='.$paged.'&cat='.$vije_id.'');  ?>
<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post();?>
و کد مربوط به عکس اخرین اخبار


کد:
<h2><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a></h2> 

<a href="<?php the_permalink() ?>"><img src="<?php echo catch_that_image(); ?>" alt="" />
این هم کد یکی از باکس ها


کد:
<?php
$my_query = new WP_Query('showposts=10&cat=49,3533');
while ($my_query->have_posts()):
$my_query->the_post();
$do_not_duplicate = $post->ID;?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li></br>
<?php endwhile; ?>
 

farsadf

کاربر عضو
شما میتونید با این کد 5 تا از آخرین پست های عکس دارتون رو لود کنید.


کد:
$thumbs = array(            'posts_per_page' => 5,
            'meta_query' => array(array('key' => '_thumbnail_id')) 
);
$query = new WP_Query($thumbs);
 

mr.mj

تازه وارد
تشکر

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


کد:
 <?php query_posts('post_type=post&paged='.$paged.'&cat='.$vije_id.'');  ?>
<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post();?>
 

farsadf

کاربر عضو
اگه اشتباه نکنم باید &meta_key=_thumbnail_id رو ته اونجا که نوشته query_posts و قبل از کارکتر ' قرار بدید.

 

mr.mj

تازه وارد
یعنی اینجوری؟


کد:
  <?php query_posts('post_type=post&paged='.$paged.'&cat='.$vije_id.''); &meta_key=_thumbnail_id'; ?>
<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post();?>
 

farsadf

کاربر عضو
نه اینجوری


کد:
<?php query_posts('post_type=post&paged='.$paged.'&cat='.$vije_id.''&meta_key=_thumbnail_id); ?>
<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post();?>
 

farsadf

کاربر عضو
ببخشید یه اشتباه لپی بود


کد:
<?php query_posts('post_type=post&paged='.$paged.'&cat='.$vije_id.'&meta_key=_thumbnail_id'); ?>
<?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post();?>
 

mr.mj

تازه وارد
نمیدونم چی شد

بعضی از مطالبم که عکس داشتن وقتی این کد رو گذاشتم از صفحه اصلی رفتن و بعضی مطالب بدون عکس جاشون رو گرفتن

 

mr.mj

تازه وارد
روی لوکال هاسته

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


کد:
function get_image() {
  global $post, $posts;
  $first_img = '';
  ob_start();
  ob_end_clean();
  $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
  $first_img = $matches [1] [0];


  return $first_img;
}
 

farsadf

کاربر عضو
چه طوره که با wp_query امتحان کنیم:


کد:
<?php $query = new WP_Query('cat='.$vije_id.'&meta_key=_thumbnail_id'); ?><?php if(have_posts()) : ?>
<?php while(have_posts()) : the_post();?>
 

mr.mj

تازه وارد
من از همون کد اولی استفاده کردم این کد فقط توی صفحه اول عمل میکنه؟

چون توی صفحه دوم خبر بدون عکس هست

 
بالا