【BizVektor】お知らせ のトップのURLを任意のものに変更したい
-
【BizVektor】(Version 1.8.23)の子テーマを作成して使っています。
トップページに投稿系のリストを表示したいと思っています。
外観 > テーマオプション の お知らせ で、
[お知らせのトップのURL] が初期設定で、
ドメイン/info/
となっていますが、これを任意のものに変更する場合はどうすればよいでしょうか?
たとえば、
お知らせ → News
に変更して使いたい場合、
やはり、カテゴリーのトップは、
ドメイン/info/ のままではなく、
ドメイン/news/ としたいわけです。
[お知らせのトップのURL]欄に
/ドメイン/news/ としても、反映されないようでしたので、
質問させていただきました。よろしくお願いいたします。
-
こんにちは、@kenkurihara さん。
テーマのソースを確認した所、バグ?っぽいです。
修正される迄の間、以下に示すソースコードのプラグインを作成し、管理画面から有効化させればURLが変更されます。- wp-content/plugins/直下にbizvektor-hackというディレクトリを作成する。
- wp-content/plugins/bizvektor-hack/直下にbizvektor-hack.phpを作成
- wp-content/plugins/bizvektor-hack/bizvektor-hack.phpに以下のソースコードを貼り付ける
- 管理画面でBizVektor Hackというプラグインを有効化
- パーマリンク設定画面で、内容は何も変更せず[変更を保存]をクリック
<?php /** * Plugin Name: BizVektor Hack * Plugin URI: http://example.com/ * Description: . * Version: 1.0.0 * Author: Your name * Author URI: http://example.com/ * License: GPLv2 or later * Text Domain: bizvektor-hack */ /** * Change the post type args. * * @param array $args Array of arguments for registering a post type. * @param string $name Post type key. * * @return array */ function bizvektor_hack_register_post_type_args( $args = array(), $name = '' ) { $theme = wp_get_theme(); $theme_name = $theme->get( 'Name' ); if ( 'info' === $name && 'BizVektor' === $theme_name ) { $info_top_url = esc_html( bizVektorOptions( 'infoTopUrl' ) ); $info_top_url = wp_parse_url( $info_top_url ); $post_type_slug = str_replace( '/', '', $info_top_url['path'] ); $args['rewrite'] = array( 'slug' => sanitize_key( $post_type_slug ), 'with_front' => false, ); } return $args; } add_filter( 'register_post_type_args', 'bizvektor_hack_register_post_type_args', 10, 2 );
※注意: 環境やお知らせのトップのURLに指定したURLに寄ってはエラーが出る可能性がありますの、ローカル環境などで動作確認を行ってください。
マルチポスト
http://goo.gl/1vaH5V@kuck1u さん、返信ありがとうございます。
マルチポストのご指摘ありがとうございます。
気をつけます。さて、教えていただいた方法で、該当プラグインを当てたのですが、
私の環境では、やはり状況は変わらなかったです。★設定 > パーマリンク設定
カスタム構造: /%category%/%post_id%.html■お知らせ
◎トップURL設定: /ドメイン名/news/
◎結果:/ドメイン名/info/ポスト名[日本語]■ブログ
◎トップURL設定#1: なし(空欄)
◎結果:/ドメイン名/カテゴリー名[英スラッグ]/ポストID[数字、シリアル値]
※カテゴリーを選択していない場合でも、いずれかのカテゴリーが選ばれる。
——-
◎トップURL設定#2: /ドメイン名/topics/
◎結果:/ドメイン名/カテゴリー名[英スラッグ]/ポストID[数字、シリアル値]———-
どこか、設定を謝っている箇所、ありますでしょうか?@kenkurihara さん。
ごめんなさい。僕の初歩的ミスです。BizVektor Hackを以下のソースコードに変更してみてください。
<?php /** * Plugin Name: BizVektor Hack * Plugin URI: http://example.com/ * Description: . * Version: 1.0.0 * Author: Your name * Author URI: http://example.com/ * License: GPLv2 or later * Text Domain: bizvektor-hack */ /** * Change the post type args. * * @param array $args Array of arguments for registering a post type. * @param string $name Post type key. * * @return array */ function bizvektor_hack_register_post_type_args( $args = array(), $name = '' ) { $template = get_option( 'template' ); if ( 'info' === $name && 'biz-vektor' === $template ) { $info_top_url = esc_html( bizVektorOptions( 'infoTopUrl' ) ); $info_top_url = wp_parse_url( $info_top_url ); $post_type_slug = str_replace( '/', '', $info_top_url['path'] ); $args['rewrite'] = array( 'slug' => sanitize_key( $post_type_slug ), 'with_front' => false, ); } return $args; } add_filter( 'register_post_type_args', 'bizvektor_hack_register_post_type_args', 10, 2 );
-
この返信は8年、 7ヶ月前に
kuck1uが編集しました。
@kuck1u さん
ご返信ありがとうございます。
結果として、以下のようになりました(惜しい!)。
—————————-
★おわび: このトピックで、「ドメイン名」としてきたのは、
一般的には「サブディレクトリ」と呼ばれるものでした。誤解を招く表記ですみません。
—————————-■お知らせ
◎トップURL設定: /ドメイン名/サブディレクトリ名/news/
◎結果: /ドメイン名/サブディレクトリ名/サブディレクトリ名news/ポスト名[日本語]となってしまいます。
ブログと違い、ポスト名も%post_id%.html(ポストID[数字、シリアル値)にならないのも、
なにかの設定エラーでしょうか? それとも、そもそも、お知らせは パーマリンク設定のカスタム構造 に準じないのでしょうか?@kenkurihara さん。
度々すみません。スラッシュを強制削除しているので、サブディレクトリに対応していのは気づいていたのですが
ドメイン/news/ としたいわけです。
とあったのと、バグ?が修正されるまでの間に合わせなので、大丈夫かな…と思っていました(言い訳)。以下のソースで大丈夫だと思います。
<?php /** * Plugin Name: BizVektor Hack * Plugin URI: http://example.com/ * Description: . * Version: 1.0.0 * Author: Your name * Author URI: http://example.com/ * License: GPLv2 or later * Text Domain: bizvektor-hack */ /** * Change the post type args. * * @param array $args Array of arguments for registering a post type. * @param string $name Post type key. * * @return array */ function bizvektor_hack_register_post_type_args( $args = array(), $name = '' ) { $template = get_option( 'template' ); if ( 'info' === $name && 'biz-vektor' === $template ) { $info_top_url = esc_html( bizVektorOptions( 'infoTopUrl' ) ); $info_top_url = wp_parse_url( $info_top_url ); $info_top_url_path = strtolower( $info_top_url['path'] ); $post_type_slug = preg_replace( '/[^a-z0-9_\-\/]/', '', $info_top_url_path ); $post_type_slug = trim( $post_type_slug, '/' ); $args['rewrite'] = array( 'slug' => $post_type_slug, 'with_front' => false, ); } return $args; } add_filter( 'register_post_type_args', 'bizvektor_hack_register_post_type_args', 10, 2 );
ブログと違い、ポスト名も%post_id%.html(ポストID[数字、シリアル値)にならないのも、
なにかの設定エラーでしょうか? それとも、そもそも、お知らせは パーマリンク設定のカスタム構造 に準じないのでしょうか?これは、話題が変わってしまうので、別スレにした方がいいと思います(次回からで大丈夫です)。
答えとしては、Custom Post Type Permalinksというプラグインをインストールすると、
%post_id%.html
にすることができます。Custom Post Type Permalinksをインストールすると、パーマリンク設定に新たに項目が追加されているはずなので、そこに%post_id%.html
を入力して、[変更を保存]をクリックすればいいです。@kuck1u さん
なんどもすみません(でも、あと少しだと思います)。
いただいたソースでBizVektor Hackを更新したら、
以下のようになってしまいました(泣)■お知らせ
◎トップURL設定: /ドメイン名/サブディレクトリ名/news/
◎結果: /ドメイン名/サブディレクトリ名/サブディレクトリ名/news/ポスト名[日本語]
———-
※/サブディレクトリ名/サブディレクトリ名/ とサブディレクトリが二つ続いてしまう。ポストIDの件は、別スレにしたいと思います。
標準のパーマリンク設定が機能していないことになりますね。@kenkurihara さん。
度々すみません。以下で大丈夫じゃないかと思います。たぶん。
※普段、WordPressをサブディレクトリにインストールしないので、その辺りを失念しておりました。<?php /** * Plugin Name: BizVektor Hack * Plugin URI: http://example.com/ * Description: . * Version: 1.0.0 * Author: Your name * Author URI: http://example.com/ * License: GPLv2 or later * Text Domain: bizvektor-hack */ /** * Change the post type args. * * @param array $args Array of arguments for registering a post type. * @param string $name Post type key. * * @return array */ function bizvektor_hack_register_post_type_args( $args = array(), $name = '' ) { $template = get_option( 'template' ); $home_url = wp_parse_url( home_url() ); if ( 'info' === $name && 'biz-vektor' === $template ) { $info_top_url = esc_html( bizVektorOptions( 'infoTopUrl' ) ); $info_top_url = wp_parse_url( $info_top_url ); $info_top_url_path = strtolower( $info_top_url['path'] ); $post_type_slug = preg_replace( '/[^a-z0-9_\-\/]/', '', $info_top_url_path ); if ( isset( $home_url['path'] ) ) { $home_url_path = ltrim( $home_url['path'], '/' ); $post_type_slug = str_replace( $home_url_path, '', $post_type_slug ); } $args['rewrite'] = array( 'slug' => trim( $post_type_slug, '/' ), 'with_front' => false, ); } return $args; } add_filter( 'register_post_type_args', 'bizvektor_hack_register_post_type_args', 10, 2 );
@kuck1u さん
たびたびすみません。ありがとうございます。
現状、以下のようになりました。
おかげさまで、サブディレクトリ名のディレクトリが続くことは解消されました。■お知らせ
◎トップURL設定: /ドメイン名/サブディレクトリ名/news/
◎結果: /ドメイン名/サブディレクトリ名/news/ポスト名[日本語]
—————-いろいろ直してもらっていただいて恐縮なのですが、
私の方でパーマリンク設定を以下のように変更しました。【変更前】
★設定 > パーマリンク設定
カスタム構造: /%category%/%post_id%.html【変更後】
★設定 > パーマリンク設定
カスタム構造: /%post_id%.html———
こうしないと、以下のようになります。◎結果: /ドメイン名/サブディレクトリ名/news/ブログの任意のカテゴリ名(IDが最も若いカテゴリ)/ポスト名[日本語]
なぜか、 [お知らせ] ではなく、 [ブログ]のカテゴリが入ってしまいます。
Custom Post Type Permalinks と パーマリンク設定を
もういちど見直してみます。——
いろいろとお手数おかけしてすみません。
ありがとうございます。@kenkurihara さん
◎結果: /ドメイン名/サブディレクトリ名/news/ブログの任意のカテゴリ名(IDが最も若いカテゴリ)/ポスト名[日本語]
この部分は再現できないので何とも言えないのが、すくなくともBizVektor Hackが影響しているわけではなく、別の何かだと思います。例えば、他のプラグインやカスタマイズしたテーマなど。原因の特定方法として、以下になると思います。
- BizVektor Hack、Custom Post Type Permalinks、WP Multibyte Patch以外のプラグインを無効化する
- テーマをカスタマイズしていないノーマルなBizVektorにする
1で現象が解消した場合は、どれかのプラグインが影響しているので、1つ1つ有効化していって、現象が発生するプラグインを特定。1で解消しない場合は、2を試す。
-
この返信は8年、 6ヶ月前に
kuck1uが編集しました。
- トピック「【BizVektor】お知らせ のトップのURLを任意のものに変更したい」には新たに返信することはできません。