#arrays #wordpress #multidimensional-array
#массивы #wordpress #многомерный массив
Вопрос:
я запускаю веб-сайт 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
> )
>
> )
И вот мой код, я только хочу, чтобы он определил местонахождение массива с именем welsh 1, который является последним в массиве.
// 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 foundn";
}
echo "<pre>";
print_r($tags);
echo "</pre>";
}
Ответ №1:
$tags — это массив объектов, а не многомерный массив.
Следующий код должен идентифицировать строку welsh1
foreach($tags as $tag){
if ($tag->name == "welsh1" || $tag->slug == "welsh1"){
echo "'ph' was foundn";
break;//this line makes the foreach loop end after first success.
}
}