وردپرس فارسی

پست تایپ سفارشی

5 پست در این موضوع قرار دارد

ارسال شده در (ویرایش شده)

با سلام

بنده پست تایپی درست کردم برای بخش موزیک حالا میخوام 2تا چک باکس براش درست کنم ( مثلاً ایرانی و خارجی ) ، که وقتی موقع ارسال پست تیک ایرانی زده شد در یک قسمت جدا نشون بده وقتی هم خارجی زده شد در یک قسمت جدای دیگه !

از کدهای زیر استفاده میکنم برای بخش نمایش پست :

<?php
$args=array('post_type'=>'song','posts_per_page'=>get_option('posts_per_page'),'orderby'=>'modified','order'=>'DESC');
$loop=new WP_Query($args);
if($loop->have_posts()):
while($loop->have_posts()):$loop->the_post();
$song_artist=get_post_meta(get_the_ID(),'song_artist',true);
$song_name=get_post_meta(get_the_ID(),'song_name',true);
$song_cover=get_post_meta(get_the_ID(),'song_cover',true);
if($song_cover=='')$song_cover=get_bloginfo('template_url').'/images/not_available.jpg';
$song_player=get_post_meta(get_the_ID(),'song_player',true);
$song_special=get_post_meta(get_the_ID(),'song_special',true);
?>

باید چه کدی رو اضافه و کم کنم ، که اگر چک باکس مورد نظر تیک خورده بود موضوع رو نشون بده اگر تیک نخورده بود در قسمت مربوطه که میخوام نمایش بده نشان نده.

با تشکر

ویرایش شده در توسط slashflash
0

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


لینک به پست

از تاکسونامی استفاده کنید

http://wp-parsi.com/article/wordpress-taxonomy/

بعد کویری بگیرید

http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters

2

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


لینک به پست

سلام مجدد

بنده تا اینجا پیش رفتم اما گیر کردم !

اول از همه کدهای زیر رو به فانکشن اضافه کردم :



add_action('admin_init','my_video_meta');
add_action('save_post','add_video_fields',10,2);
function my_video_meta(){
add_meta_box('video_meta_box','Video Details','display_video_meta_box','video');
}

function display_video_meta_box($video) {
$video_artist=get_post_meta($video->ID,'video_artist',true);
$video_name=get_post_meta($video->ID,'video_name',true);
$video_arrangement=get_post_meta($video->ID,'video_arrangement',true);
$video_mixmastering=get_post_meta($video->ID,'video_mixmastering',true);
$video_music=get_post_meta($video->ID,'video_music',true);
$video_lyric=get_post_meta($video->ID,'video_lyric',true);
$video_cover=get_post_meta($video->ID,'video_cover',true);
$video_type=get_post_meta($video->ID,'video_type',true);
$video_director=get_post_meta($video->ID,'video_director',true);
?>
<div dir="ltr">
<table>
<tr><td>Video Type: </td><td>
<select name="video_type">
<option value="Persian"<?php selected($video_type,'Persian'); ?>>Persian</option>
<option value="Foreign"<?php selected($video_type,'Foreign'); ?>>Foreign</option>
</select>
</td></tr>
<tr><td>Cover URL: </td><td><input type="text" name="video_cover" value="<?php echo $video_cover; ?>" size="50"></td></tr>
<tr><td>Artist: </td><td><input type="text" name="video_artist" value="<?php echo $video_artist; ?>" size="50"></td></tr>
<tr><td>Video Name: </td><td><input type="text" name="video_name" value="<?php echo $video_name; ?>" size="50"></td></tr>
<tr><td>Arrangement: </td><td><input type="text" name="video_arrangement" value="<?php echo $video_arrangement; ?>" size="50"></td></tr>
<tr><td>Mix & Mastering: </td><td><input type="text" name="video_mixmastering" value="<?php echo $video_mixmastering; ?>" size="50"></td></tr>
<tr><td>Music: </td><td><input type="text" name="video_music" value="<?php echo $video_music; ?>" size="50"></td></tr>
<tr><td>Lyric: </td><td><input type="text" name="video_lyric" value="<?php echo $video_lyric; ?>" size="50"></td></tr>
<tr><td>Director: </td><td><input type="text" name="video_director" value="<?php echo $video_director; ?>" size="50"></td></tr>
<tr><td>Other: </td><td><input type="text" name="video_other" value="<?php echo $video_other; ?>" size="50"></td></tr>
<tr><td>Special / Recommend: </td><td>
<input type="checkbox" name="video_special" <?php if($video_special=="on"){echo"checked";} ?>><label>Special</label>
<input type="checkbox" name="video_recommend" <?php if($video_recommend=="on"){echo"checked";} ?>><label>Recommend</label>
</td></tr>
</table>
</div>
<?php
}

