私は上のドキュメントを読んできた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()また、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()など、あなたがいずれかの単一のサイト上で作業しているし、あなたのコードを配布することを計画されていないか、またはあなただけの書き換えターゲッティングプラグインを作成している場合にのみ次に、上記の汎用フィルターを使用します。それ以外の場合は、すべてのテーマ作成者の努力を核にして、コールバック優先レースを開始します。
他の誰かが確かに私よりもよく説明します。使うだけなので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で使用されます。