質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

2回答

4627閲覧

wordpressにて固定ページの特定のページのみ「.html」を付ける方法を教えて下さい。

alan01

総合スコア11

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2016/03/17 10:46

編集2016/03/17 10:48

wordpressにて固定ページの特定の部分のページのみ「.html」を付ける方法を教えて下さい。

あまりないケースだと思いますが、このようにするしかない状況になってしまい、
困っております。

固定ページ全部に「.html」を付けるのは以下のソースをfunction.phpに貼り付ければ出来るのですが、ある特定のページだけ「.html」を付ける方法がわかりません。

add_action( 'init', 'mytheme_init' ); if ( ! function_exists( 'mytheme_init' ) ) { function mytheme_init() { global $wp_rewrite; $wp_rewrite->use_trailing_slashes = false; $wp_rewrite->page_structure = $wp_rewrite->root . '%pagename%.html'; // flush_rewrite_rules( false ); } }

けっこう調べたり、試したりしてみましたが、結局実装できない状況でいます。

回答頂けると非常に助かります。

よろしくお願いいたします!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

回答頂いた方法で試しましたが、階層を既にある固定ページに下にしないといけなかったため、それが出来ませんでした。

もう一度いろいろ実装方法を探してみたらまさしく思い描いてたようなプラグインがありました。

https://wordpress.org/plugins/custom-permalinks/

こちらで無事解決できました!!

投稿2016/03/24 02:25

alan01

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

十分検証できていないのですが、

php

1function mytheme_init() { 2 global $wp_rewrite; 3 $wp_rewrite->add_permastruct('my_static_pages', 4 /* $wp_rewrite->root . */ '/static/%pagename%.html', 5 false);

とすることで、http://wp.example.com/static/about.html でスラッグが abount の固定ページが見られます。
このままだと、すべての固定ページが /static/%pagename%.hmtl で見られるようになってしまいます(元の http://wp.example.com/%pagename% でもアクセスできる)。

####カスタムポストタイプ
もし、「html をつけたい固定ページ」を「固定ページ (page)」以外のポストタイプにしてよいなら、たとえば「staticpage」というカスタムポストタイプを作り、「html つきでアクセスして欲しい固定ページ」はすべて staticpage にすればよいと思います。

php

1function mytheme_init() { 2 global $wp_rewrite; 3 $wp_rewrite->add_rewrite_tag('%spagename%', '([^/]+)', 'post_type=staticpage&p='); 4 $wp_rewrite->add_permastruct('staticpage', '/static/%spagename%.html', false); 5}

####カスタムフィールド
「html をつけたい固定ページ」に対して専用のポストタイプをつけられない場合は、カスタムフィールドが使えるかもしれません。
ルーティングについてはいちばん最初に挙げたコードのように指定しておき、固定ページ表示用の page.php の中でカスタムフィールド、たとえば my_static_page が定義されているかチェック、もし定義されていなければ 404 を返す、と。

投稿2016/03/17 17:28

unau

総合スコア2468

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

alan01

2016/03/18 08:52 編集

カスタムポストタイプを固定ページとして扱えるのでその方法が良いかもしれません! その発想はありませんでした...ありがとうございます! 一度試してみます! 無事実装できましたらまたご連絡いたします!
alan01

2016/03/24 02:27

自己解決の回答でも書きましたが、結局良いプラグインを発見することができました! 頂いたアドバイスのおかげでなんとか無事に解決できました、ありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問