質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

1回答

1280閲覧

Wordpressブログ で子テーマを作成し、記事文中にAdsense広告が表示されるようにfunction.phpを編集するが表示されない

TAKEZO6

総合スコア6

FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2018/04/12 07:59

編集2018/04/26 06:44

前提・実現したいこと

Wordpress初心者です。

お忙しいところすみませんが、以下質問です。
1.自分で調べてみて他サイトを参考に「ad-in-body.php」ファイルを作成して、子テーマのfunction.phpの<?php以下に {「最初の見出しタグ(h2)」の前に自動で設置できるコード} を入れるということをやってみたのですが、なぜかうまくいきません。
(広告そのものが表示されない)

2.また、子テーマのfunction.phpには以前に上記とは別に、抜粋文の「...」の表記を「続きを読む」に変えて記事にリンクさせるためのリンクも入れてはいるのですが、そちらもうまくいきません。何かfunction.phpの記載方法が誤っているのか自分ではわからないため、アドバイスいただけますと助かります。

3.広告の上に表示されるはずの「スポンサーリンク」の言葉がなぜか文字化けしてしまいます。こちらも大変恐縮ですが、原因不明のため何かアドバイスいただけますと助かります。

情報不足でわかりづらいかもしれませんが、アドバイスなどいただけますと大変幸甚に存じます。

さらにFTPソフトで子テーマ中のcontent.phpを見ると必要なコードが記載されているのですが、Wordpressダッシュボードのテーマの編集⇒子テーマ⇒content.phpを見ると真っ白になってしまっています。(関係があるのか不明)

(4月13日 追記)
使い方よくわかっておらず大変失礼しました。

以下に子テーマのfunction.phpを貼り付けます。

また使用しているテーマはTwenty Twelveというものを使っており、子テーマを作成して編集しております。
https://ja.wordpress.org/themes/twentytwelve/

発生している問題・エラーメッセージ

該当のソースコード

<?php /** * Sets the post excerpt length to 40 words. * * To override this length in a child theme, remove the filter and add your own * function tied to the excerpt_length filter hook. */ function twentytwelve_excerpt_length( $length ) { return 40; } add_filter( 'excerpt_length', 'twentytwelve_excerpt_length' ); if ( ! function_exists( 'twentytwelve_continue_reading_link' ) ) : /** * Returns a "Continue Reading" link for excerpts */ function twentytwelve_continue_reading_link() { return ' <a href="'. esc_url( get_permalink() ) . '">' . __( '続きを読む <span class="meta-nav">→</span>', 'twentytwelve' ) . '</a>'; } endif; // twentytwelve_continue_reading_link /** * Replaces "[...]" (appended to automatically generated excerpts) with an ellipsis and twentytwelve_continue_reading_link(). * * To override this in a child theme, remove the filter and add your own * function tied to the excerpt_more filter hook. */ function twentytwelve_auto_excerpt_more( $more ) { return ' …' . twentytwelve_continue_reading_link(); } add_filter( 'excerpt_more', 'twentytwelve_auto_excerpt_more' ); /** * Adds a pretty "Continue Reading" link to custom post excerpts. * * To override this link in a child theme, remove the filter and add your own * function tied to the get_the_excerpt filter hook. */ function twentytwelve_custom_excerpt_more( $output ) { if ( has_excerpt() && ! is_attachment() ) { $output .= twentytwelve_continue_reading_link(); } return $output; } add_filter( 'get_the_excerpt', 'twentytwelve_custom_excerpt_more' ); ?> add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' ); function theme_enqueue_styles() { wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' ); } //H2見出しを判別する正規表現を定数にする define('H2_REG', '/<h2.*?>/i');//H2見出しのパターン //本文中にH2見出しが最初に含まれている箇所を返す(含まれない場合はnullを返す) //H3-H6しか使っていない場合は、h2部分を変更してください function get_h2_included_in_body( $the_content ){ if ( preg_match( H2_REG, $the_content, $h2results )) {//H2見出しが本文中にあるかどうか return $h2results[0]; } } function add_ads_before_1st_h2($the_content) { if ( is_single() ) {//固定ページも表示する場合はis_singular()にする ob_start();//バッファリング get_template_part('ad-in-body');//広告貼り付け用に作成したテンプレート $ad_template = ob_get_clean(); $h2result = get_h2_included_in_body( $the_content );//本文にH2タグが含まれていれば取得 if ( $h2result ) {//H2見出しが本文中にある場合のみ //最初のH2の手前に広告を挿入(最初のH2を置換) $count = 1; $the_content = preg_replace(H2_REG, $ad_template.$h2result, $the_content, 1); } } return $the_content; } add_filter('the_content','add_ads_before_1st_h2'); ?>

