Cocoonフォーラム

サイト内検索
書き込みの前に以下の3点をご確認ください。
  1. 1つのトピックにつき1つの質問を書き込んでください
  2. 不具合・カスタマイズ対象ページのURLを提示高速化を無効にしてください
  3. 該当部分のキャプチャ・環境情報とともに書き込んでいただけると助かります

何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。

不具合・カスタマイズ対象ページのURL:

相談内容:

不具合の発生手順:

解決のために試したこと:

※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:

※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。

環境情報の取得方法はこちら。
https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
https://wp-cocoon.com/theme-trouble/

フォーラム利用ガイドリンク

  1. フォーラムガイドライン
  2. よくある質問と答え(FAQ)
  3. サポート対象外のケース
  4. 原因不明の不具合用トラブルシューティング
  5. トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw
  6. 真っ白画面でのエラーメッセージの確認方法
  7. ブラウザ環境チェックツール
  8. Cocoonカスタマイズ依頼

フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。

サブディレクトリ構成の作り方がまずいの...
 
共有:
通知
すべてクリア

[解決済] サブディレクトリ構成の作り方がまずいのか、他のサブディレクトリへのブログカードが内部ブログとして処理される

15 投稿
4 ユーザー
10 Reactions
266 表示
(@nihonkai)
Eminent Member Registered
結合: 5か月前
投稿: 20
Topic starter  

先日、「サブディレクトリ構成で、他のサブディレクトリへのリンクブログカードのサムネイルやタイトルが表示されない。」

https://wp-cocoon.com/community/cocoon-theme/%e3%82%b5%e3%83%96%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e6%a7%8b%e6%88%90%e3%81%a7%e3%80%80%e4%bb%96%e3%81%ae%e3%82%b5%e3%83%96%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa/#post-79771

と質問し、Cocoon修正版(2.7.4.8)を作っていただき回復したかと思いましたが、

一部のサブサブディレクトリから、他のサブディレクトリへのブログカードが内部ブログとして処理(internal-blogcard)されサムネイルやタイトルが表示されません。

諸事情で運用中のURLは出せませんが、

サブディレクトリ【A】: https://●●●.org/aaa/wordpress/

サブディレクトリ【B】: https://●●●.org/bbb/wordpress/

サブディレクトリ【C】: https://●●●.org/wordpress/

のようなサブディレクトリ構成で、

【A】から【B】:OK
【A】から【C】:OK
【B】から【A】:OK
【B】から【C】:OK
【C】から【A】:NG
【C】から【B】:NG

【質問】ですが、

サブディレクトリ構成で【C】のようなサブディレクトリはまずいのでしょうか?
それとも、他に問題があるのでしょうか?
宜しくお願いします。


   
引用
mk2
(@mk2_mk2)
Illustrious Member Moderator
結合: 4年前
投稿: 7921
 

nihonkaiさん

ちなみにですけれど。

「設定」-「一般」の以下の2つは、それぞれどういう状態なのでしょうか

  • WordPressアドレス
  • サイトアドレス

   
chu-ya and わいひら reacted
返信引用
mk2
(@mk2_mk2)
Illustrious Member Moderator
結合: 4年前
投稿: 7921
 

先の以下のお問い合わせで、気づいたことがあります。

[解決済] サブディレクトリ構成で 他のサブディレクトリへのリンクブログカードが思うように表示されない。
https://wp-cocoon.com/community/postid/79753/

サブディレクトリ【A】:https ://●●●.org/aaa/wordpress/

サブディレクトリ【B】:https ://●●●.org/bbb/wordpress/

上記のように仰っていますが、これはインストールされていディレクトリで、URLではないみたいです。

ブログカードのリンク先のURLを見ると「/wordpress/」の部分がないです。

<a href="https://●●●.org/bbb/?p=8101" title="" class="blogcard-wrap internal-blogcard-wrap a-wrap cf">

つまり、「/bbb/」のサイトは、以下であるのだと思われます。

  • WordPressアドレス:https ://●●●.org/bbb/wordpress/
  • サイトアドレス      :https ://●●●.org/bbb/

 

もし、今回の【C】がこれと同じ構成だとしたら、以下のような感じに。

  • WordPressアドレス:https ://●●●.org/wordpress/
  • サイトアドレス      :https ://●●●.org/

 

これだと、【A】【B】が外部サイトと判定できないと思います。
(実際のURL=ドメインですので、ドメインを含むURLは、全て自サイト)

WordPressアドレス=サイトアドレスであれば、「/wordpress/」が含まれている分、URLが異なりますから、判定できると思いますけれど。

