説明
パラメータ
- $slugサニタイズした投稿名を指定。
- $post_ID投稿IDを指定。
- $post_status投稿ステータスで指定。
- $post_type投稿タイプを指定。
- $post_parent親の投稿IDを指定(親がない場合は0)。
返り値
ユニークな投稿スラッグを返す。注意
サイト全体でユニークとなる投稿スラッグ(同じ名前がすでにある場合は-1や-2のようなサフィックスが付く)を取得できるもので、通常は wp_insert_post関数内で呼ばれている。基本的に呼び出すことはなく、利用するなら'wp_unique_post_slug'フィルターだろう。
なお、パラメータ$post_statusが'draft'、'pending'、'auto-draft'のいずれかか、パラメータ$post_statusが'inherit'でパラメータ$post_typeが'revision'の場合はパラメータ$slugをすぐに返す(フィルターは呼び出されない)。
【重要】
'wp_unique_post_slug'フィルターを利用する場合は、その戻り値となるスラッグがURLエンコード(PHP urlencode関数など)して200文字を超えないようにすること。200文字を超えたスラッグを返した場合はその投稿情報は正しく保存されない(3.7.1で確認)。
[5.1.0]本関数でユニークなスラッグを生成する前に'pre_wp_unique_post_slug'フィルターが追加され、独自ルールでスラッグを生成する場合は従来の'wp_unique_post_slug'フィルターの代わりに使用できる。
使用例
- $postからユニークな投稿スラッグを取得する。<?php $post_name = wp_unique_post_slug( sanitize_title( $post->post_title ), $post->ID, $post->post_status, $post->post_type, $post->post_parent ); ?>
フィルター
[5.1.0]ユニークなスラッグを生成する前に'pre_wp_unique_post_slug'フィルターを呼び出す。パラメータ$override_slugにはnullが、以降のパラメータには本関数が受け取った内容が格納されている。$override_slug = apply_filters( 'pre_wp_unique_post_slug', $override_slug, $slug, $post_ID, $post_status, $post_type, $post_parent );
return apply_filters( 'wp_unique_post_slug', $slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug );
アクション
直接実行するアクションはありません。ソースファイル
/wp-includes/post.php最終更新 : 2019年03月01日 14:51
関連
お勧め
ダッシュボードの「クイックドラフト」を「CodeMirror」に変更してみた(2019年11月5日 更新)
管理ページの「テーマエディター」では4.9以降「CodeMirror」が利用されている。今回はこの「CodeMirror」をプラグインで活用できないか調べた話である。
headタグのmeta(generator)タグを取り除く(2018年5月27日 更新)
標準的なWordPressのテーマで出力されるHTMLには、headタグ内に次のようなmetaタグが出力されている。<meta name="generator" content="WordPress 3.0.5" />
Blacklist keys manager:プラグイン作ってみました(2015年5月22日 更新)
少し前から明らかにスパムと思われるコメントが投稿され、そのモデレーションメールを受け取る回数が増えてきた。あまりにもあからさまなコメントばかりなので、何らかの対策ができないか考えてみました。
5.5の機能強化:テーマ変更時に要求バージョンを確認(2020年8月12日 更新)
WordPress 5.5 RC 2が公開され、来週には正式版がリリース。変更箇所が多い「WordPress 5.5 RC 2(以降RC 2)」のソースコードを眺めていると、テーマの切り替え前にWordPressとPHPのバージョンを確認するようになっていた。
投稿内容に応じてwpautopを制御する(2013年8月13日 更新)
投稿内容を表示する the_content関数では、 wpautop関数がフィルターの1つとして呼び出され、改行をbrタグに変換したり、pタグで調整したりする。この機能自体は便利なのだが、きちんとデザインされたHTMLソースを流し込んだ場合はこの機能は好ましくない。そんなわけで、記事内容に応じてwpautop関数を制御できないか考えてみた。