Nakkan Base

functions.phpへの書き込み

【WordPress】子テーマのCSSが反映されない

無料テーマの『Mantra』の子テーマを作成した。

手順通り、style.cssファイルとfunctions.phpファイルをアップロードしたが、CSSが反映されない〜(泣)

なかなか一筋縄ではいかんのう…。

結局、次のサイト様を参考に、

★WordPress子テーマの作り方とCSS等が反映されない原因を解説

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

'add_action'( 'admin_menu', 'theme_admin_styles' );
function theme_admin_styles() {
    'wp_enqueue_style'( 'parent-admin-style', get_template_directory_uri() . '/admin/css/admin.css' );
}

上のようなfunctions.phpをアップロードしたら成功しました!

4行目の’child-style’ってところ、なぜ’parent-style’から変わっているのかわからないです。

また勉強します😔

「お役立ちリンク」を追加しました

サイドバーに「お役立ちリンク」を追加しました。

やり方は、

=functions.php=

function register_my_menus() {
  register_nav_menus(
    array(
      'main-nav' => __( 'ヘッダーメニュー' ),
      'side-nav' => __( 'サイドメニュー' )
    )
  );
}
add_action( 'init', 'register_my_menus' );

のように、functions.phpにカスタムメニュー(‘サイドメニュー’)を追加する。

そして、「ダッシュボード<外観<メニュー」で新しくメニューを作成し、表示したいリンク先を「カスタムリンク」でメニューに追加する。

「ダッシュボード<外観<ウィジェット」で、「ナビゲーションメニュー」をドラッグして追加する。

完了です。

ウィジェットのカテゴリーを全て表示させる

ウィジェットに「カテゴリー」をプルダウン表示で追加したけど、3つくらいしか表示されない。

これってどういうこと?

で、以下のファンクションが効きました。

functions.phpに記入

function hook_widget_categories( $args ){
$args['hide_empty'] = 0;
return $args;
}
add_filter( 'widget_categories_args', 'hook_widget_categories');
add_filter( 'widget_categories_dropdown_args', 'hook_widget_categories' );


ちなみにこれで、もし記事がない場合でも設定されたカテゴリーは表示されます。

今回お世話になったサイトさんは以下です。ありがとうございました。

WordPress】投稿の無いカテゴリーも全て表示させる【カテゴリウィジェット】

子テーマの作成

なぜ「子テーマ」を作るかというと、オリジナルテーマを色々いじって無事自分好みにカスタマイズできたとしても、親テーマがアップデートされた途端にそれらがすべて無に期すという悲劇を防ぐために他なりません。

気に入ったオリジナルテーマでサイトを始めるときは、まず最初に子テーマを作成し、子テーマで運営するようにしましょう。

★手順1

「親テーマフォルダ」と同じ階層に、空の新規「子テーマフォルダ」を作る。

★手順2

「親テーマ」のstyle.cssをまるっとコピーして、新しく作った「子テーマ」フォルダの中に貼り付ける。

★手順3

そのstyle.cssをテキストエディタで開き、次のように書き換える。(必須なものだけにしました)

Theme Name:テーマ固有の名前 (‘〜 Child’がわかりやすい)

Template:親テーマが保存されているフォルダー(テーマ名ではなくフォルダー名を使用。これを記述しないと、テーマは子テーマとして機能しない)

Template Version:バージョン番号

注意したいのは、Template

ここは「親テーマ」のテーマ名ではなくフォルダ名が入るので、最初の一文字が大文字にならないようにする。

★手順4

functions.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' );
 }

そして付け加えたい機能があれば、随時書き加えていく。

私の場合、これは常に書き加えておきたい。

/*==============================

固定ページカテゴリ追加用コード

==============================*/

add_action( 'init', 'my_add_pages_categories' ) ; 
function my_add_pages_categories()
{
register_taxonomy_for_object_type( 'category', 'page' ) ;
}
add_action( 'pre_get_posts', 'my_set_page_categories' ) ;
function my_set_page_categories( $query )
{
if ( $query->is_category== true && $query->is_main_query()){
$query->set( 'post_type', array( 'post', 'page', 'nav_menu_item' )) ;
}
}

以上です。

なお、次のサイトさんが非常に参考になりました。ありがとうございました。

WordPressで子テーマを作成する方法(詳細ガイド)
https://kinsta.com/jp/blog/wordpress-child-theme/#c

絶対に必要なテンプレート

WordPress化するときに絶対に必要なテンプレート。
まず思いつくものから少しずつ書き留めておこう。

★get_header();
 テンプレートファィルheader.phpを読み込む。

★get_footer();
 テンプレートファイルfooter.phpを読み込む。

★wp_head();
 これを忘れるとプラグインが動かない。
 </head>の直前につける。

★wp_footer();
 wp_head();と同じく、これを忘れるとプラグインが動かない。
 </body>の直前につける。

★wp_body_open();
 比較的新しい機能で、今後は必須に近くなるかな〜とここにあげておきましょう。
 header.php の bodyタグ直下に設置。そしてfunctions.phpに下記を書き込みます。 

  if ( ! function_exists( ‘wp_body_open‘ ) ) {
    function wp_body_open() {
     do_action( ‘wp_body_open‘ );
   }
  }

★body_class();
 このテンプレートタグに関しては「必須ではない」と言いつつ、DEBAGにかければ「body_class()がありません」とか出てくる。結局つけなさいということ。