こういう構成で判定したいのなら、以下辺りに個別対応を入れるしかないのでは・・・。
(「https ://●●●.org/aaa/」「https ://●●●.org/bbb/」を含む場合はfalseにするような)
https://github.com/xserver-inc/cocoon/blob/1d6b6037481da45c511d267452fbbab783d45e2a/lib/blogcard-in.php#L24-L35

こういう構成にした場合、【C】のサイトに「ドメイン/aaa/」「ドメイン/bbb/」というURLが作られてしまう可能性はありますよね、システム的には。
(人間側がそういうことをしないように気をつけるのでしょうけれど)


   
わいひら reacted
返信引用
(@nihonkai)
Eminent Member Registered
結合: 5か月前
投稿: 20
Topic starter  

mk2 さま
ありがとうございます。

ご指摘のように

サブディレクトリ【A】は
WordPress アドレス: https://●●●.org/aaa/wordpress
サイトアドレス; https://●●●.org/aaa

サブディレクトリ【B】は
WordPress アドレス: https://●●●.org/bbb/wordpress
サイトアドレス; https://●●●.org/bbb

サブディレクトリ【C】は
WordPress アドレス: https://●●●.org/wordpress
サイトアドレス; https://●●●.org/

としています。

やはりこれが原因ですか?


   
返信引用
mk2
(@mk2_mk2)
Illustrious Member Moderator
結合: 4年前
投稿: 7921
 

nihonkaiさん

自サイトか外部サイトかを判断するのは、サイトアドレスです。
(それ以外にどうやって?)

自分のURLなのか、そうでないのか。
【C】からみれば、【A】【B】【C】すべてが自サイトと判断されてしまうと思います。

それを回避するには、先に書いたような個別にカスタマイズをしていただく必要があるのではないかと思われます。

只今スマホからですので、これくらいしか、書けないです。


   
わいひら reacted
返信引用
(@nihonkai)
Eminent Member Registered
結合: 5か月前
投稿: 20
Topic starter  

mk2 さま
ありがとうございます。

投稿者:: @mk2_mk2

、以下辺りに個別対応を入れるしかないのでは・・・。
(「https ://●●●.org/aaa/」「https ://●●●.org/bbb/」を含む場合はfalseにするような)
https://github.com/xserver-inc/cocoon/blob/1d6b6037481da45c511d267452fbbab783d45e2a/lib/blogcard-in.php#L24-L35

参考にさせて頂きPHPを編集しましたが、スキル不足のため【A】【B】を内部サイトから外すことはできましたが、URLがリンクテキスト表示になるだけで、外部ブログカードとして表示することはできませんでした。

https://notepad.pw/share/jFVz1icDngmQ32fDJt2N

ありがとうございます。

This post was modified 5か月前 2回 by nihonkai

   
返信引用
chu-ya
(@chu-ya)
Famed Member Registered
結合: 3年前
投稿: 2895
 

●原因

先述の通り。
親ディレクトリの一部として子A、Bが判定され、以下でカードにならない。

https://github.com/xserver-inc/cocoon/blob/11b0ec6abbd6da407110fc5e59fb9725a3274a8b/lib/blogcard-out.php#L17-L20


●対策案

添付頂いたコードの判定ですが、以下で行えばいいのでは?

https://github.com/xserver-inc/cocoon/blob/11b0ec6abbd6da407110fc5e59fb9725a3274a8b/lib/utils.php#L1057-L1067

 


   
わいひら reacted
返信引用
(@nihonkai)
Eminent Member Registered
結合: 5か月前
投稿: 20
Topic starter  

chu-ya さん

ありがとうございます。

投稿者:: @chu-ya

●対策案

添付頂いたコードの判定ですが、以下で行えばいいのでは?

https://github.com/xserver-inc/cocoon/blob/11b0ec6abbd6da407110fc5e59fb9725a3274a8b/lib/utils.php#L1057-L1067

ご指定のPHPを編集し、【A】【B】を外部ブログカードとして表示できました。

https://notepad.pw/share/yIKqVFkiNta7lYiePjUV

ありがとうございました。


   
わいひら and chu-ya reacted
返信引用
chu-ya
(@chu-ya)
Famed Member Registered
結合: 3年前
投稿: 2895
 

@nihonkai さん

Excelなどを用い一覧表とすると、状況が整理でき、文章より、相手に伝わりやすいと思います。

●ご参考

大分古い記事ですが、同様な質問があり。

https://jin-forum.jp/topic/2787/%E3%82%B5%E3%83%96%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AE%E5%86%85%E9%83%A8%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/2

 


   
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17179
 

今回の問題、ttps://cocoon.jp/?p=123 形式のパーマリンクだと、外部リンクだったとしても、url_to_postid関数でポストIDが取得できることに原因があるっぽいです。
https://github.com/xserver-inc/cocoon/blob/11b0ec6abbd6da407110fc5e59fb9725a3274a8b/lib/blogcard-out.php#L17
外部リンクの場合は、url_to_postidは0を返すものと思っていました。実際は、パーマリンクによって異なっていたようです。
なので、?p=123 形式でないパーマリンクに設定すると、PHPをカスタマイズせずともたぶん大丈夫になるように思います。
URLからポストIDがわかるようにするなら ttps://cocoon.jp/archives/123 形式にするとか。

This post was modified 5か月前 by わいひら

   
返信引用
(@nihonkai)
Eminent Member Registered
結合: 5か月前
投稿: 20
Topic starter  

chu-ya さん
わいひら さん

ありがとうございます。

chu-ya さん
たしかにExcelのような表現にしたら分かりやすいですね。

chu-ya さん
が書いておられるように、
親 子A 子B と言うような構成としています。

わいひら さん

投稿者:: @yhira

?p=123 形式でないパーマリンクに設定すると、PHPをカスタマイズせずともたぶん大丈夫になるように思います。
URLからポストIDがわかるようにするなら ttps://cocoon.jp/archives/123 形式にするとか。

わいひらさん
が書かれておられるように、/?p=123 形式のパーマリンクにしています。
/archives/123 形式で試しましたが、PHPをカスタマイズせずとも正常に表示されました。

そもそも、このようなサブディレクトリ構成は推奨されないと言うことでしょうか?

This post was modified 5か月前 by nihonkai

   
返信引用
(@nihonkai)
Eminent Member Registered
結合: 5か月前
投稿: 20
Topic starter  

mk2さん
chu-yaさん
わいひらさん

長い間(3~4年)悩んでいた問題が解決し、清々しい気分です。
ありがとうございました。
今後ともよろしくお願いします。


   
わいひら and chu-ya reacted
返信引用
chu-ya
(@chu-ya)
Famed Member Registered
結合: 3年前
投稿: 2895
 

@nihonkai さん

私は、マルチディレクトリなどの運用をしておらず。
Cocoonの仕組みで、こちらこそ、勉強させて頂きました。


   
返信引用
mk2
(@mk2_mk2)
Illustrious Member Moderator
結合: 4年前
投稿: 7921
 

nihonkaiさん

投稿者:: @nihonkai

そもそも、このようなサブディレクトリ構成は推奨されないと言うことでしょうか?

何が正しいのかは、私も正直分かりません。

私は、サブディレクトリ形式では、運用したことがないです。
(サブドメイン形式にしています)

あくまでも、私の好みの問題ですけれど。
今回のようなケースであれば、私なら親もサブディレクトリ形式します。
理由は、先に書いた通りです。

投稿者:: @mk2_mk2

こういう構成にした場合、【C】のサイトに「ドメイン/aaa/」「ドメイン/bbb/」というURLが作られてしまう可能性はありますよね、システム的には。
(人間側がそういうことをしないように気をつけるのでしょうけれど)

システム的に、同一のURLが作れてしまう構成にはしたくないというだけですけれど。
(パーマリンク設定に依るのかもしれないですけれど)

ディレクトリ構成自体は、サブディレクトリだろうとサブドメインだろうと同じです。
URLがどうなるのかが、問題なのかなと思います。

同一サーバーにインストールした場合、親ドメイン直下に親のものと、子のサブディレクトリが混在するのも好みではないです。
(URLではなく、サーバーのディレクトリ構成の話です。nihonkaiさんの場合は「wordpress」までありますから、そんなに混乱しないと思いますけれど)

あくまでも私見であり、私の好みの問題でしかないです。
1つの意見ということで。


   
わいひら reacted
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17179
 

投稿者:: @nihonkai

そもそも、このようなサブディレクトリ構成は推奨されないと言うことでしょうか?

もちろんサイト構造は運営者の自由ではありますが、個人的には構造的にややこしくなる以上あまり好みではありません。
訪問記者からしても ttps://●●●.org/aaa というURLは ttps://●●●.org/ と同じWordPressで動いている同一サイトと勘違いされる方も多いかと思います。


   
返信引用
共有:

問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。

また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。

「いいね!」機能はフォーラム登録者のみが利用できる機能です。

CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。

フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。

最近の書き込みはこちら。

詳細なカスタマイズ依頼をするならこちら。

タイトルとURLをコピーしました