• かちびと.net

    WordPressを使ったWebサイトでfunctions.phpによく書いてるやつ。お問い合わせいただいたので書いてみます。便利なfunctions.phpの使い方をご紹介。

    Kudos for

    WordPress jQuery
  • About This

    Web制作に役立つTips、チュートリアル、、マーケティングに役立つ情報などのリソースをほぼ毎日配信しています。宜しければメモ代わりにご利用下さい。詳しい情報はAbout me またはhumans.txtをご覧下さい。

    Kachibito.net is a community-based website for web designers and developers. The site includes a popular weblog, a design gallery, a open source software, design tips, and the various web-news.

  • Links

WordPressを使ったWebサイトでfunctions.phpによく書いてるやつ

スポンサーリンク

お問い合わせ頂いたので記事にします。
WordPressのfunctions.phpは便利なの
はよく分かりますが、結局何が出来るの
か分からないのでこんな事できる、という
のがあれば教えて欲しいとのことでした。
僕も詳しくないので僕も教えて欲しいんです
が、一応書いてみます。

基本的にfunctions.phpはちょっと機能を追加したい、という時に使うものだと思うのでデフォルト機能やプラグインで済むならそうしたほうがいい気がしますのであまり拘らなくてもいいかと思います。

それでも、やはりお仕事ではよく追加する機能はありますのでそれをご紹介します。
※ウィジェットは割愛しますね

カスタムポストタイプ

add_action( 'init', 'create_post_type' );
function create_post_type() {
  register_post_type( 'example',
    array(
      'labels' => array(
        'name' => __( 'テスト' ),
        'singular_name' => __( 'テスト' )
      ),
      'public' => true,
      'menu_position' =>3,
    )
  );
}

カスタム投稿タイプを使ったほうがお客さんは更新しやすいみたいです。使い方はWebデザインレシピさんの記事見てくださいまし。

アイキャッチ

add_theme_support( 'post-thumbnails', array( 'post', 'example' ) );

投稿とカスタムポストタイプ(上記コードではexample)をアイキャッチに対応させます。「ページ」はアイキャッチは要らないのでいつも入れていません。

ヘッダの余計なタグを無効化

remove_action( 'wp_head', 'feed_links_extra', 3 );
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'rsd_link' );
remove_action( 'wp_head', 'wlwmanifest_link' );
remove_action( 'wp_head', 'index_rel_link' );
remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );
remove_action( 'wp_head', 'wp_generator' ); 

functions.php内がゴチャつくのも問題なので個人サイトではやりませんけど・・head内に挿入されるlink rel=’start’とかを削除してすっきりさせます。

ご自身で選びたい場合はwp-includes/default-filters.php内の197行目くらいを確認すればいいんじゃないかと思いますが、プラグインに影響出るかもなので慎重に行なってください。※WP3.1の場合

ダッシュボードにメッセージボックスを作る

add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');

function my_custom_dashboard_widgets() {
global $wp_meta_boxes;

wp_add_dashboard_widget('custom_help_widget', '今日のお知らせ', 'dashboard_text');
}
function dashboard_text() {
echo '<p>うちのワンコ、今日はマジご機嫌。</p>';
}

iframeでいろいろ表示させたり、見てもらいたいサイトに誘導したり、みたいな。これ作っておくと地味に便利なんです。↓こんなやつ。

「投稿」「ページ」の不要なコンテンツを非表示

function remove_default_post_screen_metaboxes() {
 remove_meta_box( 'postcustom','post','normal' ); // カスタムフィールド
 remove_meta_box( 'postexcerpt','post','normal' ); // 抜粋
 remove_meta_box( 'commentstatusdiv','post','normal' ); // コメント
 remove_meta_box( 'trackbacksdiv','post','normal' ); // トラバ
 remove_meta_box( 'slugdiv','post','normal' ); // スラッグ
 remove_meta_box( 'authordiv','post','normal' ); // 著者
 }
   add_action('admin_menu','remove_default_post_screen_metaboxes');

   function remove_default_page_screen_metaboxes() {
 remove_meta_box( 'postcustom','page','normal' ); // カスタムフィールド
 remove_meta_box( 'postexcerpt','page','normal' ); // 抜粋
 remove_meta_box( 'commentstatusdiv','page','normal' ); // コメント
 remove_meta_box( 'trackbacksdiv','page','normal' ); // トラバ
 remove_meta_box( 'slugdiv','page','normal' ); // スラッグ
 remove_meta_box( 'authordiv','page','normal' ); // 著者
 }
   add_action('admin_menu','remove_default_page_screen_metaboxes');

「投稿」、「ページ」で使ってない機能は消します。以下のようにすっきりするので気のせいかもですが、ページの読み込みも早くなる気がします。多分気のせい。

moreリンクの#を無効化

function custom_content_more_link( $output ) {
    $output = preg_replace('/#more-[\d]+/i', '', $output );
    return $output;
}
add_filter( 'the_content_more_link', 'custom_content_more_link' );

これは個人的には凄く不要なのでいつも入れます。

その他

管理画面をいじったりしますが、これは以前記事にしたのでご参照下さい。

WordPressの管理画面をカスタマイズしたい時に覚えておくと重宝しそうな
ハックやプラグインいろいろ

一応よく追加するのはこれくらいです。

他にもよく追加する機能としてカスタムフィールドを使って出来るなにかを作ったり、テーマ独自のオプションを作ったり。以前作ったテーマ・WP-Tubularのように、管理画面でテーマに変更を加えるようなものですが、これらは上記のように全てのテーマに共通するものではないので今回は省きました。

僕もそんな詳しくないので色々な方の方法を参考にしたほうがいいと思います。
via:snipplr

URL :
TRB :

Ads

Posts

Contact

Services