• 解決済 mikujin

    (@mikujin)


    お世話になります。
    ユーザーが、こちらに問合せる前に見ていたページ(直近1ページ)のURLを取得して、コンタクトフォーム7にタグを貼り、問合せメールが届いた際、そのURLを参照したいのですが、どのようにすれば実装可能でしょうか?
    ページごとに個別の問合せフォームを作成すれば、ページのURLを簡単に取得できると思いますが、ページ数が1万以上あるので一括で設定したいです。
    検索しても出てこないのでお力をお貸し頂ければ幸いです。
    宜しくお願いいたします。

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • トピック投稿者 mikujin

    (@mikujin)

    ご返信ありがとうございます。
    こちらに投稿する前にも参照先URLを見ておりましたが、こちらを実装する場合、投稿内容にも記載しておりますが、一つ一つページタイトルを割り振っていなかければなりません。
    数ページならば、それでも良いのですが、大量にページがあるので、一つのタグで賄えるようにしたいです。
    引き続きご教授頂ければ幸いです。

    get_the_permalinkに変えればURLが取れるので、それをテンプレートに書けば一回の作業で終わりますが?

    一つ一つページタイトルを割り振っていなかければなりません。

    何か勘違いしませんかね?
    ページタイトルを割り振るの意味が分からないんですが、URLが取れれば良いんですよね?
    それともこちらが間違ってますか?

    どのテンプレートのどの部分に記載したら良いのか分からなければ、テーマのfunctions.phpに以下を追加すれば全投稿の最後に文言を追加します。
    functions.phpの文字コードはUTF-8Nでないと文字化けします。
    内容的にはトップページ、フィード、問い合わせページ以外のページに問い合わせページのリンクを挿入するので、カスタム投稿のページ等を除外したい場合は適宜追加してください。

    function add_contact_link( $content ) {
    	if( !is_feed() && !is_home() && !is_page( 'contact' ) ) 
    	$content .= '
    
    <a href="/contact/?url=' .get_the_permalink(). '">お問い合わせはこちら</a>
    
    ';
    	return $content;
    }
    add_filter( 'the_content' , 'add_contact_link' );

    先に記したサイトのまんまですが、Contact Form 7の管理画面に以下を追加すればURLが取れます。
    [text url default:get]

    尚、問い合わせページのスラッグがcontactではない場合は2か共所修正してください。
    文言の修正やレイアウトはCSSで適当に・・・

    トピック投稿者 mikujin

    (@mikujin)

    ご返信ありがとうございます。
    私の投稿内容が不足だったため、申し訳ありません。
    再度、以下に内容を記載いたします。

    PHPテンプレートに以下を書いて、
    <a href="/contact/?title=<?php echo get_the_title();?>">お問合せ</a>

    コンタクトフォーム7に以下を書けば、
    [text title default:get]

    タイトルが出力されるのは理解しています。
    ヘッダーフッターにあるお問い合わせリンクはこれで解決できております。

    解決出来ない内容は、記事(ページ)部分のお問い合わせリンクです。
    これは、PHPテンプレート内ではなく、各ページ内にお問い合わせリンクがあるため、上記の書き方では実装できず、どのように記載すれば良いのかわかりません。
    私が試した方法は以下です。

    1.直接書く
    固定・投稿ページに、<a href="/contact/?title=<?php echo get_the_title();?>">お問合せ</a>と書いてもPHPはエラーになります。

    2.プラグインpost snippets内に書く
    PHP CODEとして<a href="/contact/?title=<?php echo get_the_title();?>">お問合せ</a>をショートタグにし、固定ページに挿入しましたが、エラーになります。
    【エラー内容】
    error: syntax error, unexpected ‘<‘ in /home/site/public_html/wp-content/plugins/post-snippets/src/PostSnippets/Shortcode.php(107) : eval()’d code on

    お問い合わせバナーは、記事内に複数あるので、現在、上記プラグインを使用しております。
    これで、下記のようにPHPを含んだお問い合わせリンクが出来れば、全て解決するのですが、これができないため、質問させて頂いたのでした。

    現在の書き方:<a href="/contact">お問合せ</a>
    やりたいこと:<a href="/contact/?title=<?php echo get_the_title();?>">お問合せ</a>

    もし、解決策などございましたら引き続きご教授頂ければ幸いです。

    • この返信は7年、 10ヶ月前にmikujinが編集しました。

    プラグインの使い方ならそう記すと共にプラグインのフォーラムに投稿してください。

    post snippetsなるプラグインを使ってみて意味が分かりました。
    内容をPHPコードとする場合は直でHTMLを書けません。

    echo '<a href="/contact/?title=' .get_the_permalink(). '">お問い合わせはこちら</a>';

    こんにちは

    ショートコードで出力しているということですね。
    では、ショートコード展開後にコンテンツを置換する方法はどうでしょうか。

    function replace_contact_links( $content ) {
    	if ( !is_feed() && !is_home() && !is_page( 'contact' ) ) {
    		$search = '<a href="/contact">お問合せ</a>';
    		$replace = '<a href="/contact/?url=' . get_the_permalink() . '">お問合せ</a>';
    		$content = str_replace( $search, $replace, $content );
    	}
    	return $content;
    }
    add_filter( 'the_content' , 'replace_contact_links', 12 ); // ショートコードが展開される 11 より大きい値
    トピック投稿者 mikujin

    (@mikujin)

    manbo様、ご返信ありがとうございます。
    こちらの実装方法について、プラグインだけではなく、functionsなど広く実装可能な方法を知りたかったので、プラグインについては記載しておりませんでした。
    プラグインでくぐってしまうと解決策が逆に見つかりにくいのかなと考えていたためです。
    申し訳ありません(;_;)
    追記して頂いたタグで今から書いてみます!
    ありがとうございます。

    このトピックのタイトルはURLを取得する方法と書いてますが、途中からタイトルを取得になってますがどちらが本当の目的ですか?

    URLなら
    get_the_permalink

    タイトルなら
    get_the_title

    トピック投稿者 mikujin

    (@mikujin)

    manbo様、ishitaka様、ご教授頂きありがとうございます。
    結果、なんとか解決できました!
    とりあえず、プラグインを使用してタイトル/URLを取得するほうが簡単に実装できそうでしたので、こちらで設定をいたしました。
    PHPテンプレートではない記事へのPHPのコードの書き方は、manbo様に教えて頂いた通り、
    echo '<a href="/contact/?title=' .get_the_permalink(). '">お問い合わせはこちら</a>';
    という、書き方にしました。
    HTMLを混同できないので、別フィールドでHTMLを書いて、上記コードを埋め込むように設定し、デザイン共に問題なく表示・動作ができました。

    また、URLを取得したかったのですが、再度、manbo様に貼り付けて頂いた参照先を見ながら、作業していたので、URLやタイトルやらが紛らわしくて申し訳ありませんでした。
    文字の変更だけなので、わかりやすいように変えていきます。
    ご丁寧に追記して頂いてありがとうございます。

    これで、お問い合わせの際に、どのページからやってきたお客様なのかが分かるようになりました。
    これからも応用できる内容なので、何度も見返しながら勉強させて頂きます!
    貴重なお時間ありがとうございましたm(__)m助かりました!!!

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • トピック「お問い合わせ前の直近ページURLを取得する方法」には新たに返信することはできません。