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カスタマイズ依頼

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

ボックスメニューで別窓表示させたい場合...
 
共有:
通知
すべてクリア

[解決済] ボックスメニューで別窓表示させたい場合はfunctions追記が必要でしょうか

9 投稿
4 ユーザー
3 Reactions
588 表示
 k-k
(@k-k)
Eminent Member Registered
結合: 3年前
投稿: 14
Topic starter  

いつもお世話になっております。

今まで外観のメニュー画面で「リンクを新しいタブで開く」にチェックを入れた場合は別窓で開いていたかと思いますが、いつの頃からか同窓でしか開かなくなっていました。
※勘違いでしたら申し訳ありません。

色々と検索してみましたが、公式にも子テーマのfunctions.phpに記述して解決するという内容しか確認できませんでした。
https://wp-cocoon.com/box-menu-link-target/

現在もこの方法でしか別窓表示はできないものでしょうか。
その場合はショートコードで対応させて頂きたいと思いますが、そうするとボックスメニューでチェックできる「リンクを新しいタブで開く」の意味が分からなくなってしまうので、質問させていただきました。


   
(@akira)
Famed Member Registered
結合: 7年前
投稿: 1657
 

今まで外観のメニュー画面で「リンクを新しいタブで開く」にチェックを入れた場合は別窓で開いていたかと思いますが、いつの頃からか同窓でしか開かなくなっていました。
※勘違いでしたら申し訳ありません。

勘違いです。以前から「リンクを新しいタブで開く」にチェックを入れても別窓では開きません。

ただ、素晴らしいご提案だと思います。「リンクを新しいタブで開く」が反映されるのは便利です。そのため、親テーマで対応していただければ嬉しいです。

その対応ですが、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 );

   
k-k and わいひら reacted
 k-k
(@k-k)
Eminent Member Registered
結合: 3年前
投稿: 14
Topic starter  

@akira様

私の勘違いだったということで、コメントありがとうございます。
ただ、そうすると「リンクを新しいタブで開く」の利用用途が分からなくなりました……

対応策のご提示もしていただきまして、ありがとうございます。
チェックボックスだけで機能を使えるのであれば、ユーザーとしてとても嬉しいです。

わいひら様のご回答を待ちたいと思います。


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

メニュー項目のオプションに「リンクを新しいタブで開く」というのがあったんですね。初めて認識したかも。
確かに個別に設定されているものが優先された方がいいですね。
Akiraさんの改善案をそのまま使用させていただきました。
こちらでアップデートすると機能が変更されるかと思います。
------------------------------------------------
https://github.com/xserver-inc/cocoon
開発中の最新ファイルをダウンロードする場合は、上記ページのダウンロードボタンからzipファイルをダウンロードしてください。

WordPressでの手動アップデート方法はこちら
https://wp-cocoon.com/manual-update-of-cocoon-theme/
------------------------------------------------
次のバージョンで適用されます。


   
k-k reacted
 k-k
(@k-k)
Eminent Member Registered
結合: 3年前
投稿: 14
Topic starter  

わいひら様

早速の機能追加をありがとうございます。
動作確認したところ正常に別窓で開くことができました。

いつも本当にありがとうございます。
とても使いやすいです。


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

@yhira さん

本サポートによりfunctions.php記述は不要となり。
誤解を生まない為に、マニュアルから以下のページの削除、見直しを願います。
https://wp-cocoon.com/box-menu-link-target/


   
(@akira)
Famed Member Registered
結合: 7年前
投稿: 1657
 

申し訳ないです。配列の最後のカンマは書いてはまずかったかもしれません。最後にカンマを書いていいのは PHP 7.3 からだったのを忘れていました。

https://github.com/xserver-inc/cocoon/blob/master/lib/shortcodes.php#L695


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

投稿者:: @chu-ya

本サポートにより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/


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

投稿者:: @akira

申し訳ないです。配列の最後のカンマは書いてはまずかったかもしれません。最後にカンマを書いていいのは 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)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。

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

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

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

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