ダッシュボード

の記事

  • プラグイン用のテーブルを作成するには

    WordPressをインストールする際にMySQLに作成されるテーブルのほかに、自作プラグインでもテーブルを作成することができる。アクションフックのregister_activation_hookを定義しておくとプラグインが有効になった際に関数が呼ばれるので、ここでテーブルを作成する。テーブル名にはWordPressの接頭辞を使用すること。
    以下は、wp_sampleというテーブルを作成する例。

    [sourcecode language=’php’]
    function myActivation() {

    global $wpdb;

    $table_name = $wpdb->prefix . “sample”;
    if($wpdb->get_var(“show tables like ‘$table_name’”) != $table_name) {

    $sql = “create table ” .$table_name .” (
    ID bigint not null auto_increment,
    name varchar(64) NOT NULL,
    furigana varchar(64) default NULL,
    url varchar(64) default NULL,
    primary key(ID)
    )”;

    $results = $wpdb->query($sql);
    }
    }

    register_activation_hook(__FILE__, ‘myActivation’);
    [/sourcecode]

    プラグインが無効化された際の処理は以下を使用する。
    [sourcecode language=’php’]
    register_deactivation_hook(__FILE__, ‘myDeactivation_’);
    [/sourcecode]

  • 画像がアップロードできない

    WordPress2.8.4にアップデートした後にひっかかったのは、画像ファイルのアップロードだ。
    投稿画面で「画像の追加」アイコンをクリックしてもウンともスンともいわなくなってしまった。よく見るとFireFoxでJavaScriptのエラーが大量に出ている。とりあえずプラグインをひとつづつ無効にしていきながら、Simple Tagsでひっかかっていることまでつきとめた。
    Simple Tagsを最新バージョンにアップデートしてみるも直らない。このような有名なプラグインが最新バージョンに対応していないはずはないと思った。そこでふと思いついてFireFoxをIEに変えると、問題ないことが分かった。FireFoxがだめなのか?と2、3日はブログの更新をIEで行っていた。またふと思いついて、FireFoxを最新バージョンにしたら正常に戻った。

    何事も最新バージョンに保たないと思いどおりにいかないものだ。

  • 自動アップデート

    新しいバージョンがリリースされると、ダッシュボードに「WordPress *.* が利用可能です ! アップデートしてください。」というメッセージが表示される。
    v2.8がリリースされた際には、自動アップデートに不具合があるとの情報があらかじめ出回っていたため、ファイルを手動でFTPでアップせざるを得なかった。今回2.8.4にアップデートする際に初めて、自動アップデートを行った。
    「WordPress 2.8.4 が利用可能です ! アップデートしてください。」のリンクをクリックすると、ウィザード形式で作業が始まり、FTP情報をきかれたところで、アカウントとパスワードを入力する。あとは自動的にファイルが更新され、アップデートが完了する。次回、ログインのタイミングでデータベースのアップデートが行われる。
    なんと手軽!

    今回はマイナーバージョンアップのため、見た目には違いがわからない。

  • ダッシュボードの投稿画面に入力セクションを追加したい

    ダッシュボードの投稿画面に項目を追加するには、カスタムフィールドを利用するのが一般的だ。
    独自の項目がある程度まとまっている場合には、add_meta_box()で入力セクションを追加したほうが、使い勝手がぐっとよくなるだろう。手順としては、ダッシュボードがロードされたタイミングでadmin_menu()をフックし、add_meta_box()を実行することで実装できる。

    [sourcecode language=’php’]
    add_action(‘plugins_loaded’, ‘my_init’);

    function my_init() {

    if(is_admin()) {
    add_action( ‘admin_menu’, ‘my_dashboard’, 1);
    }
    }

    function my_dashboard() {
    add_meta_box(‘my_metabox’, __(‘今日のお天気情報’, ‘my_metabox’), ‘my_section’, ‘post’);

    }

    function my_section() {

    $my_weather = ‘(初期値を設定またはDBから取得)’;
    $my_high = ‘(初期値を設定またはDBから取得)’;
    $my_low = ‘(初期値を設定またはDBから取得)’;

    ?>
    天気:‘ />
    最低気温:←前のページ

    1 2