
今年の雪は急にやってきたりいなくなったり、忙しい天気ですね。
WordPressのカスタマイズをしていて、なんだか毎回functions.phpに同じこと書いてることが増えたので備忘録代わりに。
定番のものから小ネタまで。
ソースコード周り
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のクラス名として追加
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の読み込み
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を削除
function my_dequeue_styles() {
wp_dequeue_style( $handle );
}
add_action( 'wp_enqueue_scripts', 'my_dequeue_styles', 9999 );
逆に親テーマのCSSで不要なCSSを読み込みたくない時に。
$handle探すのに手間取ったりもしますが。。
ダッシュボード関連
自動で入力されるPタグを入れない。
if(is_page()){
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
}
記事(POST)はお客さんが使うことも考慮して固定ページにしました。
ウィジェットエリアを追加
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');
追加したら利用したい場所に
<?php
dynamic_sidebar( $number );
// $numberはサイドバーの名前または ID。
?>
投稿の画像相対パスを絶対パスに書き換え
function replaceImagePath($arg) {
$content = str_replace('"images/', '"' . get_stylesheet_directory_uri() . '/images/', $arg);
return $content;
}
add_action('the_content', 'replaceImagePath');
ソースをペタッとWordPressに貼り付けて、あれれ、相対パスが切れた。をなくすよう。
自分のテーマディレクトリの直下にimagesフォルダがある場合です。
パスは適宜変更してください。
小ネタですが以外と便利です。
サイト名のショートコード
function shortcode_siteurl() {
return home_url() .'/';
}
add_shortcode('siteurl', 'shortcode_siteurl');
これも上と似たようなもんですが、WordPressのテキストエディターでリンク貼ったりする時に。
自分ではあんまりショートコードは使わないんですけど。
いろいろな人が使う場合はあると重宝することがあります。
小ネタ
Advanced Custom Fieldsで画像のパスを取得(ID利用)
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()で受けてごにょごにょっていうのがちょっとお気に入りです。
固定ページの内容なんかもファイル切り分けてページモジュールみたいにしちゃうと結構楽で。
やり方は人それぞれだと思います、何か使えそうなものがあったらどうぞご利用ください。