2012-05-05 13 views
2

私はこのようになります$ wpdb-> get_resultsクエリを持っていますphpmyadminを使用して、結果を完全に正確に返します。しかし、wordpressの実装では何も返されません。 私はそれを壊していると思われる部分のAND post_type = 'event'に絞り込んだ。クエリから除外すると、結果は正常に返されます。

誰にも分かりますか?

ありがとうございます!

+0

「イベント」という名前の登録カスタム投稿タイプがありますか?また、post_typeイベントでデータベースにエントリがありますか? – maiorano84

+0

$ current_user_id = 5は本当ですか?同じデータベースに対して両方のクエリを実行していますか? – Hobo

+0

私は同じ問題を抱えていますが、解決策を見つけましたか? – Pentium10

答えて

1

はあなたがWP_Queryのquery_postsを経由して同じことを実行することができpost_type like %event%

を使用してみてください、これはあなたが$ wpdbを使用する必要がありますが、私は間違っているかもしれない複雑なクエリではありません。

$get_post = $wpdb->query("SELECT * FROM wp_posts 
WHERE post_author = ".$current_user_id." 
    AND post_status = 'publish' 
    AND post_type = 'event' 
ORDER BY post_date DESC 
"); 

OR

$wpdb->get_results("SELECT * 
FROM $wpdb->posts 
WHERE post_author = $current_user_id 
    AND post_status = 'publish' 
    AND post_type = 'event' 
ORDER BY post_date DESC", OBJECT); 
1

は、以下のコードを試してみてください。何らかの理由でエディタまたはdbのいずれかが正しく構成されていませんでした。

一度同じ行になるようにクエリを変更すると、そのクエリは機能し始めました。私の理解へ

1

私は新しい行から来ていたていた問題:

3

、ワードプレスは、5つの主要ポストの種類があります:あなたはこのカスタムポストを登録している必要がある「イベント」のpost_typeを調べるために(ポスト、ページ、添付ファイル、リビジョン、およびnav_menu_item)

をタイプはregister_post_type関数を使用します。ここで

は、あなたが「イベント」と呼ばれるカスタムポストタイプを作成する方法をサンプルである

add_action('init', 'create_post_type'); 
function create_post_type() { 
    register_post_type('event', 
     array(
      'labels' => array('name' => __('events'), 
        'singular_name' => __('event')), 
      'public' => true, 
     ) 
    ); 
} 

注:register_post_type($post_type, $args)は、デフォルトでは2つの引数を取ります。

$post_type - カスタム投稿タイプの名前です。

$args - 投稿タイプのデフォルト動作を変更するための任意の数の引数です。これは通常配列でなければなりません。

'labels'引数には、ポストタイプの名前が一般的かつ単数形で記述されます。ポストタイプの一般バージョンと特異バージョンを使用する場合は、表示されている方法を使用してください。それ以外の場合、デフォルト値は指定した$post_type nameの名前になります。

'public'投稿タイプが公的な使用のためのものであるかどうかの議論があります。またcreate_post_typeはあなたがmy_super_cool_new_custom_original_post_type_creating_function笑やニーズの記述に何かを呼び出すことができます機能のカスタム名であることに注意して

add_action('init', 'create_post_type'); 
function create_post_type() { 
    register_post_type('event', array('public' => true, 'label' => 'events')); 
} 

あなたはまた、次のような多くのタグなし簡易版を書くことができます。

簡略化したバージョンでは、私はlabelを使用しました。これは1つの引数をとり、それはポストタイプの一般名です。あなたのポストの種類の説明を追加したい場合は、名前を括弧の中にそれを行うとのようなxに対して1アンダースコアを置き換えます:

add_action('init', 'create_post_type'); 
register_post_type('event', 
    array(
     'labels' => array('name' => _x('events' , 'post type general name'), 
       'singular_name' => _x('event' , 'post type singular name')), 
     'public' => true, 
    ) 
); 

注意の言葉:初期化前register_post_typeを使用しないでください。

これをすべて実行してもpost_typeにアクセスできない場合は、public引数を追加してください。 :)

歓声