サポート » プラグイン » 特定のページのみプラグインを表示したい

  • 解決済 teppochan

    (@muteki)


    フィードバックを送信するフォームをページに作る「Usernoise」というプラグインを使おうと思っているのですが、このプラグインはすべてのページにフィードバックを送信するためのボタンを表示してしまします。
    これをどうにかして、特定のページにのみ送信するボタンを表示させたいと考えています。
    ちなみに今のところはトップページにのみ表示できればと考えています。
    すごく簡単なPHPなら理解できます。
    できるだけシンプルで一般的な方法で実現したいと考えます。
    どのようにすれば実現可能かご教授よろしくお願いします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • mutekiさん

    「できるだけシンプル」ということであれば、かなり手抜きっぽいやり方ですが、CSSの display: none; で非表示にしてはどうでしょう? 『Usernoise』のボタンには un-button というIDがふられているので、これを利用するというわけです。

    たとえば、テーマファイルの body タグにWordPressのテンプレートタグ body_class() が入っているなら

    .page #un-button {
    	display: none;
    }

    とスタイルを書けば、固定ページでボタンが非表示になるかとおもいます。

    また、ボタンはJavaScript(usernoise/js/usernoise.js)で追記されているので、テーマフォルダ内の functions.php に

    add_action( 'wp_enqueue_scripts', 'my_remove_usernoise' );
    function my_remove_usernoise() {
    	if ( !is_front_page() ) {
    		wp_deregister_script( 'usernoise' );
    	}
    }

    と書いてJavaScriptを無効化するのもアリでしょう。

    ただ、いずれのやり方もフィードバック投稿時のサンキューメッセージがHTMLソースに残ったままなので、あまり美しくはないのですが……(>_<)

    《関連》
    テンプレートタグ/body class

    teckingさんとても素晴らしいアドバイスありがとうございます。
    考えた結果、もともと表示されるボタンがIE8と相性が良くなかったので、スタイルシートでボタンを全ページで非表示にして
    Usernoiseのプラグインフォルダーの中のusernoise.jsに
    $(“#feedback”).click(function(event){
    self.showWindow();
    event.preventDefault();
    return false;
    })
    を付け加えて自分でボタンを作ることにしました。
    JavaScriptがよくわからないので、こんな方法で正しかったわかりませんが、動いたのでよしとしました。
    「JavaScriptを無効化する」は知りませんでした。
    早速導入してみます。
    僕もHTMLソースが残るのが嫌なので、なんとかならないモノかと質問しましたが、動作に支障が無ければいいかという考えでそのまま使うことにしました。
    回答ありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「特定のページのみプラグインを表示したい」には新たに返信することはできません。