お知らせバーにチャットボットの機能をonclickで導入したいがエラーになる

0
いいねをした人: 居ません
6件の投稿を表示中 - 1 - 6件目 (全6件中)
  • 投稿者
    投稿
  • #85425
    西澤颯
    参加者
    23

    【お使いの Snow Monkey のバージョン】15.4.0
    【お使いの Snow Monkey Blocks のバージョン】12.1.0
    【お使いの Snow Monkey Editor のバージョン】 6.0.0
    【お使いのブラウザ】chrome,safari,edge
    【当該サイトのURL】https://balloon-deko.com/

    ### 実現したいこと

    いつもありがとうございます。
    そしていつも質問ばかりすみません‥。

    上記サイトで「チャネルトーク」というツールを使って顧客誘導を図りたくてまずはお知らせバーにonclickでチャットが自動で開くようにしたいと思ったのですがうまくいきません。

    一瞬開いたように見えるのですがすぐエラー表示になります。
    どこが間違っているかわかりますでしょうか?

    お知らせバーリンクURL

    onclick="ChannelIO(\'showMessenger\')"
    

    子テーマのfunction.phpに以下記載

    add_filter(
    	'snow_monkey_template_part_render',
    	function( $_html, $_slug ) {
    		if ( 'template-parts/common/infobar' === $_slug ) {
    			$_html = str_replace(
    				'<a class="p-infobar__inner"',
    				'<a class="p-infobar__inner"onclick="ChannelIO(\'showMessenger\')"',
    				$_html
    			);
    		}
    		return $_html;
    	},
    	10,
    	2
    );

    タグなどはこちらを参考にしました。

    また以前のサポートフォーラムで参考になった記事があったので、こちらでコード記述しましたが、プログラミング知識が乏しいこともあり上手くいってないのだと思います。

    また、お知らせバーと固定ページや投稿記事などはまた設定の方法変わってきますよね?
    この辺も教えていただければありがたいのですが、別投稿の方がよければそちらで対応させていただきます。
    何卒よろしくお願いいたします。

    0
    いいねをした人: 居ません
    #85450
    アバター画像キタジマ タカシ
    参加者
    2422

    なぜかリンク先も onclick=ChannelIO('showMessenger') になっているようですね。それでそんなリンク先はないということで404になるようです。

    href="http://onclick=ChannelIO('showMessenger')"
    

    カスタマイザーのお知らせバーのリンク先の設定で onclick=ChannelIO('showMessenger') を入力されてたりしますか?

    0
    いいねをした人: 居ません
    #85481
    西澤颯
    参加者
    23

    返信ありがとうございます!
    onclick=”ChannelIO(\’showMessenger\’)”
    と記述しています。

    何か根本的な部分で間違ってますか…?

    0
    いいねをした人: 居ません
    #85484
    アバター画像キタジマ タカシ
    参加者
    2422

    はい、そういうことになります。最終的には下記の HTML にならないとダメなわけですよね。

    <a onclick="ChannelIO('showMessenger')">...</a>
    

    現状は下記のようになっています。

    <a onclick="ChannelIO('showMessenger')" href="onclick="ChannelIO('showMessenger')"">...</a>
    

    この href="..." は前述したようにリンク先の URL を記述するものなので、現状の HTML の場合は https://onclick="ChannelIO('showMessenger')" という「URL」に移動する、ということになります。そのような URL は存在しないので 404 になります。

    なのでリンク先には # と入力してリンクによるページ遷移をしなくするか、フックで href ごと消してしまうかのどちらかの対応が必要になるかなと思います。注意点として、リンク URL 未入力だとお知らせバー自体表示されなくなってしまうので、フックで href を消す場合でも何らかの入力が必要です。

    add_filter(
    	'snow_monkey_template_part_render',
    	function( $_html, $_slug ) {
    		if ( 'template-parts/common/infobar' === $_slug ) {
    			// onClick を追加
    			$_html = str_replace(
    				'<a class="p-infobar__inner"',
    				'<a class="p-infobar__inner" onclick="ChannelIO(\'showMessenger\')"',
    				$_html
    			);
    
    			// href を削除(リンク URL に入力している内容によってはちゃんと消えないかも)
    			$_html = preg_replace(
    				'|href=".+"|',
    				'',
    				$_html
    			);
    
    		}
    		return $_html;
    	},
    	10,
    	2
    );
    0
    いいねをした人: 居ません
    #85488
    西澤颯
    参加者
    23

    できました〜!
    ありがとうございます!

    すごく初歩的なミスであろうことなのに
    わかりやすく解説ありがとうございます( ;  ; )

    お知らせバーができたので、次は固定ページで画像にもonclickの機能入れていこうと思いますが、
    またわからなければ質問させてください…!

    極力自分でやりますm(_ _)m

    0
    いいねをした人: 居ません
    #85490
    アバター画像キタジマ タカシ
    参加者
    2422

    解決したとのこと、良かったです!

    次は固定ページで画像にもonclickの機能入れていこうと思いますが、またわからなければ質問させてください…!

    はい、そのときは別にトピックを立てていただければと思います。固定ページの場合は記事の編集画面(エディター)で入れたブロックに対してになりますよね。一番簡単なのは画像ブロックではなくてカスタム HTML ブロックにしてしまうことだと思います。

    1
    いいねをした人:
6件の投稿を表示中 - 1 - 6件目 (全6件中)
  • トピック「お知らせバーにチャットボットの機能をonclickで導入したいがエラーになる」には新しい返信をつけることはできません。

ドキュメント

Snow Monkey の設定方法やマニュアルを掲載しています。

ドキュメント

フォーラム

Snow Monkey の使い方やカスタマイズについてのご質問・ご要望等はサポートフォーラムで行っています。サポートフォーラムは誰でも閲覧できますが、書き込みできるのは Snow Monkey 購入者のみとなります。

サポートフォーラム

よくあるご質問

Snow Monkey のサービスについて不明な点がある場合は、まずはよくあるご質問をご確認ください。

よくあるご質問

お問い合わせ

よくあるご質問を見ても解決しなかった場合、試用版の申請については問い合わせフォームからお願いいたします。

お問い合わせ

Snow Monkey は Gutenberg ブロックエディターに対応した 100%GPL の WordPress テーマです。拡張性を意識した開発をおこなっており、カスタマイザーとブロックでスピーディーにサイトを立ち上げるだけでなく、CSS やフックを駆使した高度なカスタマイズにも柔軟に対応できます。