hirooo
フォーラムへの返信
-
jim912様
ご回答いただきありがとうございます。正確には、the_post関数が$wp_qqueryのthe_postメソッドを呼び、the_postメソッドが$postの設定をしているという動作になっています。
正確にはget_resultsメソッドが返す配列の1つが$postとなっている。ということになります。
$wp_queryのget_postsメソッド内で$wpdb->get_resultsメソッドが実行されます。その結果が$wp_query のpostsプロパティに格納され、さらにthe_postメソッドから呼ばれるnext_postメソッドがpostsプロパティの1つを返し、これが$postになるわけです。大変詳しい説明でとても勉強になります。詳しいご説明をいただき、私でもなんとか概要を把握できてきた感じがしております。教えていただいたことを正確に理解するため、さらに勉強していこうと思います。
本当にありがとうございます。
jim912様
ご回答いただきありがとうございます。>$postはクラスのインスタンスではなく、単なるオブジェクトの変数です。
>オブジェクトになっているのは、wpdbクラスのget_resultsメソッドの返値のデフォルトがオブジェクトになっていることに起因しています。詳しく説明していただきありがとうございます。
再度の質問になってしまいますが、
>上記コードでは1,2ともWP_Query(グローバル変数$wp_query)のthe_post()メソッドが、
>グローバル変数$postオブジェクトを設定し、ループ内で$postを利用できると理解しています。
上記の私の認識は正しいでしょうか。そして、WP_Queryのthe_post()メソッドが設定する値であるグローバル変数$postはwpdbクラスのget_resultsメソッドの返値であるという理解で良いでしょうか。
<?php if (have_posts()) : while (have_posts()) : the_post();?>
<?php $title = $post->post_title; echo($title); ?>
<?php endwhile; endif; ?><?php if (have_posts()) : while (have_posts()) : the_post();?>
上記のコードを良く利用するのですが、呪文のように覚えていました。
ずっと、どのようなことが行われているのかを理解したいと思っています。ご回答頂ければ幸いです。
フォーラム: テーマ
返信が含まれるトピック: WordPress プラグイン・フックの中でデータベース情報の取得方法jim912様
早速ご回答いただきましてありがとうございます。ご指摘いただいたとおり、global $wpdb;を記述することで解決できました。
ありがとうございます。また、DB_NAME、DB_USER、DB_PASSWORD、DB_HOSTという定数があることも始めてしり、
とても勉強になりました。ありがとうございました。