رفتن به مطلب

انتخاب مطلب تصادفی که با شرط get_field


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

سلام

وردپرس :

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

if (get_field('dani'))

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

<?php $args = array( 'numberposts' => 1, 'orderby' => 'rand' );$rand_posts = get_posts( $args );foreach( $rand_posts as $post ) : if (get_field('dani')){?>matalab<?php echo get_field('dani') ?><?php
} endforeach; ?>

لینک به ارسال

یعنی چی که می خواهید اون شرط را داشته باشه یعنی کوئری فقط برای مطالب دارای فیلد dani اجرا بشه یا در نتیجه اگر فیلد dani وجود داشت چاپش کنه

حالت اول باید ببینید نام متا تگی که افزونه می سازه هم dani یا چیزی بهش اضافه می کنه و کوئریتون می شه


<?php $args = array( 'numberposts' => 1, 'orderby' => 'rand', 'meta_key => 'dani' );?>

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

لینک به ارسال

خیلی ممنون ولی هیچ تغییری نکرد


<?php get_header(); ?>
<?php
$args = array( 'numberposts' => 1, 'orderby' => 'rand', 'meta_key' => 'play_link' );
$rand_posts = get_posts( $args );
foreach( $rand_posts as $post ) :
?>
<div class="ranpost" >

<audio preload="false" >
<source src="<?php echo get_field('play_link'); ?>" type="audio/mpeg">
مرورگر شما از پخش صدا پشتیبانی نمی کند.
</audio>
</div>
<?php endforeach; ?>

<?php get_footer(); ?>

برای پخش آنلاین موزیک این کد رو نوشتم

به صورت رندم یه موزیک پخش میشه

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

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

ویرایش شده توسط ایگل دیزاین
لینک به ارسال
حالت اول باید ببینید نام متا تگی که افزونه می سازه هم dani یا چیزی بهش اضافه می کنه
لینک به ارسال

ظاهرا منظورم رو متوجه نشدید

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


get_field['dani] != ''

یعنی مقدارش خالی نباشه

لینک به ارسال

به بدشانسی مربوط نمیشه

من منظور شما را متوجه شدم ولی منتظر نباشید من برم مستندات افزونه تون رو بخونم و ببینم نام فیلدها را چی می گذاره

خودتون باید اینکار را بکنید

اصولش اینه که شما نتونید فیلدی که افزونه می سازه را با کوئری وردپرس بخونید و ممکنه این افزونه هم همینتطور باشه ولی چون ساخت شرکت اتوماتیکه که سازنده وردپرسه ممکنه از توابع استاندارد استفاده کرده باشه که در این صورت در مستنداتش (documents) در موردش باید توضیح داده باشه

اگر هم نشد باید فیلدهاتون رو بدون افزونه بسازید و با کوئری که عرض شد احضارشون کنید

لینک به ارسال

بگردید دنبال تابع


add_post_meta($id, $key, $value);

و ببینید بجای $key چی گذاشته شده

یا در دیتابیستون ببینید در جدول wp_postmeta متاهایی که ساختید با چه نامی ذخیره می شند.

لینک به ارسال

13178141433657220223_2014-10-26_183927.jpg

من این دو کد رو امتحان میکنم


$args = array( 'numberposts' => 1, 'orderby' => 'rand', 'meta_key' => '_play_link' );

و


$args = array( 'numberposts' => 1, 'orderby' => 'rand', 'meta_key' => 'play_link' );

ولی باززم مطالبی که فیلد پخش آنلاینشون خالیه نمایش داده میشن

لینک به ارسال

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

اینکار برام مقدور نیست وارد phpmyadmin بشید و چک کنید در جدول wp_postsmeta و ستون meta_value مقدار play_link چیه اون مقدار را در کوئری بگذارید

لینک به ارسال

خوب من همین کارو میکنم

عکس :

12774141440954414487_2014-10-27_145422.jpg

کد :


<?php get_header(); ?>
<?php
$args = array( 'numberposts' => 1, 'orderby' => 'rand', 'meta_key' => 'field_5447b824fcad5' );
$rand_posts = get_posts( $args );
add_post_meta($id, $key, $value);

foreach( $rand_posts as $post ) :
?>
<div class="ranpost" <?php if(has_post_thumbnail()) {?>style="background: url('<?php echo $eagle_thumbnail_url = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );?>') center center no-repeat " <?php }?>>
<?php if(get_field('play_link')){?>
<audio preload="false" >
<source src="<?php the_field('play_link'); ?>" type="audio/mpeg">
مرورگر شما از پخش صدا پشتیبانی نمی کند.
</audio>
<?php } ?>
</div>
<?php endforeach; ?>

<?php get_footer(); ?>

خروجی : خالی

والا دیگه نمیدونم چیکار کنم

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

یه هفتس سرگردونم

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

با اون هم درست کردم

ولی باز هم مطالبی که فیلد پخش آنلاینشون خالیه نمایش داده میشن


<?php get_header(); ?>
<?php
//$args = array( 'numberposts' => 1, 'orderby' => 'rand', 'meta_key' => 'play_link' );
$rand_music= new WP_Query(array(
'post_type' => 'post',
'post_status' => 'publish',
'cat' => '1',
'order' => 'DESC',
'orderby' => 'rand',
'posts_per_page' =>'1',
'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1
));
$rand_posts = get_posts( $args );
if($rand_music->have_posts()) :
while($rand_music->have_posts()) : $rand_music->the_post();
?>
<div class="ranpost" <?php if(has_post_thumbnail()) {?>style="background: url('<?php echo $eagle_thumbnail_url = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );?>') center center no-repeat " <?php }?>>

<audio preload="false" >
<source src="<?php echo get_post_meta($post->ID, 'play_link', true); ?>" type="audio/mpeg">
مرورگر شما از پخش صدا پشتیبانی نمی کند.
</audio>
</div>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?>
<?php get_footer(); ?>

لینک به ارسال

با کدوم ژنراتور این کد رو ساختید (ژنراتور رو من نوشتم ولی یه ربع طول کشید تا از کدهاتون سر در بیارم!


<?php
get_header();
$args = new WP_Query(array(
'post_type' => 'post',
'post_status' => 'publish',
'cat' => '1',
'meta_query' => array(
array(
'key' => 'play_link',
'value' => '',
'compare' => '!=',
),
),
'orderby' => 'rand',
'posts_per_page' =>'1',
'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1
));
$query = new WP_Query( $args );
if($query ->have_posts()) :
while($query ->have_posts()) : $query ->the_post();
?>
<div class="ranpost" <?php if(has_post_thumbnail()) {?>style="background: url('<?php echo $eagle_thumbnail_url = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );?>') center center no-repeat " <?php }?>>

<audio preload="false" >
<source src="<?php echo get_post_meta($post->ID, 'play_link', true); ?>" type="audio/mpeg">
مرورگر شما از پخش صدا پشتیبانی نمی کند.
</audio>
</div>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query();
get_footer();
?>

نکته: لطف کنید سطح آشناییتون با برنامه نویسی را درست تنظیم کنید تا در موقع پاسخ دادن بدونیم چه توضیحاتی رو احتیاج دارید

لینک به ارسال

با همونی که لینک دادید

(من بیشتر طراحی میکنم تا برنامه نویسی) (با آرایه ها هم کار نکردم زیاد)

خیلی ممنون

ولی این مشکل اصلی حل که نشد هیچ

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

:(

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

شما این کد رو بدون دستکاری قرار دادید و دوتا مطلب برگردوند؟!

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

لطف کنید کل کد رو جایگزین کنید و تابع get_post را با کوئری ترکیب نکنید کد تست شده و درسته

لینک به ارسال

کل کد خروجیش 2 مطلب بود

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

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

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

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

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

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

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

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

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

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