サポート » 使い方全般 » wpdbでのp.という記述につきまして

  • 現在固定ページアーカイブを順序パラメータで並べ替えております。
    それに伴って固定ページに設置する、前の記事、後の記事というリンクを
    作成するために以下のページを参考にさせていただいたのですが
    SQL?PHP?の記述で不明点があり投稿させていただいております。

    参考にさせていただいたページです。
    https://1fix.io/blog/2014/09/09/get-right-previous_post_link-when-order-posts-by-menu_order/7行目にある
    $wpdb->prepare( “WHERE p.menu_order < %s AND p.post_type = %s AND p.post_status = ‘publish'”, $post->menu_order, $post->post_type);
    }

    という記述の中でp.menu_order、p.post_type、p.post_statusという記述がありますが
    このp.という記述がよくわかりませんでした。
    p.menu_order < %sという記述は%sに$post->menu_orderが代入され
    p.menu_order < $post->menu_orderという意味合いになると予想しています。

    こちらの意味合いとしてはすべてのpost(投稿、固定も含む)から
    現在の投稿の順序より小さいものを取得するという意味になるのでしょうか。
    現在の投稿の順序が5だったら順序が4,3,2,1,0の投稿を取得のような
    イメージであっておりますでしょうか。

    またp.はsqlのas句っぽいということは以下の記事でわかりましたが
    https://www.webopixel.net/wordpress/1326.html
    前述の参考ページではas句のくだりがなく
    当方でも設定した覚えがない状況です。

    しかしながら
    previous_post_link( ‘%link’, ‘« 前へ’, true )
    とテンプレートファイルに指定すると
    ちゃんと順序の順番で前へ、次へと一つずつ移動してくれます。

    一応PHPStormを使用しているのでp.の定義元を確認しようと
    P.を選択してCtrl+Bを押してみましたが反応しませんでした。
    p.がもしコアで定義されているようでしたらそちらの場所も知りたいです。

    意味の詳細がはっきりしないままなのも気持ちが悪いので
    質問させている次第です。

    ご存知の方がいらっしゃいましたらご教授の程お願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    同じ名前のデータベースを自己結合させる場合や、SELECTの結果と結合する場合にデータベース名やSELECTの結果に別名を付けます。
    ご自身で調べられたAS句を用いて別名を付けます。
    SQLでは非常に一般的に行われています。

    4.9.8なら、link-template.phpの1734行目にあります。
    $query = "SELECT p.ID FROM $wpdb->posts AS p $join $where $sort";

    発行されているSQL全文が知りたいのであれば、以下のサイトなどを参考にしてみて下さい。

    参考)http://istks.net/2296

    • この返信は5年、 8ヶ月前にmunyaguが編集しました。
    トピック投稿者 hokutonojikei

    (@hokutonojikei)

    munyaguさん、ご返信ありがとうございます。

    コアに記述があったんですね。
    自分でも再度確認してみます。

    SQLのページも参考になります。
    こんな方法で確認ができるんですね。

    原因がわかり助かりました。
    ありがとうございました!

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「wpdbでのp.という記述につきまして」には新たに返信することはできません。