テーマ側で、the_titleの前に品番を出力するよう追記すればいいと思うんですが、そうじゃなくてデータ的に結合しちゃいたいということですか?
回答ありがとうございます。
そうですね。表示上で出力するのではなく、品番のテキストデータを
記事タイトルにデータ的に結合を希望しております。
データ的に結合する必要は無いんじゃないかと思いますが…。表示上で並べたほうがはるかに楽です。何か不都合があるんでしょうか。
回答ありがとうございます。
確かに表示上で並べた方が楽なのですが…。
それだと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のフックでコピーしちゃうのがいいかもですねぇ
皆さん回答ありがとうございます。
gogowebさんのコードで、目的である記事タイトルに品番のデータを入れることができました。
色々とご迷惑をおかけしました。ありがとうございました。