Найти массив с определенным значением многомерного массива wordpress in_array - PullRequest
0 голосов
/ 27 апреля 2011

Я работаю на веб-сайте WordPress, использующем wpml, который вызывает у меня массу проблем, пытаясь выполнить запрос к тегам в моих переведенных сообщениях, которые находятся на более высоком уровне.

Так что я пытаюсь сделать небольшой взлом, который позволит мне запрашивать все сообщения и находить сообщения с определенными тегами, используя функцию wordpresses get_the_tags ();

Я пытаюсь использовать in_array, который, кажется, не работает с многомерным массивом, который выводит wordpress, вот массив из print_r ();

>   Array (
>     [629] => stdClass Object
>         (
>             [term_id] => 629
>             [name] => bulletin
>             [slug] => bulletin
>             [term_group] => 0
>             [term_taxonomy_id] => 630
>             [taxonomy] => post_tag
>             [description] => 
>             [parent] => 0
>             [count] => 2
>             [object_id] => 19838
>         )
> 
>     [631] => stdClass Object
>         (
>             [term_id] => 631
>             [name] => english2
>             [slug] => english2
>             [term_group] => 0
>             [term_taxonomy_id] => 632
>             [taxonomy] => post_tag
>             [description] => 
>             [parent] => 0
>             [count] => 1
>             [object_id] => 19838
>         )
> 
> ) Array (
>     [629] => stdClass Object
>         (
>             [term_id] => 629
>             [name] => bulletin
>             [slug] => bulletin
>             [term_group] => 0
>             [term_taxonomy_id] => 630
>             [taxonomy] => post_tag
>             [description] => 
>             [parent] => 0
>             [count] => 2
>             [object_id] => 19842
>         )
> 
>     [630] => stdClass Object
>         (
>             [term_id] => 630
>             [name] => english1
>             [slug] => english1
>             [term_group] => 0
>             [term_taxonomy_id] => 631
>             [taxonomy] => post_tag
>             [description] => 
>             [parent] => 0
>             [count] => 1
>             [object_id] => 19842
>         )
> 
> ) Array (
>     [0] => stdClass Object
>         (
>             [term_id] => 633
>             [name] => welsh2
>             [slug] => welsh2
>             [term_group] => 0
>             [term_taxonomy_id] => 634
>             [taxonomy] => post_tag
>             [description] => 
>             [parent] => 0
>             [count] => 1
>         )
> 
> ) Array (
>     [0] => stdClass Object
>         (
>             [term_id] => 632
>             [name] => welsh1
>             [slug] => welsh1
>             [term_group] => 0
>             [term_taxonomy_id] => 633
>             [taxonomy] => post_tag
>             [description] => 
>             [parent] => 0
>             [count] => 1
>         )
> 
> )

А вот мой код, я только хочу, чтобы он располагал массив с именем welsh1, который является последним в массиве.

<code>  // Global calls to the database
  global $wpdb;

  // Runs a query to get all results from the wp_posts table
  $all = $wpdb->get_results( "SELECT * FROM wp_posts" );

  // loops through each one   
  foreach($all as $v){

      $tags = get_the_tags($v->ID);

      if (in_array('welsh1', $tags)) {
        echo "'ph' was found\n";
      }

      echo "<pre>";
      print_r($tags);
      echo "
"; }

1 Ответ

1 голос
/ 27 апреля 2011

$ tags - это массив объектов, а не многомерный массив.

Следующий код должен идентифицировать строку welsh1

foreach($tags as $tag){
  if ($tag->name == "welsh1" || $tag->slug == "welsh1"){
     echo "'ph' was found\n";
     break;//this line makes the foreach loop end after first success.
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...