wordpressでfunctions.phpに記述しておくと便利な機能まとめ
wordpressはそのまま使っても高機能で使いやいCMSですが、自己流にカスマイズすることでさらに機能的になります。
例えば、管理サイトが多くなってきて管理画面にもファビコンを付けたいとか、レスポンシブでサイトを構築した場合はサムネイル画像のwidthとheightを削除したい場合もあります。
管理画面にファビコンをつける
// 管理画面へのファビコン function admin_favicon() { echo '<link rel="shortcut icon" type="image/x-icon" href="'.get_bloginfo('template_url').'/images/favicon.ico" />'; } add_action('admin_head', 'admin_favicon');
※このケースでは、予め使用中テーマのimagesフォルダ内にfavicon.icoを入れておく必要があります。
コメントのHTML表記とメール、ウェブサイト入力欄、「メールアドレスが公開~」を削除
/ コメントのHTMLタグ表示を消す function my_special_comment_after($args){ $args['comment_notes_after'] = ''; return $args; } add_filter("comment_form_defaults","my_special_comment_after"); // コメントからEmailとウェブサイトを削除 function my_comment_form_remove($arg) { $arg['url'] = ''; $arg['email'] = ''; return $arg; } add_filter('comment_form_default_fields', 'my_comment_form_remove'); // コメントから「メールアドレスが公開されることはありません」を削除 function my_comment_form_before( $defaults){ $defaults['comment_notes_before'] = ''; return $defaults; } add_filter( "comment_form_defaults", "my_comment_form_before");
※設定→ディスカッションから「」のチェックを外すしておく
画像からwidthとheightを削除する
// 画像からwidthとheightを削除 add_filter( 'post_thumbnail_html', 'remove_width_and_height_attribute', 10 ); add_filter( 'image_send_to_editor', 'remove_width_and_height_attribute', 10 ); function remove_width_and_height_attribute( $html ) { return preg_replace( '/(height|width)="\d*"\s/', "", $html ); }
レスポンシブで画像を%指定したときに便利です。
管理画面の投稿一覧にアイキチャッチを載せる
//管理画面投稿一覧にアイキャッチサムネイル add_theme_support( 'post-thumbnails' ); function manage_posts_columns($columns) { $columns['thumbnail'] = __('Thumbnail'); return $columns; } function add_column($column_name, $post_id) { //アイキャッチ取得 if ( 'thumbnail' == $column_name) { $thum = get_the_post_thumbnail($post_id, array(50,50), 'thumbnail'); } //使用していない場合「なし」を表示 if ( isset($stitle) && $stitle ) { echo attribute_escape($stitle); } else if ( isset($thum) && $thum ) { echo $thum; } else { echo __('None'); } } add_filter( 'manage_posts_columns', 'manage_posts_columns' ); add_action( 'manage_posts_custom_column', 'add_column', 10, 2 );
更新する時にわかりやすくて便利です
投稿から画像挿入した時に自動で作成される画像リンクを削除する
add_filter( 'the_content', 'attachment_image_link_remove_filter' ); function attachment_image_link_remove_filter( $content ) { $content = preg_replace( array('{<a(.*?)(wp-att|wp-content/uploads)[^>]*><img}', '{ wp-image-[0-9]*" /></a>}'), array('<img','" />'), $content ); return $content; }
これはwp-content/uploads配下の画像ファイル全てに適応されるので、アフィリエイト画像などを画像挿入で入れるとリンク切れになる場合があります
コメント入力欄