alitna 34 ارسال شده در مهر 95 گزارش بازنشر ارسال شده در مهر 95 سلام من با کد زیر ، میام مطلبی رو میگیرم که اگه عنوانش برابر با مقدار وارد شده بود ، اونو نمایش بده .. <?php $first_char = 'wellcome to post'; $postids=$wpdb->get_col($wpdb->prepare(" SELECT ID FROM $wpdb->posts WHERE $wpdb->posts.post_title = %s ORDER BY $wpdb->posts.post_title",$first_char)); if ($postids) { $args=array( 'post__in' => $postids, 'post_type' => 'post', 'post_status' => 'publish', 'showposts' => 10, ); $my_query = null; $my_query = new WP_Query($args); if( $my_query->have_posts() ) { while ($my_query->have_posts()) : $my_query->the_post(); ?> <?php the_title(); ?><br/> <?php endwhile; } else { echo '<div id="nocontentpost">NO CONTENT</div>'; } wp_reset_query(); } ?> یعنی کلا مطالبی که عنوانش برابر با wellcome to post باشه ، اونو میگره ونمایش میده . ولی تا حدی میخوام تغییرش بدم به این صورت : که یک پست متا به صورت آرایه هست : _my_metaesopp[] حالا میخوام توی حلقه بالا به این صورت بشه که به جای wellcome to post آرایه خودم رو قرار بدم : array('numberone','hello world'); و تک تک چک بشن که هر مقدار آرایه پست متا ، با آرایه ورودی که دادم برابر بود ، اون مطلب رو نشون بده . نقل قول لینک به ارسال
alitna 34 ارسال شده در مهر 95 مالک گزارش بازنشر ارسال شده در مهر 95 (ویرایش شده) کد به این تغییر پیدا کرد : <?php $first_char = array('one','two','three'); $postids=$wpdb->get_col($wpdb->prepare(" SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_my_metaesopp' AND meta_value = %s ORDER BY $wpdb->postmeta.meta_value",$first_char)); if ($postids) { $args=array( 'post__in' => $postids, 'post_type' => 'mp3music', 'post_status' => 'publish', 'showposts' => 50, ); $my_query = null; $my_query = new WP_Query($args); if( $my_query->have_posts() ) { while ($my_query->have_posts()) : $my_query->the_post(); ?> <?php the_title(); ?><br/> <?php endwhile; } else { echo '<div id="nocontentpost">NO CONTENT</div>'; } wp_reset_query(); } ?> الان تنها مشکل این شد که اگه متغیر first_char و متا کی _my_metaesopp تک متغییر باشه ، نتیجه درسته ... ولی متغیر first_char و متا کی _my_metaesopp هر دو آرایه هستن ، ولی نتیجه نمیده .. ویرایش شده مهر 95 توسط alitna نقل قول لینک به ارسال
alitna 34 ارسال شده در مهر 95 مالک گزارش بازنشر ارسال شده در مهر 95 (ویرایش شده) سلام مشکل با کد زیر حل شد : <?php $first_char = array('one','two','three'); $sql = array(); foreach($first_char as $word){ $sql[] = 'meta_value LIKE "%'.$word.'%" '; } $where = implode(" OR ", $sql); $postids = $wpdb->get_results(" SELECT post_id FROM $wpdb->postmeta WHERE meta_key = 'mypostmeta' AND ".$where ); foreach ( $postids as $page ){ $b[] = $page->post_id; } if ($b) { $args=array( 'post__in' => $b, 'post_type' => 'post', 'post_status' => 'publish', 'showposts' => 10, ); $my_query = null; $my_query = new WP_Query($args); if( $my_query->have_posts() ) { while ($my_query->have_posts()) : $my_query->the_post(); ?> <?php the_title(); ?><br/> <?php endwhile; } else { echo '<div id="nocontentpost">NO CONTENT</div>'; } wp_reset_query(); } ?> که تک تک آرایه رو میگیره و داخل کوئری برای جستجو در دیتابیس اونو وارد میکنه . و در نتیجه آیدی دریافت شده و داخل کوئری مطلب قرار داده میشه ویرایش شده مهر 95 توسط alitna نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .