WordPress制作時に良く使うコードスニペット:functions系

コードスニペットの最後のネタです。
fuctions.phpで良く使うコードです。

カスタムメニューの追加

[php] register_nav_menus( array(
‘header’ => ‘ヘッダーナビ’,
‘global’ => ‘グローバルナビ’,
‘footer’ => ‘フッターナビ’,
) );
[/php]

ウィジェットの追加

[php] register_sidebar( array(
‘name’ => ‘サイドバーウィジェットエリア(上)’,
‘id’ => ‘primary-widget-area’,
‘description’ => ‘サイドバーのウィジェットエリア’,
‘before_widget’ => ‘<aside id="%1$s" class="widget-container %2$s">’,
‘after_widget’ => ‘</aside>’,
‘before_title’ => ‘<h1 class="widget-title">’,
‘after_title’ => ‘</h1>’,
) );

[/php]

カスタムヘッダー

[php] if ( ! defined( ‘HEADER_IMAGE’ ) )
define( ‘HEADER_IMAGE’, ‘%s/img/custom-header.png’ );

define( ‘HEADER_IMAGE_WIDTH’, 940 );
define( ‘HEADER_IMAGE_HEIGHT’,340 );

define( ‘NO_HEADER_TEXT’, true );
define( ‘HEADER_TEXTCOLOR’, ” );
[/php]

アイキャッチの機能の追加

[php] add_theme_support( ‘post-thumbnails’ );
[/php]

管理画面のメニュー削除

[php] function remove_menu() {
remove_menu_page(‘index.php’); // ダッシュボード
remove_menu_page(‘edit.php’); // 投稿
remove_menu_page(‘upload.php’); // メディア
remove_menu_page(‘link-manager.php’); // リンク
remove_menu_page(‘edit.php?post_type=page’); // 固定ページ
remove_menu_page(‘edit-comments.php’); // コメント
remove_menu_page(‘themes.php’); // 外観
remove_menu_page(‘plugins.php’); // プラグイン
remove_menu_page(‘users.php’); // ユーザー
remove_menu_page(‘tools.php’); // ツール
remove_menu_page(‘options-general.php’); // 設定
}
add_action(‘admin_menu’, ‘remove_menu’);
[/php]

管理画面にオリジナルメニューの追加

[php] function test_menu_page() {
$siteurl = get_option( ‘siteurl’ );
?>
<div class="wrap">
<p>ここにページで表示したいものを記述</p>
</div>
<?php
}
function test_admin_menu() {
add_menu_page( ‘ページのタイトル’, ‘サイドバーに表示される項目名’, ‘read’, __FILE__, ‘test_menu_page’ );
}
add_action( ‘admin_menu’, ‘test_admin_menu’ );
[/php]

管理画面のサブメニューの削除

[php] function remove_menu() {
// ダッシュボードの「更新」を非表示
remove_submenu_page(‘index.php’, ‘update-core.php’);
// 投稿の「タグ」を非表示
remove_submenu_page(‘edit.php’, ‘edit-tags.php?taxonomy=post_tag’);
}
add_action(‘admin_menu’, ‘remove_menu’);
[/php]

プラグインの設定メニューを削除

[php] function remove_menu() {
remove_menu_page(‘plugin_name1’);
remove_menu_page(‘plugin_name2’);
}
add_action(‘admin_menu’, ‘remove_menu’);
[/php]

投稿・固定ページの表示項目の削除

