sql >> データベース >  >> RDS >> Mysql

WordPressのpre_get_postsが機能しない

    ドキュメントはpre_get_postにあります。 ここでフィルタリング http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts

    問題は、実際には、取得するpost_idsをどのように設定しているかにあるように見えます。上記のリンクを参照すると、$queryで設定できるさまざまな値を確認できます。 フィルタに渡されるオブジェクト、およびpost_id はそれらの1つではないため、設定すると「機能」し、pを設定すると「機能しない」のです。 。後者は単一の投稿ID用であるため、100が必要な場合は、$query->set('p', 100)を使用します。 。投稿IDが配列内にある結果を返したい場合は、$query->set('post__in', array(100, 120))を使用します。 。 SQLコードはIDを返すだけなので、オブジェクトを返すのではなく、配列を直接取得できます。タイトルとprint_rをエコーすると想定しています。 行はデバッグ中です:

    // get results as a numeric array
    $post_ids = $wpdb->get_results($request, ARRAY_N);
    // pass post id array to $query
    $query->set( 'post__in', $post_ids );
    

    $queryに既存の競合するパラメータが設定されている場合も、結果が得られない可能性があります。 。これらの値は、var_dump($query->query_vars)で確認できます。 競合する可能性のあるものはすべて空の文字列に設定します。この場合、$query->set( 'm', '' );



    1. SQLServerが存在しない場合は挿入

    2. perlを使用してmysqlデータベースの変更を監視する方法はありますか?

    3. 文字列を行に分割

    4. postgresql DBを使用してNULL値を格納するために必要なディスクスペースはどれくらいですか?