- 締切済み
wordpressのindex.phpへの書き込み
現在、wordpressにてEngrave(有料版)を使用しています。(リンク先1参照) wordpressはphpというプログラム言語で構成されているため、 各ページの名前の最後に「.php」という拡張子がついています。 このEngrave(有料版)において、TOPページに「お問い合わせフォーム」を表示させたいのですが、 HPのトップページは「トップページ」を表す「index」に「.php」がつき、「index.php」のページとして表示されます。 そのため、トップページに「お問い合わせフォーム」を表示させるには、「index.php」の最後に「お問い合わせフォーム」作成時にできたショートコードを最後に記述する必要があります。 (リンク先2・「お問い合わせフォーム」の作成方法とそのショートコードに関して) この操作を教えてください。 お願いいたします。 リンク先1:https://www.thinkupthemes.com/themes/engrave/ リンク先2:https://www.adminweb.jp/wordpress-plugin/list/index10.html
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Katsu_Kaiz
- ベストアンサー率58% (345/586)
さすがに有料版は手元にないため、無料版のEngraveをダウンロードし、中身を調べてみました。 早速のところ申しわけありませんが、そもそも > HPのトップページは「トップページ」を表す「index」に「.php」がつき、「index.php」のページとして表示されます。 というところが微妙に間違っています。たとえ《index》がついていたとしても、それが必ずしも《index.php》とはかぎらないというのが、WordPressの一番やっかいで難しいところなんです。 ◆(すごく難しいけど)テンプレート階層 - WordPress Codex 日本語版 https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E9%9A%8E%E5%B1%A4 ◆WordPressのテンプレートファイルの種類とテンプレート階層 | Mignon Style http://mignonstyle.com/wordpress-template-file/ というのも、WordPressには《テンプレート階層》というものがあって、その時々の状況に応じて、どのPHPファイルを使ってページを表示するのかが厳密に決められています。Engraveを確認したかぎりでは、このテーマは一切《index.php》を使っていません。 代わりに使っているのが《front-page.php》というファイルで、この中身がトップページの内容として表示されているわけです。名前からしてフロントページですから、これが一番前というか、最初のトップページになるんですね。 <?php /** * The template for displaying front page content. * * This template will then load home.php or page.php depending on users front page display settings. * * @package ThinkUpThemes */ if ( 'posts' == get_option( 'show_on_front' ) ) { include( get_home_template() ); } else { include( get_page_template() ); } echo do_shortcode('[contact-form-7 id="番号" title="タイトル"]'); ?> それで《front-page.php》の中身を載せてみましたが、ここにショートコードを追記すれば、おそらくメールフォームもいっしょに表示されるのではないかと思います。なお、PHPファイル内では直接ショートコードを扱えないため、《echo do_shortcode('');》という関数でショートコードを囲む必要があります。 ただし、この方法だとテーマがアップデートされたときにショートコードごと消えてしまう恐れもあるため、あまりおすすめできません。1番さんのおっしゃるように、お問い合わせフォームをトップページ以外の場所にわけたほうがいいと思います。 ◆字游工房|JIYUKOBO http://www.jiyu-kobo.co.jp/ こちらのサイトもWordPress製ですが、連絡先のページがわかれてますね。投稿や固定ページ機能を使えば簡単に分けられますし(リンク先2と同じ方法)、そうすれば、PHPファイルを直接編集する必要もなくなります。たとえPHPを知らなくても、管理画面からショートコードを書くだけで動くので、こちらのほうが簡単です。
- yuki_n_y
- ベストアンサー率58% (921/1571)
お問い合わせ さっと読んだだけですが メイン、インデックスのページにこの画面を張るのはどうかと 説明にもあるように、個々のページの時は表示記事を1にするか 固定ページにリンクする方が、見た目がきれいでは メニューの所に、問い合わせと書いて、クリックすると問い合わせページが出てくる方法 どうしても入れるので有れば、ヘッダーかフッターの方が記述加えてタグコード入れやすいです ただ、テーマを変えれば消えてしまいます
お礼
いつもご回答ありがとうございます! 見栄えの問題で、あまりおすすめはできないやり方なんですね。 無理やりにでも入れるか、ほかの方法を考えるか検討します。
補足
補足すみません。 index.phpのページに入ると、以下のようなコードしか表示されないのですが、このような場合はどのようなことが考えられるでしょうか。 いつも教えていただいてばかりで申し訳ございません。 <?php /** * The main template file. * * @package ThinkUpThemes */ ?> This is index.php!
お礼
お返事が遅くなり申し訳ありません。 初心者なのでちょっと難しい話に感じましたが、wordpress Engraveのトップページは「index.php」ではなく「front-page.php」で構成されているんですね。 ただこの「front-page.php」に「お問い合わせフォーム」のショートコードを埋め込む方法では、アップデートの都度、ショートコードを書き足していかなければならないということなんですよね… 確かに、1さんの教えてくださった方法でやってみた方がいいのかもしれません。 詳しく教えてくださり、ありがとうございます。