サポート » 使い方全般 » カスタムフィールドの値をタイトルに反映させたい

  • 解決済 aki

    (@akistar02)


    http://stepxstep.net/?p=1187

    このサイトを参考に、カスタムフィールドで入力した値をタイトルにしたいのですが、
    うまくいくところと行かない箇所があります。

    管理画面の記事一覧には反映されるのですが、記事のURLなど、タイトルが入るところが「?mかtest=自動下書き-2」のようになってしまいます。

    カスタム投稿[test]で、カスタムフィールドは「test_title」です。

    function my_auto_title($title_message){
    
    	global $post;
    
    	/* ポストタイプがカスタムかどうかチェック */
    	if( $post->post_type == 'test' ){
    		/* カスタムフィールドの取得 */
           		$title_message = get_post_meta($post->ID , 'test_title' ,true);
    
    	}
    	return $title_message;
    }
    add_filter('single_post_title', 'my_auto_title');
    add_filter('the_title', 'my_auto_title');
    ?>

    どうかよろしくお願いします。

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • タイトルは上手くできたが、記事のURLが期待通りの結果にならないということですね。

    すみませんが、今の情報だと私はちょっとわからないので、
    出力されてほしいURLと、現状の期待通りでないURLをどちらも正確に記していただけませんか?

    自動化したタイトルと同じ文字列を、タイトルに手動で入力した時に、生成されるURLに差があるのかどうかも気になるところです。

    aki

    (@akistar02)

    出力されてほしいURLと、現状の期待通りでないURLをどちらも正確に記していただけませんか?

    ■現状のURL
    http://ドメイン/category/test/%E8%87%AA%E5%8B%95%E4%B8%8B%E6%9B%B8%E3%81%8D-3

    ■期待するURL
    http://ドメイン/category/test/記事タイトル名 or 自分で入力したい

    WPの仕様か、タイトルを入力しないと記事URLを指定できないので困っています・・・
    現状はタイトルを非サポートにして消しているためです。

    自動化したタイトルと同じ文字列を、タイトルに手動で入力した時に、生成されるURLに差があるのかどうかも気になるところです。

    現在カスタム投稿でsupportでtitleを非表示にしているので、それを表示(supportさせて)させてタイトルを手動で入力するときちんと出ますね(当たり前ですが。。。)
    http://ドメイン/category/test/テスト投稿01

    テスト投稿01がタイトルです。

    私はあまり日本語URLのエンコード / デコードに詳しくはないのですが、現状表示されているURL文字列は2バイト文字である日本語が変換された文字列のようです。両者はまったく違うようで同じ内容を指している可能性が高いです。

    これをどんな条件でも日本語で出すには…となると私には難しいように思えます。

    • あきらめてパーマリンク構造を変える
    • なんらかの方法でタイトルのテキストフォームのみ隠し、パーマリンク指定用フォームは出力されるようにする

    私ならどちらかのアプローチを検討します。

    aki

    (@akistar02)

    すいません、説明が下手でした。

    ■現状のURL
    http://ドメイン/category/test/%E8%87%AA%E5%8B%95%E4%B8%8B%E6%9B%B8%E3%81%8D-3

    ■期待するURL
    http://ドメイン/category/test/記事タイトル名 or 自分で入力したい

    こうです。
    ■現状のURL
    http://ドメイン/category/test/記事タイトル名 or 自分で入力したい

    ■期待するURL
    http://ドメイン/category/test/記事タイトル名 or 自分で入力したい

    今は自動で「自動下書き」と入ってしまいます、ということです。

    エンコードとかは関係ないです・・・

    aki

    (@akistar02)

    上のは無視してください。

    すいません、説明が下手でした。

    ■現状のURL
    http://ドメイン/category/test/%E8%87%AA%E5%8B%95%E4%B8%8B%E6%9B%B8%E3%81%8D-3

    ■期待するURL
    http://ドメイン/category/test/記事タイトル名 or 自分で入力したい

    こうです。
    ■現状のURL
    http://ドメイン/category/test/自動下書き

    ■期待するURL
    http://ドメイン/category/test/記事タイトル名 or 自分で入力したい

    今は自動で「自動下書き」と入ってしまいます、ということです。

    エンコードとかは関係ないです・・・

    うーん、カスタムフィールドの値を投稿スラッグに反映する方法を探すか、上に書いた2つのアプローチを取るか、ですね。すみません。私では役に立ちそうな情報を見つけることができませんでした。

    aki

    (@akistar02)

    ありがとうございます。
    難しいみたいですね・・・

    もう少し待ってみて解答がつかなければ解決済みにしたいと思います。

    aki

    (@akistar02)

    できました!
    投稿のときにフックしてなんとかなりました!

    ご報告有り難うございます! よかったですね!
    そしてお力になれず、すみませんでした。

    よろしければ、解決になった手順やコードなどをこちらに残していただければ、後からこのトピックを見る方の参考になります。よろしくお願いいたします。

    aki

    (@akistar02)

    書きたいのは山々なのですが、私がこれを理解しきれていないので
    それを乗せるのはなぁ・・・という感じです。(問題あるコードでなにかあっては困るという意味で。

    もう少し読み解いてみます。

    すいません・・・・

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • トピック「カスタムフィールドの値をタイトルに反映させたい」には新たに返信することはできません。