サポート » 使い方全般 » 投稿スラッグから投稿IDを取得するには?

  • 投稿スラッグから投稿IDを取得する事は出来るでしょうか?

    何か方法がございましたらご教示いただけると助かります。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター IKEDA Yuriko

    (@lilyfan)

    投稿スラッグではなく、パーマリンクからの場合は url_to_postid() というテンプレートタグが使えます。ただし、これを使うと現在のクエリー状態 (投稿ループの状態) を破壊するので、使える場所は限られます。

    ヒントになるかどうかわかりませんが、ググったらそれっぽいのが出てきますね(コードの妥当性は未検証)
    http://www.devdevote.com/cms/wordpress-hacks/get_id_by_post_name/

    # 気になる点としては、
    # DBに直接クエリ(と$post_name)投げます。
    # そのまま echo してます

    lilyfan様、kurosquare様 ご回答ありがとうございます。

    >lilyfan様
    投稿スラッグからURL文字列を作って、url_to_postid() で希望通りIDを取得できました。
    ありがとうございました。

    >kurosquare様
    こちらの方法ですと、直接スラッグからIDが取得できそうですのでスマートですね。
    気になる点としてご指摘の2点ですが、これらによって何か問題が発生する危険性があるということでしょうか?
    PHPもSQLも初心者レベルですので、甘えるようで申し訳ありませんが、よければご教示いただければ幸いです。

    セキュリティに通じているわけではないので、的外れかもしれませんが、入出力値を適切にチェックしていないと、例えばSQLインジェクションなどの攻撃にさらされる「可能性がある」ということです。esc_html()とかesc_sql()を使うことが推奨されているようです。

    あと、他のサイトにはページスラッグからIDを取得する方法というのもありました。まあ、ほとんど同じですが。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「投稿スラッグから投稿IDを取得するには?」には新たに返信することはできません。