フィルタ/フックを使用して、ワードプレスの投稿のタイトルを、カスタム分類法から選択された用語に置き換えるにはどうすればよいですか。
うまくいけば、添付の画像は私がやろうとしていることを説明するでしょう。
「Powerchrono」を選択したとしましょう-投稿のタイトルを選択した用語に置き換えたいのですが、それは親です。
どんな助けでも大歓迎です。
もちろん、投稿のURLも更新してほしいです。
フィルタ/フックを使用して、ワードプレスの投稿のタイトルを、カスタム分類法から選択された用語に置き換えるにはどうすればよいですか。
うまくいけば、添付の画像は私がやろうとしていることを説明するでしょう。
「Powerchrono」を選択したとしましょう-投稿のタイトルを選択した用語に置き換えたいのですが、それは親です。
どんな助けでも大歓迎です。
もちろん、投稿のURLも更新してほしいです。
テストされていないため、これがゲートから直接機能することを保証することはできません。しかし、これで始められるはずです。
関数.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');
}
?>