特定の記事のためのデータベースからオブジェクトを抽出します

SLE:

私は以下のコードを持っています:

$test = get_post_meta($post->ID, 'author', true);
var_dump($test);

これは私にこれら2つのIDを返します。
ここでは、画像の説明を入力します。

これらは私の内部の2つのIDですwp_postsどのように私は両方を抽出することができるだろう、データベースのテーブルpost_titleguidここではデータベースに示されているものです。
ここでは、画像の説明を入力します。

Xhynk:

あなたはすでにWordPressのヘルパー関数を使用しているので、最も簡単な方法は、おそらく、関連するヘルパー関数を用いることであろうget_the_title()get_the_guid()

このようなもの:

if( $_author = get_post_meta( $post->ID, 'author', true ) ){
    foreach( $_author as $id_string ){
        $guid       = get_the_guid( $id_string );
        $post_title = get_the_title( $id_string );
    }
}

また、使用することができ$wpdbクラス(特別$wpdb::get_results()法)が、独自のSQLクエリを記述することを伴う、安全でSQLインジェクションの脆弱性を防ぐために準備された文にそれを回す$wpdb::prepare()方法、およびちょうど全体のような単純な何かのために、必要以上に複雑と思われます以下からの二つのフィールドを取得しposts、テーブル。

global $wpdb;
$_author = get_post_meta( $post->ID, 'author', true );
$format  = array_fill( 0, count($_author), '%d' );
$format  = implode(',', $format);

$sql = "
    SELECT post_title, guid
    FROM   {$wpdb->posts}
    WHERE  ID
    IN ({$format})
    GROUP BY ID
";

$results = $wpdb->get_results( $wpdb->prepare( $sql, array($_author) ) );

上記の機能がテストされていないが、かなり近い作業にする必要があり、ちょうどに組み込まれている関数を使用するよりも、それはもう少し複雑だということを示すWordPressはすでにそれはあなたのために、この種の仕事を行います。

WordPressのはそのような便利なヘルパー関数をたくさん持っている、一般的に、彼らが命名規則に従うget_the_[object]_[part_of_object]()と、で始まる一般的なものthe_(省略さget_れます)エコー、それを返す値を代わりにだけに。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=9937&siteId=1