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

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

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

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

Q&A

2回答

2855閲覧

Wordpressの投稿記事を同期しつつ、ドメイン(もしくはディレクトリ)毎で表示される記事を出し分けたい

yutaka_yanagi

総合スコア12

WordPress

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

0グッド

0クリップ

投稿2019/05/27 09:37

前提・実現したいこと

この度、今まで制作したサイトの制作実績サイトを作成しているのですが、
Aさん担当クライアント用、Bさん担当クライアント用、社内用と記事の表示一覧が3つ必要なので、
メインのWordpressを更新すると他のwordpressの投稿記事も同期されるような仕組みはないでしょうか。

理想は

〇〇A.exmaple.jp
〇〇B.exmaple.jp
〇〇C.exmaple.jp

上記の様にサブドメイン(もしくはディレクトリ)毎で表示される記事を出し分けたいです。

試したこと

1.Wordpressのマルチサイト化
→投稿記事はそれぞれでのドメイン(サイト)で別々になってしまい、一つのサイトで投稿した記事を他のサイトで共通して表示することは難しそうでした。

2.All-in-One WP Migrationというプラグインで記事を毎回サイトで同期する
→サイトが増えると手間がかかるのと、記事テンプレートPHPも同期されてしまうとのことで、断念しました。

3.カスタムタクソノミーをAさん担当クライアント用、Bさん担当クライアント用、社内用で設定して、タクソノミーに応じた記事一覧のテンプレートを制作
→詳細ページで別で設定したカテゴリ(例: デザイン/コーディング)をクリックすると、そのカテゴリ(例:デザイン)の記事が全て表示された一覧ページになってしまうのと、ディレクトリなどでページが分けられていないためBassic認証をかけられず、他のタクソノミーのURLを知っていれば他のタクソノミーの一覧を見ることが可能になってしまうので断念しました。

ご教示のほど、何卒よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

1つのWordPressサイトから複数WordPressサイトに同時投稿するプラグインですが...

あたりはどうでしょうか?

投稿2019/05/27 11:15

編集2019/05/27 11:17
CHERRY

総合スコア25171

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

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

yutaka_yanagi

2019/06/14 08:08

ご回答ありがとうございます。 試しに入れさせていただきました。 私は現在カスタム投稿で記事を作成しており、カスタム投稿の同期は追加の有料オプションのようですので、まだ試せておりませんが、こちらを使えばうまく行きそうな気がしております。 一つうまくいきそうな方法をご教示いただき、非常にありがたいです。 こちらを第一候補にしつつ、無料でできる方法がないかも一応模索してみます。
guest

0

3.カスタムタクソノミーをAさん担当クライアント用、Bさん担当クライアント用、社内用で設定して、タクソノミーに応じた記事一覧のテンプレートを制作
→詳細ページで別で設定したカテゴリ(例: デザイン/コーディング)をクリックすると、そのカテゴリ(例:デザイン)の記事が全て表示された一覧ページになってしまうのと、ディレクトリなどでページが分けられていないためBassic認証をかけられず、他のタクソノミーのURLを知っていれば他のタクソノミーの一覧を見ることが可能になってしまうので断念しました。

一つの WordPress サイトでカスタム投稿タイプ(デフォルトの投稿でも可)を作成し、Basic 認証によりその投稿のうち一部だけを閲覧できるようにする、というのであれば、カスタムタクソノミーと pre_get_posts アクションを利用することで可能だと思います。

例えば work というカスタム投稿タイプと client というカスタムタクソノミーを作成し、client カスタムタクソノミーに [ターム名] / [タームスラッグ] が

  • foo client / foo-client
  • bar client / bar-client
  • baz / baz

というタームを作るとします。また coding、design というスラッグのカテゴリーがあるものとします。pre_get_posts アクションで

  • /client/foo-client/(タクソノミーアーカイブ)
  • /client/bar-client/(タクソノミーアーカイブ)
  • /client/baz/(タクソノミーアーカイブ)
  • /category/coding(コーディングカテゴリーのアーカイブ)
  • /category/design(デザインカテゴリーのアーカイブ)
  • /work/ (has_archive => true の場合のカスタム投稿タイプのアーカイブ)
  • /work/%postname%(カスタム投稿タイプの投稿ページ)

へのクエリの場合に Basic 認証をかけ、Basic 認証のユーザー名をタクソノミークエリのターム名として使用すれば、

  • foo client と baz タームをもつカスタム投稿タイプの投稿 => foo-client か baz というユーザー名でBasic認証した場合にのみ、アーカイブ/記事ページに投稿が表示される
  • baz タームのみをもつカスタム投稿タイプの投稿 => baz というユーザー名で Basic 認証した場合にのみ、アーカイブ/記事ページに投稿が表示される

ということが可能になると思います。コードにするとおよそこのような形です(細かいテストまではしていません)。

php

1<?php 2 3add_action( 'pre_get_posts', function( $query ) { 4 if ( $query->is_admin ) { 5 return false; 6 } 7 8 $is_client_tax = $query->get( 'client' ); 9 $is_post_type_work = 'work' === $query->get( 'post_type' ); 10 $is_category = $query->is_category; 11 $is_coding_category = $is_category && 'coding' === $query->get( 'category_name' ); 12 $is_design_category = $is_category && 'design' === $query->get( 'category_name' ); 13 14 if ( $is_client_tax || $is_post_type_work || $is_coding_category || $is_design_category ) { 15 $users = array( 16 // タクソノミーのターム名を Basic 認証のユーザー名にしておく. 17 'foo client' => 'password for foo client', 18 'bar client' => 'password for bar client', 19 'baz' => 'password for baz', 20 ); 21 22 // https://www.webantena.net/wordpress/functions-php-basic-auth-custom-post-type/ の basic_auth を参照. 23 $basic_auth_username = basic_auth( $users ); 24 25 $tax_query = array( 26 array( 27 'taxonomy' => 'client', 28 'field' => 'name', 29 'terms' => $basic_auth_username, 30 ), 31 ); 32 33 $query->set( 'tax_query', $tax_query ); 34 $query->set( 'post_type', array( 'work' ) ); 35 } 36} );

投稿2019/06/15 12:44

YukiYamashina

総合スコア1011

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問