お問い合わせ前の直近ページURLを取得する方法
-
ご返信ありがとうございます。
こちらに投稿する前にも参照先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で適当に・・・ご返信ありがとうございます。
私の投稿内容が不足だったため、申し訳ありません。
再度、以下に内容を記載いたします。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 より大きい値
manbo様、ご返信ありがとうございます。
こちらの実装方法について、プラグインだけではなく、functionsなど広く実装可能な方法を知りたかったので、プラグインについては記載しておりませんでした。
プラグインでくぐってしまうと解決策が逆に見つかりにくいのかなと考えていたためです。
申し訳ありません(;_;)
追記して頂いたタグで今から書いてみます!
ありがとうございます。このトピックのタイトルはURLを取得する方法と書いてますが、途中からタイトルを取得になってますがどちらが本当の目的ですか?
URLなら
get_the_permalink
タイトルなら
get_the_title
manbo様、ishitaka様、ご教授頂きありがとうございます。
結果、なんとか解決できました!
とりあえず、プラグインを使用してタイトル/URLを取得するほうが簡単に実装できそうでしたので、こちらで設定をいたしました。
PHPテンプレートではない記事へのPHPのコードの書き方は、manbo様に教えて頂いた通り、
echo '<a href="/contact/?title=' .get_the_permalink(). '">お問い合わせはこちら</a>';
という、書き方にしました。
HTMLを混同できないので、別フィールドでHTMLを書いて、上記コードを埋め込むように設定し、デザイン共に問題なく表示・動作ができました。また、URLを取得したかったのですが、再度、manbo様に貼り付けて頂いた参照先を見ながら、作業していたので、URLやタイトルやらが紛らわしくて申し訳ありませんでした。
文字の変更だけなので、わかりやすいように変えていきます。
ご丁寧に追記して頂いてありがとうございます。これで、お問い合わせの際に、どのページからやってきたお客様なのかが分かるようになりました。
これからも応用できる内容なので、何度も見返しながら勉強させて頂きます!
貴重なお時間ありがとうございましたm(__)m助かりました!!! -
この返信は7年、 10ヶ月前に
- トピック「お問い合わせ前の直近ページURLを取得する方法」には新たに返信することはできません。