投稿や固定ページのスラッグに関するメッセージを投稿画面に表示する

投稿の際には必ずスラッグをつけてスラッグをURLの一部として表示するように設定しています。そのスラッグは重複しないように付けないといけないことになっています。もし重複してもWordPressではそんなときに自動的にスラッグに数字を付けてダブらないようにしてくれるということですが、そうならない場合もあるようでした。
そのため絶対にスラッグの重複は避けたいと思います。もし同じスラッグが存在しているとわかったらその投稿はすぐに別の名前にして、元の投稿を生かすようにとかをする必要があります。
ということでスラッグが重複していたら投稿画面にメッセージを出したり、スラッグを付け忘れていたらそれも教えてくれるようにしてみました。

子テーマのfunctions.phpに書きました

いつものように使っている子テーマのfunctions.phpに書きました。

追加したコードは、

こんな感じです。

内容をざっくり説明すると、

ryus_slug_check_message という関数で、投稿画面だったときはそのときのスラッグが他の投稿で使われていないかどうかをチェックします。もし使われていたら重複したスラッグを使っている投稿の一覧を表示します。スラッグが空の時はスラッグの入力を促すように、スラッグが入っていません! と表示します。

admin_noticesというactionで管理画面の上部にメッセージを表示します。

スラッグが重複していたら表示するメッセージ

このコードを入れて、実際にスラッグを重複させて表示してみました。

こんな感じで、重複したスラッグの投稿一覧が表示されます。クリックすると別画面が開いてそれぞれの投稿を確認することができます。

スラッグが入っていなかったら表示するメッセージ

このように表示されるので、スラッグを必ず入れるつもりでblogを書いている場合は便利かと思います(^^)/

まとめ:というか書き込まれないようにしたい(^_^;

このblogを書く前にローカルでテストしていたときは特に問題なく、重複投稿の場合でも後から投稿したものに別の名前が自動的に付いたりしていたので「メッセージが出ればいいや」と思ってました。

しかし、この本番のblogで試してみたところ 既存のblog投稿がテスト投稿に置き換わって しまい、、超焦りました。

本番なのであまり思い切ったテストができないので、どういう場合に重複投稿が名前が変更されずに保存されちゃうのかが分かりません。ということはそもそも「重複したスラッグを指定したときは書き込まれないようにしたい」と思いました。

この関数をさらに進化させて書き込まれないような関数にしていきたいと思っていますm(_ _)m

兎本美佳

ブログを見た人がそのままできたらいいなと思って、できるだけ丁寧に書いています。blogに書いたようなネタの有償対応のご相談は「ゆうそうと」へいただければと思います(^^)/
無償での対応をご希望の場合は、コメントをいただけましたら可能な場合はコメントを返させていただきます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサー広告
ブログをメールで購読

メールアドレスを記入して購読すれば、更新をメールで受信できます。

259人の購読者に加わりましょう

トップへ戻る