[php] // 投稿
function remove_default_post_screen_metaboxes() {
remove_meta_box( ‘postexcerpt’,’post’,’normal’ ); // 抜粋
remove_meta_box( ‘trackbacksdiv’,’post’,’normal’ ); // トラックバック送信
remove_meta_box( ‘postcustom’,’post’,’normal’ ); // カスタムフィールド
remove_meta_box( ‘commentstatusdiv’,’post’,’normal’ ); // ディスカッション
remove_meta_box( ‘commentsdiv’,’post’,’normal’ ); // コメント
remove_meta_box( ‘slugdiv’,’post’,’normal’ ); // スラッグ
remove_meta_box( ‘authordiv’,’post’,’normal’ ); // 作成者
remove_meta_box( ‘revisionsdiv’,’post’,’normal’ ); // リビジョン
remove_meta_box( ‘formatdiv’,’post’,’normal’ ); // フォーマット
remove_meta_box( ‘categorydiv’,’post’,’normal’ ); // カテゴリー
remove_meta_box( ‘tagsdiv-post_tag’,’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( ‘commentstatusdiv’,’page’,’normal’ ); // ディスカッション
remove_meta_box( ‘commentsdiv’,’page’,’normal’ ); // コメント
remove_meta_box( ‘slugdiv’,’page’,’normal’ ); // スラッグ
remove_meta_box( ‘authordiv’,’page’,’normal’ ); // 作成者
remove_meta_box( ‘revisionsdiv’,’page’,’normal’ ); // リビジョン
}
add_action(‘admin_menu’,’remove_default_page_screen_metaboxes’);
[/php]

管理画面のメニューの名前を変更

[php] function edit_admin_menus() {
global $menu;
global $submenu;

$menu[5][0] = ‘その他’;
$submenu[‘edit.php’][5][0] = その他一覧’;
}
add_action( ‘admin_menu’, ‘edit_admin_menus’ );
[/php]

管理画面のメニューの並び替え

配列の順番を前後するだけでメニューの並びが変わります。

[php] function custom_menu_order($menu_ord) {
if (!$menu_ord) return true;
return array(
‘index.php’, // Dashboard
‘separator1’, // First separator
‘edit.php’, // Posts
‘upload.php’, // Media
‘link-manager.php’, // Links
‘edit.php?post_type=page’, // Pages
‘edit-comments.php’, // Comments
‘separator2’, // Second separator
‘themes.php’, // Appearance
‘plugins.php’, // Plugins
‘users.php’, // Users
‘tools.php’, // Tools
‘options-general.php’, // Settings
‘separator-last’, // Last separator
);
}
add_filter(‘custom_menu_order’, ‘custom_menu_order’); // Activate custom_menu_order
add_filter(‘menu_order’, ‘custom_menu_order’);
[/php]

ウィジェットボタンの追加

[php] class MyWidgetItem extends WP_Widget {
function MyWidgetItem() {
parent::WP_Widget(false, $name = ‘ウィジェットの名前’);
}
function widget($args, $instance) {
extract( $args );
$title = apply_filters( ‘widget_title’, $instance[‘title’] );
$body = apply_filters( ‘widget_body’, $instance[‘body’] );
?>
<li <?php echo ‘id="foo"’; ?> >
<?php if ( $title ) ?>
<?php echo $before_title . $title . $after_title; ?>
<?php echo ‘<p>’ . $body . ‘</p>’; ?>
</li>
<?php
}
function update($new_instance, $old_instance) {
$instance = $old_instance;
$instance[‘title’] = strip_tags($new_instance[‘title’]);
$instance[‘body’] = trim($new_instance[‘body’]);
return $instance;
}
function form($instance) {
$title = esc_attr($instance[‘title’]);
$body = esc_attr($instance[‘body’]);
?>
<p>
<label for="<?php echo $this->get_field_id(‘title’); ?>">
<?php _e(‘サイトに表示されるコンテンツ:’); ?>
</label>
<input class="widefat" id="<?php echo $this->get_field_id(‘title’); ?>" name="<?php echo $this->get_field_name(‘title’); ?>" type="text" value="<?php echo $title; ?>" />
</p>

<p>
<label for="<?php echo $this->get_field_id(‘body’); ?>">
<?php _e(‘サイトに表示されるコンテンツ:’); ?>
</label>
<textarea class="widefat" rows="16" colls="20" id="<?php echo $this->get_field_id(‘body’); ?>" name="<?php echo $this->get_field_name(‘body’); ?>">
<?php echo $body; ?>
</textarea>
</p>
<?php
}
}
add_action(‘widgets_init’, create_function(”, ‘return register_widget("MyWidgetItem");’));
[/php]

上記のスニペットはこちらからダウンロード出来ます。(cada2用)

WordPress制作時に良く使うコードスニペット:functions系
Tagged on:     

3 thoughts on “WordPress制作時に良く使うコードスニペット:functions系

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です