【WordPress】非公開記事のタイトルに付く「非公開:」を消す方法
functions.php
the_title
WordPress
タイトル
非公開
WordPressの記事を一時的に閲覧出来ないようにする「非公開」。
非公開にすることでWordPressの管理画面にログインしていないブラウザでは、その記事にはアクセス出来なくなります。
ログインしているユーザーの場合、記事タイトル部分に「非公開:」が付いた状態で「非公開:記事タイトル」と表示されます。
あまり使うタイミングはないと思いますが、この「非公開:」を消す方法をご紹介したいと思います。
この記事の目次を表示
「非公開:」を消す方法
非公開記事のタイトルに付く「非公開:」を消すには以下のPHPコードを有効中のテーマのfunctions.phpに記述します。
<?php
add_filter('the_title', function ($title = '') {
$search[0] = '/^' . str_replace('%s', '(.*)', preg_quote(__('Protected: %s'), '/')) . '$/';
$search[1] = '/^' . str_replace('%s', '(.*)', preg_quote(__('Private: %s'), '/')) . '$/';
return preg_replace($search, '$1', $title);
});
?>
functions.phpの記述を間違えるとWebサイトがエラーとなり表示されなくなってしまうので必ずバックアップを取った上で書き換えるようにします。
このコードの内容は、フィルターフックを使いthe_title()
の処理の直前にstr_replace()
で出力する文字から「非公開:」の文字列を取り除いてからタイトルを出力します。
まとめ
WordPressの記事を非公開にした場合、基本的に一般ユーザーはその記事にアクセスすることは出来ません。
そのため非公開記事に「非公開:」と表示されること自体、支障が出ることは考えにくいです。
ただ、もし必要な場面が出てきた際は上のコードをコピペして使用してみてください。