大阪・神戸・奈良・京都を中心にNPOのWEB制作やITサポートをしています。

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

カスタムメニューの追加

	register_nav_menus( array(
		'header' => 'ヘッダーナビ',
		'global' => 'グローバルナビ',
		'footer' => 'フッターナビ',
	) );

ウィジェットの追加

	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>',
	) );

カスタムヘッダー

	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', '' );

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

add_theme_support( 'post-thumbnails' );

管理画面のメニュー削除

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');

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

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' );

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

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');

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

function remove_menu() {
	remove_menu_page('plugin_name1');
	remove_menu_page('plugin_name2');
}
add_action('admin_menu', 'remove_menu');

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

// 投稿
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');

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

function edit_admin_menus() {
    global $menu;
    global $submenu;

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

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

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

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');

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

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");'));

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

4件のコメントがあります

コメントを残す

メニューを閉じる