サイト内検索
Cocoonフォーラム
![](https://wp-cocoon.com/wp-content/themes/cocoon-master/screenshot.jpg)
書き込みの前に以下の3点をご確認ください。
何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。
不具合・カスタマイズ対象ページのURL:
相談内容:
不具合の発生手順:
解決のために試したこと:
※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。
環境情報の取得方法はこちら。
→ https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
→ https://wp-cocoon.com/theme-trouble/
フォーラム利用ガイドリンク
- フォーラムガイドライン
- よくある質問と答え(FAQ)
- サポート対象外のケース
- 原因不明の不具合用トラブルシューティング
- トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw)
- 真っ白画面でのエラーメッセージの確認方法
- ブラウザ環境チェックツール
- Cocoonカスタマイズ依頼
フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。
Topic starter
2022年11月20日 11:11
いつもお世話になっております。
今まで外観のメニュー画面で「リンクを新しいタブで開く」にチェックを入れた場合は別窓で開いていたかと思いますが、いつの頃からか同窓でしか開かなくなっていました。
※勘違いでしたら申し訳ありません。
色々と検索してみましたが、公式にも子テーマのfunctions.phpに記述して解決するという内容しか確認できませんでした。
https://wp-cocoon.com/box-menu-link-target/
現在もこの方法でしか別窓表示はできないものでしょうか。
その場合はショートコードで対応させて頂きたいと思いますが、そうするとボックスメニューでチェックできる「リンクを新しいタブで開く」の意味が分からなくなってしまうので、質問させていただきました。
2022年11月20日 14:46
今まで外観のメニュー画面で「リンクを新しいタブで開く」にチェックを入れた場合は別窓で開いていたかと思いますが、いつの頃からか同窓でしか開かなくなっていました。
※勘違いでしたら申し訳ありません。
勘違いです。以前から「リンクを新しいタブで開く」にチェックを入れても別窓では開きません。
ただ、素晴らしいご提案だと思います。「リンクを新しいタブで開く」が反映されるのは便利です。そのため、親テーマで対応していただければ嬉しいです。
その対応ですが、2 つの案が思い浮かびました。
1 つは、get_box_menu_tag() の変更です。この部分を…
extract(shortcode_atts(array( 'name' => '', // メニュー名 'target' => '_self', 'class' => null, ), $atts, 'box_menu'));
こうして…
extract(shortcode_atts(array( 'name' => '', // メニュー名 'target' => '_self', 'class' => null, ), $atts, 'box_menu')); // これをとりあえず追加 $atts = array( 'target' => $target, );
foreach の中で「リンクを新しいタブで開く」を取得します。
foreach ($menu_items as $menu): $target = $menu->target !== '' ? $menu->target : $atts['target'];
もう 1 つは、フィルターフックの box_menu_link_target に $menu を渡す方法です。
$target_value = apply_filters('box_menu_link_target', $target, $url, $menu);
そうすれば、子テーマで変更できます。
add_filter( 'box_menu_link_target', function( $target, $url, $menu ) { if ( $menu->target !== '' ) { $target = $menu->target; } return $target; }, 10, 3 );
Topic starter
2022年11月20日 20:39
@akira様
私の勘違いだったということで、コメントありがとうございます。
ただ、そうすると「リンクを新しいタブで開く」の利用用途が分からなくなりました……
対応策のご提示もしていただきまして、ありがとうございます。
チェックボックスだけで機能を使えるのであれば、ユーザーとしてとても嬉しいです。
わいひら様のご回答を待ちたいと思います。
2022年11月21日 19:12
メニュー項目のオプションに「リンクを新しいタブで開く」というのがあったんですね。初めて認識したかも。
確かに個別に設定されているものが優先された方がいいですね。
Akiraさんの改善案をそのまま使用させていただきました。
こちらでアップデートすると機能が変更されるかと思います。
------------------------------------------------
https://github.com/xserver-inc/cocoon
開発中の最新ファイルをダウンロードする場合は、上記ページのダウンロードボタンからzipファイルをダウンロードしてください。
WordPressでの手動アップデート方法はこちら
https://wp-cocoon.com/manual-update-of-cocoon-theme/
------------------------------------------------
次のバージョンで適用されます。
k-k reacted
Topic starter
2022年11月21日 20:42
わいひら様
早速の機能追加をありがとうございます。
動作確認したところ正常に別窓で開くことができました。
いつも本当にありがとうございます。
とても使いやすいです。
2022年11月21日 21:04
@yhira さん
本サポートによりfunctions.php記述は不要となり。
誤解を生まない為に、マニュアルから以下のページの削除、見直しを願います。
https://wp-cocoon.com/box-menu-link-target/
2022年11月21日 21:05
申し訳ないです。配列の最後のカンマは書いてはまずかったかもしれません。最後にカンマを書いていいのは PHP 7.3 からだったのを忘れていました。
https://github.com/xserver-inc/cocoon/blob/master/lib/shortcodes.php#L695
2022年11月22日 19:39
本サポートによりfunctions.php記述は不要となり。
誤解を生まない為に、マニュアルから以下のページの削除、見直しを願います。
https://wp-cocoon.com/box-menu-link-target/
「外部リンクをすべて新しいタブで開く」のと「個別メニューごとに新しいタブで開くのを設定する」のとはまた別なので、後者の方法を追記しておきました。
https://wp-cocoon.com/box-menu-link-target/
https://wp-cocoon.com/box-menu-shortcode/
https://wp-cocoon.com/box-menu-widget/
2022年11月22日 19:45
申し訳ないです。配列の最後のカンマは書いてはまずかったかもしれません。最後にカンマを書いていいのは PHP 7.3 からだったのを忘れていました。
僕もこれCocoonのかなりの部分でやっているので問題ないと思います。
style.cssのRequires PHP:も7.4.0としているので多分大丈夫と思います。
ただ、ダウンロードページの推奨環境は7以上となっていたので、7.4以上に変更しておきます。
とはいえPHP 7.4のセキュリティサポートもまもなく終わりはしますが…。
https://qiita.com/bezeklik/items/72d1ff8393f66673e2bc
問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。
また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。
(CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。
フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。
最近の書き込みはこちら。
詳細なカスタマイズ依頼をするならこちら。