私は上のドキュメントを読んできたget_post_permalink()
とget_permalink()
し、両者の違いを理解していません。私はの目的を理解していないので、それはあるかもしれない$leavename
し、$sample
パラメータを。誰かがそれらを説明できますか?そして、ある機能が他の機能よりいつ役立つか?ありがとう!
私は上のドキュメントを読んできたget_post_permalink()
とget_permalink()
し、両者の違いを理解していません。私はの目的を理解していないので、それはあるかもしれない$leavename
し、$sample
パラメータを。誰かがそれらを説明できますか?そして、ある機能が他の機能よりいつ役立つか?ありがとう!
回答:
get_post_permalink()
funcitonは変化し、その「永久」リンクプラスカスタム書き換えルールに応じて、ポストへのリンクをフェッチする?p=123
などのためにmy-beautiful-sunday-diary
。get_permalink()
関数はより「基本的」ですが、その機能においてもより汎用性がpost_type
あります。
page
、 それは使用しています get_page_link()
attachment
、 それは使用しています get_attachment_link()
post
、 それは使用しています get_post_link()
また、term
s 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()
など、あなたがいずれかの単一のサイト上で作業しているし、あなたのコードを配布することを計画されていないか、またはあなただけの書き換えターゲッティングプラグインを作成している場合にのみ次に、上記の汎用フィルターを使用します。それ以外の場合は、すべてのテーマ作成者の努力を核にして、コールバック優先レースを開始します。
他の誰かが確かに私よりもよく説明します。使うだけなので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
パーマリンク構造を取得して、投稿のスラッグを編集できるインターフェイスを生成できるように、adminで使用されます。