情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。
パーマリンクを投稿名に設定し、スラッグが空欄のときにはIDを入れるというSlug or PostID というプラグインがあって、便利だったのだが、長く更新されていないので、同様のことをする方法を考えてみた。
サイトのリニューアル時など、基本的にパーマリンクは投稿IDで良いのだが、特定の投稿だけ元のURLを変えたくないなどの事情がある場合用。
1.パーマリンクはpostname
2.acfでスラッグ欄を作り、デフォルト値を投稿IDにする
3.スラッグ欄の値を投稿スラッグに設定する
add_filter('acf/load_field/name=slug', function($field) { global $post; if( get_post_meta($post->ID, 'slug', true) == '' ) { $field['value'] = $post->ID; } return $field; }); function custom_post_title( $value, $post_id, $field ) { $type = get_post_type($post->ID); if ( 'post' == $type) { if(isset($value) && $value != '') { $args = array( 'ID' => $post_id, 'post_name' => sanitize_title($value) ); wp_update_post( $args ); } return $value; } } add_filter('acf/update_value/name=slug', 'custom_post_title', 10, 3);
デフォルト値の設定はhttps://gist.github.com/vielhuber/1124e0309bb4d655bfc08e1d38ad5bdeから
その他のAdvanced Custom Fields に関する記事一覧
- カテゴリーの閲覧数
- ACF デートピッカーのフォーマット設定
- ACF リピーターをカレンダーに出力(予約カレンダーの実装)
- ACF 入れ子リピーターの内側だけループ
- WP REST API 独自エンドポイントとACF
- ACF 値の登録や保存
- REST API でACFの表示など
- Advanced Custom Fields の表示、まとめ
- PHP8以降で出るWarning
- イベントの開催期間の表示
- イベント終了時にタイトルに追加する
- アクセスランキング
- ワードプレスからメール送信
- CF7で予約した人にリマインドメールを送る
- ACF 設定ページ(オプションページ)
- ACF escape HTML
- 出勤・スケジュール管理の覚書2
- ACF 複数選択チェックボックスのチェックの有無
- Advanced Custom Fields で役立つ関数
- 日時予約簡易版