[WordPress] ワードプレス – page_link フィルター

スポンサーリンク

Question

既定ページの投稿型パーマリンクを変更しようとしている、例えばその最後に「.php」を追加したいと思います:

home_url() . post_name . '.php'

ワードプレスのパーマリンクのページには、私が使っている既にこのようなのでを使用できません:

/%category%/%postname%.php

この既定ページ ポスト種類には影響しません

下記のようにそれをしたので:

function wp_pages_permalink( $permalink, $post_id ) {
    if ( empty( $post_id ) ) return $permalink;

    $post = get_post( $post_id );

    return home_url( $post->post_name . '.php'  );
}

add_filter( 'page_link', 'wp_pages_permalink', 10, 2 );

しかし私は 404 取得 され私はすでにパーマリンクのページにアクセスして書き換えルールをフラッシュ のページを訪問するときです

答え

従ってあなたはちょうどアドレスとリンクの出力を変更したいと思いますが実際のページ変更されない;

だけ $permalink の代わりに $permalink_structure をターゲットのようなものを使用しようとする必要がありますと思う:

function wp_pages_permalink( $permalink_structure, $post_id ) {
    if ( empty( $post_id ) ) return $permalink_structure ;

    $post = get_post( $post_id );

    return ( $permalink_structure . '.php'  );
}

add_filter( 'page_link', 'wp_pages_permalink', 10, 2 ); 

の変更はそれに仕事をする必要がありますので、コードに基づく

とにかくパーマリンクで何が起こるのチェック アウトしたい場合 ( WP_rewrite のクラス) のマニュアルを見てを取る

答え

これら手順を実行しようとすると、:

  1. に拡張子を追加 -> パーマリンク (設定 → パーマリンク) この形式を使用:

    /%post_id%/%postname%.php

  2. 保存

  3. あなたのワードプレスのファイル wp に行く-が含まれています rewrite.php -> し、行 1148年はコードの行を置き換えます。

    $this → page_structure = $this → ルート。’%pagename% ‘;

この 1 つ

$this->page_structure = $this->root . '%pagename%.php';
  1. それを保存し、今試してみてください

http://stackoverflow.com/questions/27432586/wordpress-page-link-filter

スポンサーリンク

Leave a Reply