今年の雪は急にやってきたりいなくなったり、忙しい天気ですね。
WordPressのカスタマイズをしていて、なんだか毎回functions.phpに同じこと書いてることが増えたので備忘録代わりに。
定番のものから小ネタまで。
ソースコード周り
1 2 3 4 5 |
remove_action('wp_head', 'wp_generator'); remove_action('wp_head', 'rsd_link'); remove_action('wp_head', 'wlwmanifest_link'); remove_action('wp_head', 'wp_shortlink_wp_head'); remove_action('wp_head', 'adjacent_posts_rel_link_wp_head'); |
ど定番ですがまぁ。定番ってことは便利ってことです。
固定ページ名をbodyのクラス名として追加
1 2 3 4 5 6 7 8 |
function pagename_class($classes = '') { if(is_page()) { $page = get_post(get_the_ID()); $classes[] = $page->post_name .' page_' .$page->post_name; } return $classes; } add_filter('body_class','pagename_class'); |
ページ名のクラスがあったほうがCSS書く時便利ですからね。
CSS、Javascriptの読み込み
1 2 3 4 5 6 7 8 9 10 |
function theme_enqueue_styles() { // 親テーマのstyle.css wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' ); // 子テーマのstyle.css wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-style') ); } add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' ); |
これは子テーマでテーマを作っていく場合になりますが。
親テーマの不要なCSSを削除
1 2 3 4 |
function my_dequeue_styles() { wp_dequeue_style( $handle ); } add_action( 'wp_enqueue_scripts', 'my_dequeue_styles', 9999 ); |
逆に親テーマのCSSで不要なCSSを読み込みたくない時に。
$handle探すのに手間取ったりもしますが。。
ダッシュボード関連
自動で入力されるPタグを入れない。
1 2 3 4 |
if(is_page()){ remove_filter('the_content', 'wpautop'); remove_filter('the_excerpt', 'wpautop'); } |
記事(POST)はお客さんが使うことも考慮して固定ページにしました。
ウィジェットエリアを追加
1 2 3 4 5 6 7 8 9 10 11 12 13 |
function my_widgets(){ register_sidebar(array( 'name' => 'ウィジット名', 'description' => 'テキストテキストテキストテキストテキスト', 'id' => 'widgetID', 'class' => 'className', 'before_widget' => '<aside id="%1$s" class="widget %2$s">', 'after_widget' => '</aside>', 'before_title' => '<h2 class="widget-title">', 'after_title' => '</h2>', )); } add_action('widgets_init', 'my_widgets'); |
追加したら利用したい場所に
1 2 3 4 |
<?php dynamic_sidebar( $number ); // $numberはサイドバーの名前または ID。 ?> |
投稿の画像相対パスを絶対パスに書き換え
1 2 3 4 5 |
function replaceImagePath($arg) { $content = str_replace('"images/', '"' . get_stylesheet_directory_uri() . '/images/', $arg); return $content; } add_action('the_content', 'replaceImagePath'); |
ソースをペタッとWordPressに貼り付けて、あれれ、相対パスが切れた。をなくすよう。
自分のテーマディレクトリの直下にimagesフォルダがある場合です。
パスは適宜変更してください。
小ネタですが以外と便利です。
サイト名のショートコード
1 2 3 4 |
function shortcode_siteurl() { return home_url() .'/'; } add_shortcode('siteurl', 'shortcode_siteurl'); |
これも上と似たようなもんですが、WordPressのテキストエディターでリンク貼ったりする時に。
自分ではあんまりショートコードは使わないんですけど。
いろいろな人が使う場合はあると重宝することがあります。
小ネタ
Advanced Custom Fieldsで画像のパスを取得(ID利用)
1 2 3 4 5 6 7 8 9 |
function get_afc_imgurl($slug){ if(get_field($slug)){ //画像(返り値は「画像ID」) $img = get_field($slug); $imgurl = wp_get_attachment_image_src($img['id'], 'full'); //サイズは自由に変更 return $imgurl[0]; } } |
基本はthe_field()だけで出力できちゃうお手軽さもAdvance Custom Fieldプラグインの魅力の一つ。
画像の時(IDを利用している場合)にパスの出力忘れることが多かったので関数にしてみました。
感想
簡単なものばかりですけど。
最近はset_query_var()で変数をget_template_part()に渡してget_query_var()で受けてごにょごにょっていうのがちょっとお気に入りです。
固定ページの内容なんかもファイル切り分けてページモジュールみたいにしちゃうと結構楽で。
やり方は人それぞれだと思います、何か使えそうなものがあったらどうぞご利用ください。