質問: 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
回答: さすがに有料版は手元にないため、無料版の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》というファイルで、この中身がトップページの内容として表示されているわけです。名前からしてフロントページですから、これが一番前というか、最初のトップページになるんですね。 それで《front-page.php》の中身を載せてみましたが、ここにショートコードを追記すれば、おそらくメールフォームもいっしょに表示されるのではないかと思います。なお、phpファイル内では直接ショートコードを扱えないため、《echo do_shortcode('');》という関数でショートコードを囲む必要があります。 ただし、この方法だとテーマがアップデートされたときにショートコードごと消えてしまう恐れもあるため、あまりおすすめできません。1番さんのおっしゃるように、お問い合わせフォームをトップページ以外の場所にわけたほうがいいと思います。 ◆字游工房|jiyukobo http://www.jiyu-kobo.co.jp/ こちらのサイトもwordpress製ですが、連絡先のページがわかれてますね。投稿や固定ページ機能を使えば簡単に分けられますし(リンク先2と同じ方法)、そうすれば、phpファイルを直接編集する必要もなくなります。たとえphpを知らなくても、管理画面からショートコードを書くだけで動くので、こちらのほうが簡単です。