получать wp сообщения по тегам, похожим на arg - wp db query - PullRequest
0 голосов
/ 19 ноября 2018

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

$query = "
         SELECT *
         FROM   $wpdb->posts ,  $wpdb->terms , $wpdb->term_relationships
         WHERE  $wpdb->terms.name LIKE '$search_query%'
         AND    $wpdb->terms.term_id = $wpdb->term_relationships.term_taxonomy_id
         AND    $wpdb->term_relationship.object_id = $wpdb->posts.ID
         ORDER BY   $wpdb->posts.post_title";


     $search_songs = $wpdb->get_results($query);

        $new_query = new WP_Query( $search_songs );
        $search_songs_posts = $new_query->posts;

Где не так?

1 Ответ

0 голосов
/ 19 ноября 2018

Как я уже видел, ваш первый запрос выглядит нормально.

$query_byTag="
        SELECT wp_posts.ID
        FROM wp_posts, wp_term_relationships, wp_terms
        WHERE wp_posts.ID = wp_term_relationships.object_id
        AND wp_terms.term_id = wp_term_relationships.term_taxonomy_id
        AND wp_terms.name LIKE '".$search_query."%'";
    $search_songs = $wpdb->get_results($query_byTag);

Этот запрос возвращает идентификаторы всех сообщений в виде массива объектов.

 Array
(
    [0] => stdClass Object
        (
            [ID] => 1
        )

    [1] => stdClass Object
        (
            [ID] => 60
        )

)

Теперь вам нужно передать $search_songs массив объекта WP_Query($search_songs) as:

<code>$new_query = new WP_Query( $search_songs );
echo '<pre>';
 print_r($search_songs);//returns all posts with query and others data
 echo '
';

Если вы хотите получать только сообщения, вы можете получить его как:

<code>echo '<pre>';
     print_r($search_songs->posts);//returns all posts 
     echo '
';

Подробнее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...