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

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

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

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

PHP

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

Q&A

1回答

996閲覧

wordpressマルチサイト メインサイトカスタム投稿詳細ページの出力

katsuochan

総合スコア8

WordPress

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

PHP

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

0グッド

0クリップ

投稿2020/03/10 11:26

お世話になっております。
現在、会社の案件でマルチサイトでの多言語サイトを作成しております。

マルチサイトの構成

メインサイト
domain.jp

サブサイト
domain.jp/jp 日本語サイト
domain.jp/en 英語サイト
domain.jp/cn 中国語サイト

メインサイトの実態はなく、wordpressにログインしていない状態でメインサイトにアクセスすると、日本語サイトにリダイレクトする仕様です。

また、テーマは
サイト表示用にsitetheme(仮)をサブサイトに
ニュース用にnewsをメインサイトに読み込んでいます

困っていること・実現したいこと

メインサイトにお知らせの言語別カスタム投稿を設け、それぞれ対応する投稿を

  • サブサイトトップ (domain.jp/jp)
  • アーカイブ (domain.jp/jp/news/)
  • 詳細ページ (domain.jp/jp/news/post/)

のように表示したいと考えています。

メインサイトでのお知らせのパーマリンクは当然、
domain.jp/postとなるかと思います。

実態のないメインサイトのカスタム投稿を上記URL構成で出力したいです。
サブサイトトップ・アーカイブに関しては、switch_to_blog(1)でメインサイトの投稿をloopで出力することができます。
しかし、詳細ページがうまくいかず、404表示になります。

試したこと

メインサイトのスラッグをregister_post_type ... rewrite => slugjp/newsとしてみました。
パーマリンク自体は、domain/jp/news/postとなるのですが、細部サイトにpostという投稿は実際には存在していないので、404になります。

ご依頼

当方、駆け出しのwebデザイナーでwordpressの知識が乏しく、解決策が見つかりません。
custom post type permalinkや、リライト設定を変更するだけで実装可能でしょうか。
そもそも検討違いな考えなのでしょうか。
実装方法等、ご存知の方いらっしゃいましたらご教授いただきたく存じます。

何卒よろしくお願い申し上げます。

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

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

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

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

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

marlboro_tata

2020/03/14 03:11

このような構成を希望するからには、諸事情あるのだろうとお察ししますが、 各語のお知らせは、各語のサブサイトで投稿するのが、素直な実装だと思います。 力技でなんとかする方法は、おそらくありますが、無理な実装をするには、知識と経験が必要かとおもいます。
katsuochan

2020/03/15 09:34

経緯に関しまして、 「各語のサブサイトで投稿する」が自然な方法だとは存じております。 ですが、各言語サイトを行き来して投稿するのが煩わしくないか。それならメインサイトにカスタム投稿を儲け、そこで各言語の投稿管理ができれば便利ではないか。 という、テクニカルディレクター兼プロジェクトリーダーの意見です。 また、この仕様で先方に提出しているみたいです。 ディレクター曰く、やり方は結構あるはずだから。。。とのことでした。 力技になるのですが、模索してみます。
guest

回答1

0

実践による検証は行っておりません。あくまでも机上論です。

アイデアとして、言語サイトごとのスタンドアロンと言えるWordePressを別々に構築します。
jp.domain.jp 日本語サイトのWordPressを構築
en.domain.jp 英語サイトのWordPressを構築
cn.domain.jp 中国語サイトのWordPressを構築

次に、シンボリックリンク化します。
domain.jp/jp -----> jp.domain.jp
domain.jp/en -----> en.domain.jp
domain.jp/cn -----> cn.domain.jp

それぞれの .htaccess で、リダイレクトを追記します。
jp.domain.jp/.htaccess を例にすれば追加する構文は:

RewriteCond %{HTTP_HOST} jp.domain.jp RewriteRule ^(.*)$ http://domain.jp/jp/$1 [L]

それぞれのMySQLのテーブルで、「 WP接頭句_options 」の
option_id : 1 と option_id : 2 のデーターを変更する。
例: http://domain.jp/jp/

メリットは、言語サイト分のMySQLを別管理できる。言語サイト毎のHTML先頭の言語宣言を設定できる。言語サイト毎に検索エンジンなどに渡すサイトマップ情報や、言語サイト毎にPING通知を設定できる。

参考:シンボリックリンクWiki

投稿2020/03/18 12:44

編集2020/03/18 18:47
Ujiki.oO

総合スコア27

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問