試したこと

エディターはTerapadを使っておりましたが、こちらの文字コードをUTF-8Nに変えたところ、Wordpressダッシュボード画面でみる各コードが真っ白になっているという現象は解決されました。

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2018/04/12 10:36

質問文のコードはコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。コード/エラー以外の本文はコードブロックに含めると改行されず、読みにくいため避けることをお勧めします。また、使用されているテーマは自作テーマでしょうか?それとも公開されているテーマでしょうか?後者の場合は入手先をリンクつきで質問文に追記してください。
guest

回答1

0

提示されている function.php に ?> が紛れており、それ以降のコードはPHPとして実行されません。とりあえずそれを直してから他の挙動について調べるようにしてください。

「真っ白になってしまっています」は、PHPでエラーが起こっているがエラーを表示しない設定になっているため白い、と言う状況だと思います。

【WordPress初心者におすすめ!デバッグモードの使い方 | Mignon Style】
http://mignonstyle.com/debug-mode/

投稿2018/04/13 07:18

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TAKEZO6

2018/04/18 07:07

kei344さん ご回答いただきまして有難うございます、また反応が遅れてしまい大変申し訳ありません。 添付いただいたURLをもとに define('WP_DEBUG', true); というコードをFTPソフト(FileZilla)経由で変更してみたのですが、「エラーがブラウザに表示される」ということが起こりません。 大変初歩的な質問で申し訳ないのですが、対応方法についてご教示いただけますと助かります。
kei344

2018/04/18 17:00

「?>」は確認されましたか? 下記記事に同じコードが載っていましたが、「ad-in-body.php」はテンプレートフォルダ内に有るのでしょうか。また、記事中にh2タグが含まれているのでしょうか。 【アドセンスをWordPress記事本文中に配置できる手軽でスマートな方法】 https://nelog.jp/adsense-before-h2 get_template_part('ad-in-body');をテンプレートの記事ループ部分に入れて表示されるかどうかなど、ひとつずつ確認していくしかないと思います。
TAKEZO6

2018/04/19 06:52

下記回答有難うございます。 改めてデバックモードで確認すると以下のエラーメッセージが表示されておりました。 public_html/wp-includes/functions.php on line 4031 ただし、Function.phpを見ても、これが何を示しているエラーなのかがよくわからず。。。 コメントいただいた件、「ad-in-body.php」は子テーマの中に作成済みです。 また、アドセンスの入れるコードについては以下の記事中の記事本文中にアドセンスを自動で入れる という内容に沿って、設定しました。 https://affiliate150.com/adsense-for-wordpress 「?>」のコードについては、コメントいただいた後に、子テーマ中のコード途中にある「>?」を削除対応済みです。 が、やはり子テーマのfunction.phpが機能せず、何も変わらない状況となってしまっております。。。 どう対応したらいいものか、困ってしまっています。
TAKEZO6

2018/04/19 07:07

なお、記事中にh2タグ(見出し2)が含まれている場合でもやはり記事は広告は表示されないようになってしまっています。
kei344

2018/04/19 07:17

> 以下のエラーメッセージが表示されておりました エラーメッセージは正確に伝えないと意味がありませんよ。エラーの全文は提示の物だけでないはずです。どのページを見ているときにでたエラーなのかも質問文に追記されてはいかがでしょうか。
TAKEZO6

2018/04/26 06:46 編集

エラーメッセージといったものはエラーメッセージではなく、Wordpressのダッシュボード上側に記載されている、非推奨の状況にあることを示すものだったようです。 エラーが何かは表示されることがなく、いまだにどうしたらいいのかわかっていません。 何度も何度も大変申し訳ないのですが、ご教示いただけると助かります。 そもそも子テーマのfunction.phpの編集方法自体が何か根本的に間違えていたりするのでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問