0

フィルタ/フックを使用して、ワードプレスの投稿のタイトルを、カスタム分類法から選択された用語に置き換えるにはどうすればよいですか。

うまくいけば、添付の画像は私がやろうとしていることを説明するでしょう。

ここに画像の説明を入力してください

「Powerchrono」を選択したとしましょう-投稿のタイトルを選択した用語に置き換えたいのですが、それは親です。

どんな助けでも大歓迎です。

もちろん、投稿のURLも更新してほしいです。

4

1 に答える 1

2

テストされていないため、これがゲートから直接機能することを保証することはできません。しかし、これで始められるはずです。

関数.php

<?php
add_action('save_post', 'update_term_title');
function update_term_title($post_id)
{
    if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) 
        return;
    if(!current_user_can('edit_post', $post_id))
        return;

    //Replace 'manufacturer' with whatever your custom taxonomy slug is
    $terms = wp_get_post_terms($post_id, 'manufacturer');

    if(empty($terms))
        return;

    $title = false;
    foreach($terms as $term)
    {
        if($term->parent)
        {
            $parent = get_term($term->parent, 'manufacturer');
            $title = $term->name.' '.$parent->name;
            break;
        }
    }
    /*Default to first selected term name if no children were found*/
    $title = $title ? $title : $terms[0]->name;

    /*We must disable this hook and reenable from within
    if we don't want to get caught in a loop*/
    remove_action('save_post', 'update_term_title');
    $update = array(
        'ID'=>$post_id,
        'post_name'=>sanitize_title_with_dashes($title),
        'post_title'=>$title
    );
    wp_update_post($update);
    add_action('save_post', 'update_term_title');
}
?>
于 2012-10-22T18:16:16.823 に答える