web-dev-qa-db-ja.com

タイトルなしのカスタム投稿タイプへの固定リンクを付ける

このように登録された "report"カスタム投稿タイプがあります。

register_post_type(
    'report',
    array(
        'label' => 'Reports',
        'description' => '',
        'public' => true,
        'show_ui' => true,
        'show_in_menu' => true,
        'capability_type' => 'post',
        'hierarchical' => false,
        'rewrite' => array('slug' => ''),
        'query_var' => true,
        'exclude_from_search' => false,
        'supports' => array('custom-fields','comments','author',),
        ...
    )
);

ご覧のとおり、私のreporttitleをサポートしていませんが、custom-fieldscomments、およびauthorのみをサポートしています。

'supports' => array('custom-fields','comments','author',)

投稿のパーマリンクは通常次のようなものですので、注意してください。

http://mywebsitename.com/report/the-title

今私はいつものようになる:

 http://mywebsitename.com/report/auto-draft/

私は "auto-draft"が私のレポートにデフォルトで与えられているタイトルであると思います。私は合理的なパーマリンクを与える方法がわかりません。私はcustom-fieldsに基づいてそれを与えたいと思います。

1
User
I have no idea how to give a reasonable permalink.

それにタイトルを付けなさい。パーマリンク以外にはタイトルを使用する必要はありません。また、ほとんどの場合、ページタイトルでも使用されますが、パーマリンクで既に公開されているため、害はありません。印刷したくない場合は、他の場所に印刷する必要はありません。厄介なことではありませんが、それが明らかな解決策であり、それから多かれ少なかれすべてが適切に機能します。

'title'はあなたが簡単にオプトアウトできるものではありません。たとえば、「編集」画面でレポートをどのように識別しますか?それらすべてはおそらく "自動ドラフト"と言うべきでしょうね。それともかなり近い?ページタイトル - このページでは "プラグインの開発 - へのパーマリンクの付与" - のように見えます - 通常は投稿のタイトルに設定されているか、それから派生しています。このビットはほとんどの検索エンジンの結果に現れるので、これが一般に公開されるのであれば、そこにまともなタイトルが本当に必要です。あなたがパーマリンクを持っているのを見ていなかったらそれは違うだろう。レポートを表示するには独自のインターフェイスを作成する必要がありますが、少なくともいくつかの問題は発生しません。

本当にやりたければ、 save_post フィルタに引っ掛けることでスラッグを手動で設定することができるでしょう。私はそれが管理画面やページタイトルに役立つとは思わない。また、管理編集パネルでスラッグとスラッグを使うこともできるはずですが、それは書くべきより多くのコードです。

タイトルを使用しないというあなたの決定を再考してください。その決断はあなたにかなりの仕事のコストをかけています、そして私はその利益を見ることができません。

1
s_ha_dum