コンテンツへスキップ

WordPress 子テーマを作成する

今のテーマにて、自動抜粋に付与される「… 続きを読む」のリンクがhtml むき出しになってしまうので、子テーマを作成してfunction.php に修正コードを追加する。

子テーマにしておけば復帰が楽だし、バージョンアップの影響も受けない。
親テーマにリンクしているだけだから、「差分だけ定義したテーマ」みたいな感じになっている、と思っている。

WordPress 子テーマを作成する

子テーマの作成

テーマというのが、WordPress で主に外観を定義したもので、なんかいろんな設定ファイルから出来ていて、
子テーマというのは、任意のテーマをメインに分岐したような感じのテーマです。

設定ファイルの準備

子テーマ用のフォルダを作成して、それぞれfunctions.php とstyle.css を作成する。

style.css
/*
Theme Name: Neve Child
Version: 4.2.3
Template: neve
*/

テーマ名(Theme Name:)は子テーマの名前。適当でいいと思われる。
バージョンは親になるテーマのバージョン。詳細で確認して入力。
(管理用のコメントレベルのもので、必須ではないみたい。)

テンプレート名(Template:)は、php で処理をするときに「フォルダ名」として参照されるので、FTP を参考にフォルダ名を記入する。

functions.css

テーマの違いによる書き換えは特になし。
(「 <?php 」 の前や、「 ?> 」の後ろに改行や空白があると、いきなり管理画面が開かなくなったりするので注意。)

もし、管理画面が開かなくなったら、一度子テーマのフォルダをリネームして、デフォルト設定に戻します。

<?php
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
  wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
  wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-style')
);
}
?>

子テーマをアップロードする

このフォルダをZIP にして、WP の管理画面のテーマ編集画面からアップロードするか、
FTP でwp-content/themesフォルダに直接アップロードする。

ZIP の方がお手軽かな。

追加された。

子テーマを有効にすると、子テーマに移行する。

それまで親テーマに追加していた設定は、ぱっと見た感じではすべて継承されている。

function.php を変更

下記のコードを子テーマの functions.php に下記を追記する。

// 抜粋でHTMLタグ(リンク)を有効にする
remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'custom_wp_trim_excerpt');

function custom_wp_trim_excerpt($excerpt) {
    if (empty($excerpt)) {
        $excerpt = get_the_content();
        $excerpt = strip_shortcodes($excerpt);
        $excerpt = apply_filters('the_content', $excerpt);
        // ここでリンク(<a>)だけは削除しないように変更
        $excerpt = strip_tags($excerpt, '<a>'); 
        $excerpt = wp_trim_words($excerpt, 55, '...'); // 文字数は調整可能
    }
    return $excerpt;
}

コメントが文字化けするので、英語に直して貼り付け。
不要な空白、改行は入れない。

多分、こんな感じで入れればいいと思われる。

html タグのむき出しがなくなりました!

以上。

参考サイト:

https://www.conoha.jp/lets-wp/wp-childtheme/#section03

(Visited 3 times, 1 visits today)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です