the_permalink()関数とget_permalink()関数の違い


9

WordPressではthe_permalink()get_permalink()関数の両方を使用していますが、両方の関数の出力に違いはありません。両方の機能の違いは何ですか?

回答:


16

the_permalink 現在の投稿のパーマリンクをフロントエンドにエコーします。

get_permalinkただし、変数として返しますが、エコー出力はしません。別の投稿のパーマリンクが必要な場合は、投稿IDを渡すこともできます。

the_permalink 以下と同等です。

echo get_permalink();

これは実際に行うことと非常に近いものです。これはの実装ですthe_permalink

function the_permalink() {
    echo esc_url( apply_filters( 'the_permalink', get_permalink() ) );
}

3
つまり、_ID()やget_ID()のようなすべての関数にも、このような同じ違いがあります。申し訳ありませんが、私はワードプレスに
慣れていないので

@AliasgerSWはパターンですが、いくつかの例外がありますが、一般的にはそうです
Nicolai

疑わしいときは@AliasgerSW、コードを見てください。QueryPostsは、WordPress関数のソースコードを検索するのに最適なサイトです。
2014

@ AliasgerSWそれは私たち自身の@Rarstによって作られました
シア

@shea QueryPostsは廃止されました。:-(\
私は最も愚かな人物です

3

これに関するWordPress Codexを見るとget_permalink()、ループの外で使用するためにあることがわかります。the_permalink()ループ内で使用するためのものです。それはそれを見る最も簡単な方法です。


簡単に見る方法かもしれませんが、完全なものではありません
Nicolai

確かに、@ Tom J Nowell♦の回答ははるかに簡潔です。はるかによく説明されている:-)
Matt Royal

-1

the_permalink()のような投稿ループで使用されますthe_title()。ループの詳細については、The Loopを参照してください

get_permalink()ループ内またはループ外で使用できます。ループでは、関数は現在のポストパーマリンクを(エコーではなく)返します。しかし、ループの外では、投稿IDが必要です。

例えば:

echo get_permalink( 1 );

これにより、現在のページのパーマリンクが表示されます。

echo get_permalink();

1
実際には、ループの外でIDを必要としません
Nicolai
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.