web-dev-qa-db-ja.com

階層的なカスタム投稿タイプパーマリンクが機能しない

私は自分のスレッドを投稿することにしたので、何時間もこの問題を抱えている誰かを探しています。

連絡先情報と呼ばれる階層的なカスタム投稿タイプがあります。これを使って、私は情報を含まない親ページと含まれる子ページを持っています。 single-contact-information.phpでは、親を最初の子にリダイレクトするリダイレクトルールを設定しました。これは魅力のように機能します!

しかしながら!ほんの数日前に、チャイルドページが突然私に404を送り始めました!それはページが存在しているようで、そして確かにそれらは両親の子供として設定されています、しかしパーマリンクはうまくいきません。これが私のパーマリンク構造、基本的なものです:

/%year%/%monthnum%/%day%/%postname%/

だから基本的に:

mysite.com/contact-information/parentpage/childpage

動作しますが、

mysite.com/contact-information/childpage

同様にうまくいく

mysite.com/contact-information/parentpage

これはカスタム投稿タイプを作成するためのコードです、それはカスタム投稿タイプUIプラグインからです:

register_post_type('contact-information', array(    'label' => 'Contact info','description' => '','public' => true,'show_ui' => true,'show_in_menu' => true,'capability_type' => 'post','hierarchical' => true,'rewrite' => array('slug' => ''),'query_var' => true,'supports' => array('title','revisions','page-attributes',),'labels' => array (
  'name' => 'Contact info',
  'singular_name' => 'Contact information',
  'menu_name' => 'Contact info',
  'add_new' => 'Add Contact information',
  'add_new_item' => 'Add New Contact information',
  'edit' => 'Edit',
  'edit_item' => 'Edit Contact information',
  'new_item' => 'New Contact information',
  'view' => 'View Contact information',
  'view_item' => 'View Contact information',
  'search_items' => 'Search Contact info',
  'not_found' => 'No Contact info Found',
  'not_found_in_trash' => 'No Contact info Found in Trash',
  'parent' => 'Parent Contact information',
),) );

EDIT:

私は http://themergency.com/generators/wordpress-custom-post-types/ を使って自分自身でCPTを作成しようとしましたが、問題は残りますパーマリンク、私はただ何もわからない!

4
Jonathan

このプラグインをお試しください http://wordpress.org/extend/plugins/custom-post-type-permalinks/
このプラグインを使い始めるまで、私はカスタムタイプのパーマリンクと404エラーについて多くの問題を抱えていました。

1
s976

コードを見る際には、書き換え配列キーを調べたいと思うかもしれません。

'rewrite' => array('slug' => 'contact-information', 'with_front' => true),

これはあなたのカスタム投稿タイプのURLを書き換えます。

ただし、これを機能に追加するときは、パーマリンク構造に移動して、もう一度[保存]をクリックします。何も変更する必要はありませんが、saveを押すと、.htaccessファイルが書き換えられ、WordPressが新しいスラッグを認識するようになります。

もしあなたがこれを商業的または一般公開のために開発していたならば、あなたはいつでもすることができます:

global $wp_rewrite
$wp_rewrite->flush_rules();

これが参照リンクです: http://codex.wordpress.org/Function_Reference/flush_rewrite_rules

カスタム投稿タイプへのリンク。このページの少し下のほうに、書き換えスラッグの設定があります。 http://codex.wordpress.org/Function_Reference/register_post_type

私はWordPressのインストールをもう少し実践したいと思っているので、何が起こっているのかを正確に知っています。

1
Jonathan

投稿タイプとカスタム分類法の階層を作成するために戦い、それからこの素晴らしいコードを見つけました、日付ベースの構造を作るためにそれを使用することができます: https://wordpress.stackexchange.com/a/55366/17048

1
Diana