カスタムフィールドで投稿のスラッグを変更したいです。
たとえば、カスタムフィールドが「キーワード」の場合、私の投稿リンクは次のようになります。mysite.com/keyword.
カスタムフィールドが空の場合は、mysite.com/xV5f7Aのようなランダムキーを生成します。 。
どうすればWordpressのコアを変更せずにそれを行うことができますか?
どんなアイデアでも大歓迎です!ありがとう。
スラッグはwp_postsに保存され、カスタムフィールドはwp_posts_metaに保存されます。あなたがそれを好きにしたいならば、あなたはカスタムフィールドの値を得て、ポストスラッグとしてそれを保存するsave_postの上のアクションフックを使うことができます。
これがコードです
add_action('save_post', 'set_slug');
function set_slug($post_id){
$new_slug = get_post_meta($post_id,'custom-slug', true);
$post_args = array(
'ID' => $post_id,
'post_name' => $new_slug,
);
wp_update_post($post_args);
}