サポート » 使い方全般 » カスタム投稿のパーマリンクを、デフォルトの投稿と同じ構造にしたい・

  • 解決済 kozou

    (@kozou)


    WPを勉強している素人です。いつもご指導ありがとうございます。
    早速ですが、デフォルトの投稿とは別に、カスタム投稿タイプを
    一つ作成しているのですが、カスタム投稿のパーマリンク設定がうまく行きません。

    具体的には、デフォルトの投稿タイプのパーマリンクをカスタム構造設定から
    「/%year%/%monthnum%%day%%hour%%minute%%second%.html」
    としてみて、デフォルト投稿の記事には、上記のURLが振られるのですが
    カスタム投稿タイプもこれと同じにしたいのですが

    カスタム投稿のリンクは、勝手に
    http://sample.jp/wp/sample_category/日本語のタイトル名」
    となってしまいます。
    (sample.jpは便宜上の表現です、また・・/wp/・・はwpディレクトリを作り
    そこにwpを入れて勉強しているためです)

    これをデフォルト投稿と同じタイプのパーマリンクにしたいのですが
    functions.php にどのように手を加えれば良いのでしょうか?

    ちなみに、デフォルトの投稿のパーマリンク設定を「デフォルト」に戻すと
    カスタム投稿のパーマリンクは
    「http://sample.jp/wp/?post_type=sample&p=514 」
    になります。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • そういうものです。
    なので、プラグインなどで回避します。

    custom-post-permalinks
    http://wordpress.org/extend/plugins/custom-post-permalinks/

    などを使うと良いでしょう。

    トピック投稿者 kozou

    (@kozou)

    kvex様、いつもご指導ありがとうございます。
    ピンポイントなプラグインを紹介して頂き、誠にありがとうございます。

    試してみまして、カスタム投稿のパーマリンクを思い通りに
    「/%year%/%monthnum%%day%%hour%%minute%%second%.html」
    とする事が出来ました。

    しかし、残念な事に、記事自体が表示されなくなってしまいました。

    ネット上の情報など参考に、色々と試してみてはいるのですが
    うまく行っておりません。色々と試した結果、現状functions.phpは
    以下のようになっております。(このままでは、うまく表示されません)

    お時間尾のある時にでもご指導頂けると大変ありがたいです。
    どうかよろしくお願い致します。

    —————————————————–

    add_action( ‘init’, ‘create_post_type’ );
    function create_post_type() {

    //カスタム投稿

    register_post_type(
    ‘SAMPLE’,
    array(
    ‘label’ => ‘カスタム投稿’,
    ‘public’ => true,
    ‘hierarchical’ => false,
    ‘query_var’ => false,
    ‘supports’ => array(
    ‘title’,
    ‘editor’,
    ‘thumbnail’,
    ‘custom-fields’
    )
    )
    );

    global $wp_rewrite;
    $wp_rewrite->flush_rules();

    //ここまで

    //カスタムタクソノミー

    register_taxonomy(
    ‘TAXONOMY’,
    ‘SAMPLE’,
    array(
    ‘label’ => ‘タクソノミー’,
    ‘hierarchical’ => true,
    )
    );

    $wp_rewrite->flush_rules();

    //ここまで
    }

    遅くなってもうしわけございません。雪が・・・

    もうちょっと単純なパーマリンクだとどうですか?
    あと、記事が表示されないという状態の時、urlがおかしいというようなことはありませんか?

    トピック投稿者 kozou

    (@kozou)

    >>遅くなってもうしわけございません。雪が・・・

    私のようなド素人の事を、わざわざ気に掛けて下さり
    誠にありがとうございます。

    大変情けない話なのですが、昨日も色々と気合を入れて思考錯誤おりましたが
    ネット上の情報を参考にfunctions.php に

    ‘rewrite’ => array( ‘slug’ => ‘whats_new’, ‘with_front’ =>false ),

    と追加した所、ログインが出来なくなってしまい、
    wp-login.php や pluggable.php の一部がおかしいと言うようなメッセージが
    沢山出てきてしまい、再度ファイルのアップロード等してみましたが
    私の手には負えず結局インストールからやり直して
    現在急ぎ復旧しております。本日も仕事終わりに頑張りたいと思います。

    ちなみに、おかしくなる前に、URLも色々なタイプに変えてみましたが
    URLは狙い通り、正常に表示されるのですが、記事が表示されない状態でした。

    またお時間ある時にでも、ご指導頂けると大変ありがたいです。
    急いで復旧致します。ありがとうございます。

    既存の投稿(post)とカスタム投稿で別々の rwrite_rule がつくられるので、同じにするとダブってしまうことになるので、まったく同じ構造にするのは無理だと思います。(多分)

    なので、URLは生成できても404を返すのは、既に登録されているルールを元に、当該URLの “post” を探しに(?)行っているからだと思われます。(恐らく)

    何らかの接続語(ポストタイプの名前など)を加えれば問題ないはずです。(場所はどこでも)

    /post_type_name/%year%/%monthnum%%day%%hour%%minute%%second%.html
     ┗ http://example.com/sample/2011/0215175645.html

    解決策があるかもですけど(あったら僕も知りたい)、もしURLの形式にこだわるなら、カテゴリーなどで分けたほうが無難です。

    トピック投稿者 kozou

    (@kozou)

    kvex様、LVP8様、ご指導本当にありがとうござます。

    昨晩から復旧作業をインストールからやり直したのですが
    エラーメッセージが連発して、思いのほか時間が掛かってしました。

    まだWPの挙動が不安定な気もするのですが、ひとまず8割~9割の
    復旧が完了致しました。

    結論から申し上げまして、LVP8様のご指導の通りしてみました所
    カスタム投稿のパーマリンクも、記事自体もうまく表示されました!!
    ありがとうございます。

    ただ、まだ全ての状況で試した訳ではありませんので、今一度
    検証したのち、ご報告させて頂きます。
    取り急ぎお礼とご報告までさせて頂きます。
    お二人様、本当にありがとうございます。

    トピック投稿者 kozou

    (@kozou)

    報告が遅くなり申し訳ございません。
    ほぼ完全に復旧し、試しておりますが
    パーマリンクも狙い通り出来ました!!

    私のような素人が書くのも恐縮ですが、私のような素人さんのために
    簡単にまとめを書かせて頂きます。

    カスタム投稿タイプのパーマリンクを変更したい場合
    kvex様からご指導頂いた

    「custom-post-permalinks」
    http://wordpress.org/extend/plugins/custom-post-permalinks/

    がピンポイントでやりたい事が出来てよい感じでした!

    ただし、デフォルトの投稿と全く同じ構造のパーマリンクでは無理?ぽいです。
    なのでLVP8様からご指導頂いたように

    /post_type_name/%year%/%monthnum%%day%%hour%%minute%%second%.html

    のようにカテゴリーを付けたしたりして、デフォルトの投稿で
    設定したパーマリンクとは違いを持たさなくてはならないみたいです。

    kvex様、LVP8様、ご指導本当にありがとうございました。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「カスタム投稿のパーマリンクを、デフォルトの投稿と同じ構造にしたい・」には新たに返信することはできません。