WordPressをカスタマイズする便利な10個のスニペット
Post on:2011年10月5日
WordPressをカスタマイズする便利なスニペットを紹介します。
10 Very Useful WordPress Hacks
[ad#ad-2]
下記は各ポイントを意訳したものです。
- リンクを新しいウインドウで開く
- 検索結果ページのインデックスを阻止
- 編集ボタンを設置
- コントロールパネルのリンクを設置
- データベースエラーページのカスタマイズ
- ページ内にもう一つのページを埋め込む
- 著者の情報を加える
- Facebookのボタンを加える
- WordPressのアドミンバーを下に移動
- 管理者用のパスワードをリセット
リンクを新しいウインドウで開く
デフォルトでリンクを常に新しいウインドウで開くようにします。
「wp-admin」フォルダ内の「quicktags.js」を変更します。
変更前
if (!edCheckOpenTags(i)) { var URL = prompt('Enter the URL' ,defaultValue); if (URL) { edButtons[i].tagStart = '<a href="' + URL + '">'; edInsertTag(myField, i); } }
変更後
if (!edCheckOpenTags(i)) { var URL = prompt('Enter the URL' ,defaultValue); if (URL) { edButtons[i].tagStart = '<a href="' + URL + '"'; if (URL!='http://') { var defaultTarget = prompt('Enter the Target' ,'_blank'); if (defaultTarget) edButtons[i].tagStart += ' target="' + defaultTarget + '"'; } edButtons[i].tagStart +='>'; edInsertTag(myField, i); } }
検索結果ページのインデックスを阻止
検索エンジンのクローラーがWordPressの検索結果ページにインデックスをつけるのを阻止します。
使用しているテーマファイルの「header.php」のhead要素内に下記のスクリプトを加えます。
<?php if(is_search()) { ?> <meta name="robots" content="noindex, nofollow" /> <?php }?>
編集ボタンを設置
任意のページに編集ボタンを設置します。
「the_content()」がある記事(single.php)やページ(page.php)のループ内に下記のスクリプトを記述します。
<?php edit_post_link(__('Edit This')); ?>
コントロールパネルのリンクを設置
管理者のみに見えるコントロールパネルのリンクと編集ボタンを設置します。
ループ内に下記のスクリプトを記述します。
// Begin WordPress loop <?php get_header(); if (have_posts()) : while (have_posts()) : the_post(); ?> // Admin only code <?php if (current_user_can("manage_options")) : ?> <a href="<?php echo bloginfo("siteurl") ?>/wp-admin/">Admin</a> <?php edit_post_link(‘Edit’, ”, ”); ?> <?php endif; ?> // code here, get contents ... ... // End WordPress loop <?php endwhile; else: ?> Sorry, no pages matched your criteria. <?php endif; get_footer(); ?>
データベースエラーページのカスタマイズ
オリジナルのデータベースのエラーページを作成します。
「wp-content」フォルダ内に「db-error.php」という名前で下記のファイルを作成します。
WordPressでデータベースの接続に問題が発生した時に、自動的にこのページを表示します。
<?php // custom WordPress database error page header('HTTP/1.1 503 Service Temporarily Unavailable'); header('Status: 503 Service Temporarily Unavailable'); header('Retry-After: 600'); // 1 hour = 3600 seconds // If you wish to email yourself upon an error // mail("your@email.com", "Database Error", "There is a problem with the database!", "From: Db Error Watching"); ?> <!DOCTYPE HTML> <html> <head> <title>Database Error</title> <style> body { padding: 20px; background: red; color: white; font-size: 60px; } </style> </head> <body> You got problems. </body> </html>
[ad#ad-2]
ページ内にもう一つのページを埋め込む
ページ内に別のもう一つのページを埋め込みます。
ループ内に下記のスクリプトを記述します。「**ID**」は埋め込むページのIDに置き換えます。
<?php $recent = new WP_Query("page_id=**ID**"); while($recent->have_posts()) : $recent->the_post();?> <h3><?php the_title(); ?></h3> <?php the_content(); ?> <?php endwhile; ?>
著者の情報を加える
記事の終わりに管理画面で登録してある著者の情報を自動で加えます。
表示する箇所に下記のコードを記述します。
<div class="author-box"> <div class="author-pic"><?php echo get_avatar( get_the_author_email(), '80' ); ?></div> <div class="author-name"><?php the_author_meta( "display_name" ); ?></div> <div class="author-bio"><?php the_author_meta( "user_description" ); ?></div> </div>
Facebookのボタンを加える
プラグイン無しでFacebookのLikeボタンを加えます。
記事(single.php)などのボタンを配置する箇所に下記のスクリプトを記述します。
<iframe src="http://www.facebook.com/plugins/like.php?href=<?php echo rawurlencode(get_permalink()); ?>&layout=standard&show-faces=true&width=450&action=like&font=arial&colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" id="facebook-like"></iframe>
WordPressのアドミンバーを下に移動
管理者用のアドミンバーを下に移動します。
テーマファイル内の「function.php」に下記のスクリプトを加えます。
function fb_move_admin_bar() { echo ' <style type="text/css"> body { margin-top: -28px; padding-bottom: 28px; } body.admin-bar #wphead { padding-top: 0; } body.admin-bar #footer { padding-bottom: 28px; } #wpadminbar { top: auto !important; bottom: 0; } #wpadminbar .quicklinks .menupop ul { bottom: 28px; } </style>'; } // on backend area add_action( 'admin_head', 'fb_move_admin_bar' ); // on frontend area add_action( 'wp_head', 'fb_move_admin_bar' );
管理者用のパスワードをリセット
データベースで管理者用のパスワードをリセットします。
phpMyAdminなどで下記を実行します。
UPDATE <code>wp_users</code> SET <code>user_pass</code> = MD5( 'new_password_here' ) WHERE <code>wp_users</code>.<code>user_login</code> = "admin_username";
sponsors