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

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

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

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

PHP

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

Q&A

解決済

2回答

1063閲覧

WP 特定のカスタム投稿だけ拡張子(.html)を追加

AMK

総合スコア765

WordPress

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

PHP

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

0グッド

0クリップ

投稿2019/10/19 18:30

編集2019/10/20 03:12

customerと言うカスタム投稿で
https://hogehoge.hoge/customer/voice.html
としたいのですが現状
https://hogehoge.hoge/customer/012.html/
となってしまいます。

下記サイトを参考に
https://webcre8tor.com/snippets/custom-post-type-url.html
https://memocarilog.info/wordpress/theme-custom/3909
下記のコードをfunctions.phpに追加したのですが

投稿IDの番号と最後にスラッシュが付いて404エラーになってしまいました。
これをスラッグ.htmlで最後にスラッシュ無しで404エラーを回避するにはどうすればよいでしょうか??

旧コード

php

1add_action('init', 'myposttype_customer_rewrite'); 2function myposttype_customer_rewrite() { 3 global $wp_rewrite; 4 5 $queryarg = 'post_type=customer&p='; 6 $wp_rewrite->add_rewrite_tag('%customer_id%', '([^/]+)',$queryarg); 7 $wp_rewrite->add_permastruct('customer', '/customer/%customer_id%.html', false); 8 9} 10add_filter('post_type_link', 'myposttype_customer_permalink', 1, 3); 11function myposttype_customer_permalink($post_link, $id = 0, $leavename) { 12 global $wp_rewrite; 13 $post = &get_post($id); 14 if ( is_wp_error( $post ) ) 15 return $post; 16 $newlink = $wp_rewrite->get_extra_permastruct($post->post_type); 17 $newlink = str_replace('%'.$post->post_type.'_id%', $post->ID, $newlink); 18 $newlink = home_url(user_trailingslashit($newlink)); 19 return $newlink; 20}

上記コードはスラッグではなく、IDで表示する方法のようなので再度調べて新しくコードを追加

しかし、
https://hogehoge.hoge/%post_tag%/%postname%.html

のようになり、404エラーのままで先に進めないです。

10/20 12:00追記
コードを見直して
https://hogehoge.hoge/customer/voice.html
を表示できるように改良できました

しかし、404エラーになってしまいます。
https://hogehoge.hoge/customer/voice
でアクセスアクセスすると問題なく表示される

10/20 12:05追記
ワードプレス管理画面のパーマーリンク設定の保存ボタンを押したところ
https://hogehoge.hoge/customer/voice.html/
となり
TOPページに飛ばされるようになり
また振り出しに戻ってしまいました・・・

新コード

php

1#バージョンアップ版 2 global $wp_rewrite; 3 $wp_rewrite->use_trailing_slashes=false;//最後のスラッシュ無し 4 $queryarg = 'customer&p=';//クエリ作成 5 $wp_rewrite->add_rewrite_tag('%customer%', '([^/]+)', $queryarg); 6 $customer_struct='/customer/%customer%.html'; 7 $wp_rewrite->add_permastruct('customer', $customer_struct); 8#旧 9global $wp_rewrite; 10 $wp_rewrite->use_trailing_slashes=false;//最後のスラッシュ無し 11 $queryarg = 'post_type=customer&p=';//クエリ作成 12 $wp_rewrite->add_rewrite_tag('%post_tag%', '([^/]+)', $queryarg); 13 $wp_rewrite->add_permastruct('customer', '%post_tag%/%postname%.html', false);

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

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

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

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

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

guest

回答2

0

ベストアンサー

ここ↓

php

1$queryarg = 'customer&p=';//クエリ作成

post_nameで検索しようとしてるのにパラメータがpのまま
post_nameで検索するならパラメータはname

あとpost_typeの指定は旧と同様に必要

投稿2019/10/20 04:35

KazuhiroHatano

総合スコア7804

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

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

AMK

2019/10/20 04:44

助かりました!! ありがとうございます。!!
guest

0

調べたページで見たコードもadd_permastructの第3引数はfalseですか?
codexでは配列のような。

https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/add_permastruct

PHP

1$wp_rewrite->add_permastruct('customer', '%post_tag%/%postname%.html', array());

投稿2019/10/20 01:04

編集2019/10/20 01:06
madone99

総合スコア1855

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

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

AMK

2019/10/20 02:59

ありがとうございます。 コード修正します 今回は特に何も無いので第3引数は指定なしでやってみます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問