UPDATE、コードは現在動作しています。ワードプレス - ポストセーブ時にタグとしての単語スラッグの自動挿入
私は以下のコードを持っていますが、それは予想外にうまく動作しません。 TAXONOMY_NAMEタクソノミからの条件はカスタムの投稿タイプCUSTOM_POST_TYPEに対してのみ使用し、タグとして追加する必要があります。
add_action('save_post','add_tags_auto');
function add_tags_auto($id) {
$terms = get_the_terms($post->id, 'TAXONOMY_NAME'); // get an array of all the terms as objects.
$add_tags = array();
foreach($terms as $term) {
$add_tags[] = $term->slug; // save the slugs in an array
}
$temp = array();
$tags = get_the_tags($id);
if ($tags) {
foreach ($tags as $tag)
$temp[] = $tag->name;
}
$tags = $temp;
$post = get_post($id);
if ($post->post_type != 'CUSTOM_POST_TYPE')
return false;
foreach ($add_tags as $t)
if (!in_array($t,$tags))
wp_add_post_tags($id,$add_tags);
}
タグの数を制限しても結構です –
はい、あなたは '$ tagsToAdd [] = $ term-> slug;'を呼び出すforeachを終了できます。あなたが変数を持っていて、$ iMaxTagsと呼びます(例えば、データベースからそれを設定することができます)。ループの条件は 'if($ i <$ iMaxTags &&!in_array($ term-> slug、$ tagNames)) '; foreachを 'as $ i => $ term'に変更してください。 – quickshiftin
ただし、これはかなり限定的な方法です。実用的な解決法は、おそらく、それらをよりインテリジェントにフィルタリングしようとします。 – quickshiftin