رفتن به مطلب

وارد کردن آرایه برای چک کردن برابر بودن عنوان مطالب


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

سلام

من با کد زیر ، میام مطلبی رو میگیرم که اگه عنوانش برابر با مقدار وارد شده بود ، اونو نمایش بده ..

                  <?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');

و تک تک چک بشن که هر مقدار آرایه پست متا ، با آرایه ورودی که دادم برابر بود ، اون مطلب رو نشون بده .

لینک به ارسال

کد  به این تغییر پیدا کرد :

                  <?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 هر دو آرایه هستن ، ولی نتیجه نمیده ..

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

سلام

مشکل با کد زیر حل شد :

                              <?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(); }
                              ?>

که تک تک آرایه رو میگیره و داخل کوئری برای جستجو در دیتابیس اونو وارد میکنه .

و در نتیجه آیدی دریافت شده و داخل کوئری مطلب قرار داده میشه

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

لطفا برای ارسال دیدگاه وارد شوید

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



ورود به حساب کاربری
×
×
  • اضافه کردن...