function add_video_fields($video_id,$video){
if($video->post_type=='video'){
if($_POST['video_type']!='')update_post_meta($video_id,'video_type',$_POST['video_type']);
if($_POST['video_cover']!='')update_post_meta($video_id,'video_cover',$_POST['video_cover']);
if($_POST['video_artist']!='')update_post_meta($video_id,'video_artist',$_POST['video_artist']);
if($_POST['video_name']!='')update_post_meta($video_id,'video_name',$_POST['video_name']);
if($_POST['video_arrangement']!='')update_post_meta($video_id,'video_arrangement',$_POST['video_arrangement']);
if($_POST['video_mixmastering']!='')update_post_meta($video_id,'video_mixmastering',$_POST['video_mixmastering']);
if($_POST['video_music']!='')update_post_meta($video_id,'video_music',$_POST['video_music']);
if($_POST['video_lyric']!='')update_post_meta($video_id,'video_lyric',$_POST['video_lyric']);
if($_POST['video_director']!='')update_post_meta($video_id,'video_director',$_POST['video_director']);
if($_POST['video_other']!='')update_post_meta($video_id,'video_other',$_POST['video_other']);
if($_POST['video_special']!='')update_post_meta($video_id,'video_special',$_POST['video_special']);
if($_POST['video_recommend']!='')update_post_meta($video_id,'video_recommend',$_POST['video_recommend']);
if($_POST['video_special']=='')delete_post_meta($video_id,'video_special',$_POST['video_special']);
if($_POST['video_recommend']=='')delete_post_meta($video_id,'video_recommend',$_POST['video_recommend']);
}
}

که اون فیلدی که مورد نیاز دارم video_type هستش حالا برای نمایش کل قسمت ویدیو هم از کد زیر استفاده میکنم :

<?php
$args=array('post_type'=>'video','posts_per_page'=>get_option('posts_per_page'),'orderby'=>'modified','order'=>'DESC');
$loop=new WP_Query($args);
if($loop->have_posts()):
while($loop->have_posts()):$loop->the_post();
$video_artist=get_post_meta(get_the_ID(),'video_artist',true);
$video_name=get_post_meta(get_the_ID(),'video_name',true);
$video_cover=get_post_meta(get_the_ID(),'video_cover',true);
if($video_cover=='')$video_cover=get_bloginfo('template_url').'/images/not_available.jpg';
$video_special=get_post_meta(get_the_ID(),'video_special',true);
?>

حالا اگر میشه کد بالا رو برام تغییر بدید که فقط video_type های Persian رو نمایش بده ، کد بالا الان کل Post_type ویدیو رو نشون میده هم Persian هم Foreign در صورتی که میخوام وقتی روی Persian بود یه بخش نمایش بدم پست هاش رو وقتی هم روی Foreign بود یه بخش دیگه.

ممنون میشم مجدد منو راهنمایی کنید

0

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


لینک به پست

http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters


$args = array(
'meta_key' => 'video_type',
'meta_value' => 'Persian'
);
$query = new WP_Query( $args );

1

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


لینک به پست

ارسال شده در (ویرایش شده)

خیلی ممنون از راهنماییتون ، آیا امکان این هستش که از چند meta_key داخل کوئری استفاده کرد ؟

بصورت تکی خیلی خوب نشون داد ، بنده الان میخوام وقتی meta_value در 2 پست تایپ جداگانه وقتی انتخاب بشه ، داخل یک صفحه اینهارو کنار هم نشون بدم.

یک صفحه جداگانه ساختم و از کد زیر استفاده کردم اما متاسفانه نشون نداد !

$args = array(
'meta_key' => array( 'video_type', 'song_type' ),
'meta_value' => 'Persian',
'post_type' => array( 'video', 'song' )
);

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

------------Update-----------

الان برای پست تایپ هایی که میخواستم یه فیلد اضافه درست کردم که meta_value هم نام باشه و مشکلم حل شد.

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

ویرایش شده در توسط slashflash
0

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


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

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

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری