get_post_permalinkとget_permalinkの違いは何ですか?


11

私は上のドキュメントを読んできたget_post_permalink()get_permalink()し、両者の違いを理解していません。私はの目的を理解していないので、それはあるかもしれない$leavenameし、$sampleパラメータを。誰かがそれらを説明できますか?そして、ある機能が他の機能よりいつ役立つか?ありがとう!

回答:


6

get_post_permalink()funcitonは変化し、その「永久」リンクプラスカスタム書き換えルールに応じて、ポストへのリンクをフェッチする?p=123などのためにmy-beautiful-sunday-diaryget_permalink()関数はより「基本的」ですが、その機能においてもより汎用性がpost_typeあります。

  • page、 それは使用しています get_page_link()
  • attachment、 それは使用しています get_attachment_link()
  • post、 それは使用しています get_post_link()

また、terms categoryや日付のパーマリンクの表示も処理します。最後に、home_url()カスタムの書き換えルールが割り当てられていない場合は、「かなり」のリンクを置き換えるか、そのままのリンクを返します。最後に、一般的なフィルターを追加します。

/**
 * Filters the permalink for a post.
 *
 * Only applies to posts with post_type of 'post'.
 *
 * @since 1.5.0
 *
 * @param string  $permalink The post's permalink.
 * @param WP_Post $post      The post in question.
 * @param bool    $leavename Whether to keep the post name.
 */
return apply_filters( 'post_link', $permalink, $post, $leavename );

トピックが明確になることを願っています。

ProTip:あなたは内部の特定のフィルタで行く、プラグインでperamlinksを変更する必要がある場合get_attachment_link()get_post_link()など、あなたがいずれかの単一のサイト上で作業しているし、あなたのコードを配布することを計画されていないか、またはあなただけの書き換えターゲッティングプラグインを作成している場合にのみ次に、上記の汎用フィルターを使用します。それ以外の場合は、すべてのテーマ作成者の努力を核にして、コールバック優先レースを開始します。


2

他の誰かが確かに私よりもよく説明します。使うだけなのでget_permalink()

どちらもポストパーマリンクを返し、(post_typesに)get_permalink使用し、get_post_permalinkフィルターできるので、ほとんど同じです。またget_post_permalink、post_types専用のページリンク、添付ファイルなどを取得するためにも使用されます。

編集:

の使用について$leavenameは、リンクの投稿タイプに従って、永久構造スラグを返すため、フロントエンド(およびバックエンドでも)を使用する必要がないように見えます。

 echo get_permalink(123, true);

使用できるリンクの書き換えスキーマを返します

ポスト:

 http://example.com/%postname%/

製品:

 http://example.com/%product%/

$ leavenameは$ rewritecode配列のget_permalink()で使用され、関数行221の最初のパラメーターとして配置されます

$permalink = home_url( str_replace($rewritecode, $rewritereplace, $permalink) );

開発者のリンクの書き換えスラグを発見することは有用です(しかし、これを行うより良い方法があると思います)

誰かが詳細を教えてくれることを願っています。


ありがとう!これについてはまだはっきりしていません。$ leavenameを使用してパーマリンク構造を変更したことがありますか?なぜ、どのようにそれを行うのでしょうか?そして、get_post_permalink()がアーカイブの取得に使用されているということですか、それともget_permalink()を参照しているのですか?get_post_permalink()がget_permalink()とまったく同じように使用されていることに遭遇した今日まで、その違いを確認できていません。
ミシェル

私はget_permalinkについて話している、あなたはそれをソースに入れて、それは著者のページやカテゴリーなどを取得する...それはget_post_permalinkよりも多くのことをするでしょう。Get_permalinkは、私が間違っていない場合のテンプレート関数であり、強力です。
Benoti 2016年

理解しましたが、get_post_permalink()を使用する必要があるとき、または使用したいときに取得できません。コード例を教えてもらえますか?また、$ leavenameと$ sampleの機能を知っていますか?私は今までget_permalink()も使用したことがありません:-)
Michelle

2
$leavenameパーマリンク構造を取得して、投稿のスラッグを編集できるインターフェイスを生成できるように、adminで使用されます。
Milo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.