データベースに接続できません

TORIYAMAHONPOS WordPressのまめ知識

  • 自動アップデート

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

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

  • 検索結果をソートしたい

    検索結果をソートするには、通常query_posts()で”orderby”を指定する。
    ただし指定できる項目は、投稿テーブル(wp-posts)のフィールドに限られる。
    他の項目(カスタムフィールドや、カテゴリ順など)でソートした場合には、
    フィルターフックでSQLに手を加えるとよい。

    たとえばカテゴリのid順にソートした場合は、
    [sourcecode language=’php’]
    add_filter(‘posts_join’, ‘my_join’);
    add_filter(‘posts_orderby’, ‘my_orderby’);

    function my_join($query){

    global $wpdb;

    if(is_search()){
    $query .= ” JOIN $wpdb->term_relationships AS tr ON tr.object_id=$wpdb->posts.ID JOIN $wpdb->term_taxonomy AS tt ON tt.term_taxonomy_id=tr.term_taxonomy_id JOIN $wpdb->terms AS t ON t.term_id=tt.term_id”;
    }

    return $query;
    }

    function my_orderby($query) {

    global $wpdb;

    if(is_search()){
    $query = ” t.term_id DESC, $wpdb->posts.post_date DESC”;
    }

    return $query;
    }
    [/sourcecode]

    独自に作成したテーブルを追加することも可能だ。ただしやりすぎと負荷がかかるので、様子を見ながら対応すること。

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

    ダッシュボードの投稿画面に項目を追加するには、カスタムフィールドを利用するのが一般的だ。
    独自の項目がある程度まとまっている場合には、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から取得)’;

    ?>
    天気:‘ />
    最低気温:

  • “もっと読む”の設定

    記事の本文に<!–more–>!を挿入すると、the_contentで記事の途中までが表示され、”もっと読む”がつけ加えられる。シングルページでは無効になる。

  • JavaSciptライブラリを読み込む

    テーマやプラグインでJavaScriptを読み込む場合は、アクションフックのwp_print_scriptsを使用する。

    [sourcecode language=’php’]
    function add_myscript() {
    wp_enqueue_script(‘myscript’, ’JavaScriptのフルパス’);
    }

    add_action(‘wp_print_scripts’, ‘add_myscript’);
    [/sourcecode]

    jQueryに依存したJavaScriptを読む込む場合は以下のようになる。wp_enqueue_script(‘jquery’);を行うことで、jQueryが2重に読み込まれることがなくなる。

    [sourcecode language=’php’]
    function add_myscript() {
    wp_enqueue_script(‘jquery’);
    wp_enqueue_script(‘myscript’, ’JavaScriptのフルパス’, array(‘jquery’));
    }

    add_action(‘wp_print_scripts’, ‘add_myscript’);
    [/sourcecode]

  • プラグインでCSSを指定する

    テーマではデフォルトでstyle.cssを使用するようになっている。
    プラグインでも外部CSSファイルを使うことが可能だ。

    プラグインで外部CSSファイルを指定するにはwp_register_style()で登録し、wp_enqueue_style()で読み込ませる。たとえば自分で用意したcssファイルを使いたい場合は、アクションフックのwp_print_stylesで以下のように記述する。wp-headではなくて、wp_print_stylesというのに気がつくのに時間を要した。

    [sourcecode language=’php’]
    function regist_my_css(){
    wp_register_style(‘my_css’, ‘(CSSのフルパス1)’, array(), ”, ‘screen’ );
    wp_register_style(‘my_css’, ‘(CSSのフルパス2)’, array(), ”, ‘screen’ );
    wp_enqueue_style (‘my_css’);
    }

    add_action(‘wp_print_styles’, ‘regist_my_css’);
    [/sourcecode]

  • プラグインをローカライズするには

    英語で表示されるプラグインでも、翻訳機能を使って日本語で表示することができる。

    外国語に対応しているプラグインであれば、potという拡張子のファイルが用意されいてる。
    例えば、example.pot
    Poeidtというアプリケーション(Windows用)を使って、example.potを翻訳する。
    [ファイル]-[POTファイルをもとに新しいカタログを作成する]メニューでpotファイルを読み込む
    必要箇所を翻訳し、名前を付けて保存する。
    日本語化する場合、このときのファイル名はexample-ja.poにすること。
    保存と同時にexample-ja.moが作成される

    プラグインで指定してあるディレクトリにmoファイルをコピーする
    load_plugin_textdomain(‘example’, PLUGINDIR . ‘/example/languages’);

    プラグイン中で翻訳される箇所は、__(や_eの箇所となる。

  • 詳細ページでコメント表示をカスタマイズ

    コメント表示をカスタマイズするには、コメントの配列$commentを回して表示する。
    $commentはテーマのcomments.phpからのみ参照できる変数となっている。

    [sourcecode language=’php’]
    foreach ($comments as $comment) {
    custom_comments($comment, null, null);
    }
    [/sourcecode]

    WordPress 2.7よりコールバックを指定することができる。
    [sourcecode language=’php’]
    wp_list_comments(‘type=comment&callback=custom_comments’);
    [/sourcecode]

    関数custom_comments()はfunctions.phpに作成しておく。

    [sourcecode language=’php’]
    function toriko_custom_comments($comment, $args) {

    $GLOBALS[‘comment’] = $comment;

    ?>

    • さん