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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

0回答

1547閲覧

Wordpressでカスタム投稿タイプのみ「.html」をつけた場合、管理画面でのパーマリンクの編集ボタンが表示されない。

sonic_cat65

総合スコア8

WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/09/20 02:51

編集2022/01/12 10:55

Wordpressでカスタム投稿タイプのみ「.html」をつけた場合、管理画面でのパーマリンクの編集ボタンが表示されない。

パーマリンクの設定を
http://ドメイン名/%postname%/
と設定しています。

そこにカスタム投稿タイプのみ最後が.htmlになるように下記のような設定をしています。

php

1<?php 2add_action('rewrite_rules_array', 'rewrite_rules'); 3function rewrite_rules($rules) { 4 $new_rules = array(); 5 $new_rules['[カスタム投稿タイプ名]/(.+?).html$'] = 'index.php?post_type=use&name=$matches[1]'; 6 return $new_rules + $rules; 7} 8 9add_filter('post_type_link', 'custom_post_permalink',10,2); 10add_filter('post_link', 'custom_post_permalink',10,2); 11// for cpt post_type_link (rather than post_link) 12function custom_post_permalink ($link,$post) { 13 global $dump; 14 $dump = $link; 15 if($post->post_type === [カスタム投稿タイプ名]) { 16 return home_url() . '/' . $post->post_type . '/' . $post->post_name . '.html'; 17 } else { 18 return $link; 19 } 20} 21 22add_filter('redirect_canonical', 'remove_redirect_canonical',10,2); 23function remove_redirect_canonical($redirect_url,$requested_url) { 24 if(is_singular([カスタム投稿タイプ名]))) { 25 return $requested_url; 26 } else { 27 return $redirect_url; 28 } 29} 30 31?>

参考
https://wordpress.stackexchange.com/questions/59024/add-html-dot-html-extension-to-custom-post-types

しかし、この状態では管理画面でパーマリンクの右の「編集」ボタンが表示されなくなります。
スラッグ入力欄にスラッグ名を入れればOKなので、問題なくパーマリンクの設定などはできます。

パーマリンクの設定で%postname%を入れると編集ボタンが表示されるので単純に下記のように変更しましたら、編集ボタンは表示されました。

php

1 //return home_url() . '/' . $post->post_type . '/' . $post->post_name . '.html'; 2//↓変更 3return home_url() . '/' . $post->post_type . '/' . '%postname%' . '.html';

しかし今度はパーマリンクの箇所をクリックするとURLが
http://ドメンン名/カスタム投稿タイプ名/%postname%.html
となりbad requestになってしまいます。

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

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/09/24 05:20

で、結局、何の質問?タイトルと本文よく読んでみ?
sonic_cat65

2018/09/24 09:09

とりあえずタイトル変えました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問