参照リンクが消えたので転載
//投稿タイトルをカスタムフィールドから自動設定する
function auto_review_title( $post_id, $post ) {
// カスタムフィールドの値を取ってくる
// $fld_institute_id = get_post_meta($post_id, 'tec_institute', true);
$fld_organizer_id = tribe_get_organizer($post_id);
$fld_ws_id = get_post_meta($post_id, 'tec_ws', true);
// $fld_director_id = get_post_meta($post_id, 'tec_director', true);
// $fld_seats_id = get_post_meta($post_id, 'tec_number_seats', true);
// $ID = get_the_ID();
// 「新規追加」を押した時点でここを通ってしまい、
// その時はカスタムフィールドの値が取ってこれないので、
// それを弾く為にempty()で中身があるか確認している
// if( !empty( $fld_institute_id ) and !empty( $fld_ws_id ) ){
// if( !empty( $fld_model_id ) and !empty( $fld_reviewr_id ) and !empty( $fld_seats_id ) ){
// if( !empty( $fld_organizer_id ) and !empty( $fld_ws_id ) and !empty( $fld_organizer_id ) ){
if( !empty( $fld_organizer_id ) and !empty( $fld_ws_id )){
if( $post->post_type == 'tribe_events' ){
// $fld_model_idには機種名ではなく、タームIDが入っている
// ターム名がほしいので、まずget_term_byでタームを取ってくる
//$term1 = get_term_by( 'term_id', $fld_model_id, 'tec_director' );
//$term2 = get_term_by( 'term_id', $fld_reviewr_id, 'tec_ws' );
// そのあとにnameでアクセスする
// $title = $fld_model_id . ' - ' . $fld_reviewr_id;
// $title = $fld_model_id . ' - ' . $fld_organizer_id;
// $title = $fld_organizer_id . ' - ' . $fld_ws_id . ' - ' . $fld_director_id;
$title = $fld_organizer_id . ' - ' . $fld_ws_id;
// $title = $fld_organizer_id . ' - ' . $fld_institute_id . ' - ' . $fld_ws_id . ' - ' . $fld_director_id;
// $title = $fld_model_id . ' - ' . $fld_reviewr_id . ' - ' . $fld_organizer_id. ' ' . $fld_etc_id;
// $title = $fld_model_id . ' - ' . $fld_reviewr_id . ' - ' . tribe_get_organizer();
// $title = $fld_model_id . ' - ' . $fld_reviewr_id . ' - ' . $fld_seats_id;
//$title = $term1->name . '_' . $term2->name;
// 「wp_update_post」実行時にもこの関数に通ってしまうため、一時的にフックを取る
remove_action( 'wp_insert_post', 'auto_review_title' );
// タイトルを更新
wp_update_post( array(
'ID' => $post_id,
'post_title' => $title
) );
// 「wp_update_post」の処理が終わったので、この関数を再度フックする
add_action('wp_insert_post', 'auto_review_title', 10, 2 );
}
}
}
add_action('wp_insert_post', 'auto_review_title', 10, 2); // 記事追加時のアクションにフック
//投稿タイトルをカスタムフィールドから自動設定する
1.
投稿してから更新すると
投稿タイトルが
テスト の時
更新すると
テストテスト
に2重投稿される問題があります。削除すれば消えます。
2.
パーマリンク設定が投稿名で、投稿タイトルををカスタムフィールド欄で反映させる場合、漢字入力しているとパーマリンクが漢字になります。アドレスをコピペして共有するときにエンコードされて長くなってしまいます。
0 件のコメント:
コメントを投稿