web-dev-qa-db-ja.com

カスタムフィールドでスラグを変更

カスタムフィールドで投稿のスラッグを変更したいです。

たとえば、カスタムフィールドが「キーワード」の場合、私の投稿リンクは次のようになります。mysite.com/keyword.

カスタムフィールドが空の場合は、mysite.com/xV5f7Aのようなランダムキーを生成します。 。

どうすればWordpressのコアを変更せずにそれを行うことができますか?

どんなアイデアでも大歓迎です!ありがとう。

2
user1568901

スラッグは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);
}
3
ifdion