• 解決済 wp-alt

    (@wp-alt)


    お世話になります。

    当方カスタムフィールドテンプレートを使用しております。

    その中に「品番」というテキスト項目を作っているのですが、記事タイトルと品番のテキストを一緒にしたいのです。
    しかし、たびたびタイトルに品番の情報を入れるのは手間なので、
    記事の公開時に、品番の中に入ってるテキストデータを、タイトルへ入れたいのですが、実現は可能でしょうか。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • モデレーター けい (Kei Nomura)

    (@mypacecreator)

    テーマ側で、the_titleの前に品番を出力するよう追記すればいいと思うんですが、そうじゃなくてデータ的に結合しちゃいたいということですか?

    トピック投稿者 wp-alt

    (@wp-alt)

    回答ありがとうございます。

    そうですね。表示上で出力するのではなく、品番のテキストデータを
    記事タイトルにデータ的に結合を希望しております。

    データ的に結合する必要は無いんじゃないかと思いますが…。表示上で並べたほうがはるかに楽です。何か不都合があるんでしょうか。

    トピック投稿者 wp-alt

    (@wp-alt)

    回答ありがとうございます。

    確かに表示上で並べた方が楽なのですが…。

    それだとHTML上での表示はタイトルが品番として表示されますが、それはあくまで表示上の話で、
    記事のデータとしては(タイトルなし)となってしまっているので、タイトルに直接データを入れたいのです。

    お手数をおかけして申し訳ありません。実装そのものは可能でしょうか。

    こんな感じでどうでしょうか?

    <?php
    add_action( 'save_post', 'check_kubun', 80 );
    function check_kubun($post_id){
    	global $kubun;
    	$kubun = get_post_meta($post_id,"区分",true);
    }
    
    add_action( 'save_post', 'title_plus', 120 );
    function title_plus($post_id){
    	global $kubun;
    	remove_action('save_post', 'title_plus',120);
    	remove_action('save_post', 'check_kubun',80);
    	$new_post = array();
    	$new_post["ID"] = $post_id;
    	$new_post["post_title"] = get_post_meta($post_id,"区分",true) .str_replace($kubun,"",get_the_title($post_id));
    	wp_update_post($new_post);
    	add_action( 'save_post', 'title_plus', 120 );
    	add_action( 'save_post', 'check_kubun', 80 );
    	}
    ?>

    品番って今カスタムフィールドで入れてます?
    品番をカスタムフィールドではなくて投稿タイトルに使っておけば良かったという話ではないですかね?
    デフォルトの検索ではカスタムフィールドは対象にならないし、表示する時は <?php the_title(); ?> の場所を調節すれば良いだけだし。

    あ、タイトルに品番を追加ではなくタイトル=区分でいいならもっとシンプルに

    <?php
    add_action( 'save_post', 'title_plus', 120 );
    function title_plus($post_id){
    	remove_action('save_post', 'title_plus',120);
    	$new_post = array();
    	$new_post["ID"] = $post_id;
    	$new_post["post_title"] = get_post_meta($post_id,"品番",true);
    	wp_update_post($new_post);
    	add_action( 'save_post', 'title_plus', 120 );
    	}
    ?>

    で大丈夫ですね。
    *でも品番=タイトルでいいならはじめから品番というカスタムフィールドを採用せずにタイトル部分が品番だという仕組みにしたほうがよさそうな気はしますが。

    ああ、タイトルは使ってないというわけですか…。それならgogowebさんの様にsave_postのフックでコピーしちゃうのがいいかもですねぇ

    トピック投稿者 wp-alt

    (@wp-alt)

    皆さん回答ありがとうございます。

    gogowebさんのコードで、目的である記事タイトルに品番のデータを入れることができました。

    色々とご迷惑をおかけしました。ありがとうございました。

9件の返信を表示中 - 1 - 9件目 (全9件中)

トピック「記事タイトルが自動的に入力されるようにしたい」には新たに返信することはできません。