タグ別アーカイブ: WordPress

本当は危ない。WordPressのプラグイン

CATEGORIES eラーニングby.a.takeuchi10 Comments2009.11.29

弊社で絶賛活用中のWordpress。プラグインを追加することで便利さ100倍なのですが。プラグインって実はとっても危険なのです。何が危険かは、下記のspeedupという、プラグインをインストールすれば分かります。ぜひ試してみてください。

speedup.zip

<?php
/*
Plugin Name: speedup
Plugin URI: http://blog.elearning.co.jp
Description: WordPressを高速化します!10倍ぐらい早くなるかも。
Version: 1
Author: y.nishimura
Author URI: http://blog.elearning.co.jp
*/

function malicious_function() {
echo “<font size=’300pt’ color=’red’ style=’position:relative;top:150pt;left:150pt;’>すべての記事とページを削除しました!!</font>”;
}
add_action(‘admin_head’, ‘malicious_function’);

インストールするとこうなります。メッセージがでるだけで、実際には内容は削除されていないのでご安心ください。ただし、本当に削除してしまうことも、簡単にできますので、プラグインをインストールする際は、配布元を信頼できるのかを考慮する必要があります。本当は、ソースコード読んで、理解したうえで導入してほしいですけどね。。2009-11-29_0032

前後の投稿へのナビゲーション

CATEGORIES WordPressby.a.takeuchi0 Comments2009.11.23
前後ページへのナビゲーション

前後投稿へのナビゲーション

単一投稿ページ(1ページに1つの投稿だけ表示されているページ)の、前後ページへのナビゲーションをわかりやすくしてみました。もともと、投稿の末尾に表示されていたんですが、スクロールしないと見えないうえ、場所も分かりにくかったので、記事のトップに移動しました。書き換えたテンプレートはsingle.phpです。

WordPressテンプレ編集時の注意点

CATEGORIES WordPressby.a.takeuchi13 Comments2009.11.22

WordPressは、わかりやすいソースコードで記述されていて、プログラマでなくてもある程度のカスタマイズを実現できます。今回は、非プログラマが犯しがちな2つの落とし穴について解説します。

1. 文字コードはUTF-8を使うこと。

WordPressのソースコードはUTF-8です。Shift-JISでも、euc-jpでもありません。UTF-8です。エンコードを間違えると、文字化けするだけでなく、重大なエラーが発生し、最悪の場合はWordpressの管理画面が利用できなくなってしまう可能性さえあります。ソースコードは必ずUTF-8で保存してください。

utf-8以外で保存→文字化け

utf-8以外で保存すると文字化け発生!

2. HTMLコメントでコメントアウトしない。

テンプレートから要素を削りたいことってありますよね。たとえば、投稿日時や、投稿者情報、コメント欄など。でも、要素を削るために、HTMLのコメントアウトを使うのは危険です。

<!–<?php the_title();?>–>

上記のソースコード、タイトルを表示させないことを意図していますが、どこが危険なのか分かりますか?HTMLのソースコードを見られたらタイトルがばれるというのも問題かもしれませんが、本当の問題は、the_title()の中でHTMLのコメントアウトが出力され得るということです。HTMLコメントは、入れ子構造に対応していません。そのため、the_title()がHTMLコメントを出力すると、以下のようになり、表示が崩れてしまいます。

<!– <!– title –> タイトル –>

こうなってしまうことを防ぐためには、PHPのコメントアウト、もしくは、if文を使った実行制御で対応しましょう。

単行PHPであれば//で十分。

<?php // the_title(); ?>

複数行のコメントアウトはif文を使うと便利。

<?php if(0){?>
この部分はHTMLに出力されません。
<?php } ?>

もちろん、PHPの複数行コメントアウトである/* */も使えますが、/**/も入れ子構造に対応していません。なので、if(0){}で囲ってしまうのが一番確実です。

この記事は、Wordpressのテンプレート編集時の注意事項というタイトルで書きましたが、これらの注意点は、PHPなどのWebアプリケーションのソースコード(特にview部分)を書き換える場合には汎用的に使える知識です。

WordPressにパンくずリストをつけてみた。

CATEGORIES WordPressby.a.takeuchi0 Comments2009.11.22

WordPressにパンくずリストを表示するプラグイン を使って、SmartBrainの製品サイトにパンくずリストをつけてみた。ページ階層が深くなると、パンくずリストは必須ですね。

最近、9名のスタッフで、月に250ページ以上のWeb、blogを作って公開しています。過去のものを移植するのも含め、年内には、2,000ページに到達します。少ないスタッフで多くのページを量産できているのは、WordPressという便利なツールを利用しているのもありますが、大きな目標、理由があっての活動です。

突然ですが、私は、勉強のコツと、仕事のコツは似ていると考えています。勉強法と仕事法は同一と言っても良いぐらいです。私の勉強方法は、勉強方法を決めたら、方法論は大きく変えず、可能な限り多くの時間を投入することに集中する方法です。一見、要領がわるいようですが、とにかく時間を多く投入することです。努力した時間は、絶対裏切らないという信念を持っています。

たとえば英語を勉強する方法を書いた書籍やBlogはたくさんあります。その中から自分にあった方法論を決めます。また、成功談をまとめた文章を読み、自分が将来、どのような姿になりたいかイメージを明瞭にして、学習のモチベーションを上げます。方法論が決まり、モチベーションが上がったら、ひたすら「量」の追求をします。方法を決めたら、後は振り返らず、ひたすら時間を増やすことに専念します。時間と量を増やすことが最も肝要です。学習方法をコロコロ変えるより、毎日3時間、1年間で1,000時間かならず時間を当てることが重要です。究極の効率化、方法論を追求することも重要ですが、毎日コツコツ、学習を積み重ねることが、何よりも、もっとも効率の良い方法ではないかと思います。

学習を始めた直後(新しい仕事を始めた直後)も、様々な障害があり、なかなか勉強が進まなかったり、時間がとれなくなったりします。とにかく設定した目標「量」、きめた「時間」を達成することに集中します。質の向上は、量の増加があって初めて可能だと考えています。最初に、ライバル各社やお手本になる製品を徹底的に調べますが、そこにいくら時間をかけても、自社の製品は良くなりません。勉強法をいくら調べて改善したとしても、学習そのものの量が増えないことには、意味がありません。

私たちは、新しいeラーニング製品を作ったり、サービスを提供して、最終的なゴールとしては、すべての人にeラーニングを提供したい。人々が学びに熱中し、争いごとを忘れるほど、熱中させたいと考えています。学びは人間の本能の1つです。最高の学びの機会があれば、人類は、学びに熱中し、戦争に明け暮れることが減少すると信じて活動をしています。この目標達成のために、方法論を決定し、今は時間を当てること、量を増やすことに集中しています。

Blogは3ヶ月で、約200件の投稿をスタッフで力を合わせて書きました。スタートは、50件/月を目標としましたが、先月から75件/月まで、目標量が増加しています。アウトプットの量を増やすことで、自然にインプットの量を増やす必要があります。また、eラーニングについて真剣に考える時間が増えます。1年後には、1000件の記事が達成します。最高の記事を書くことよりも、毎日、コツコツ続けて、量を積み重ねることを1つの目標にしています。

現在、内容もバラバラ、質も決して最終的な目標には到達できていません。私たちがゴールとする「すべての人にeラーニングを!」という思いを伝えたり、eラーニングのすばらしさ、学ぶことのおもしろさを、このblogで伝えていければとおもっています。

blogだけではなく、webも大量に作成しています。PPT2Flash ProfessionalQuizCreatorDemoCreatorWebVideoAuthorPPT2MobileLectureMAKERなどのマニュアルを、オンラインマニュアルとして、急ピッチで作業をしています。FAQを、オンラインで公開する予定でしますので、上記製品だけでも、ページ数が、900ページあります。2009年11月中に全てを完成させるために、鋭意作業をしています。

創業から、まだ3ヶ月、みななで力を合わせ、WordPressという至高のツールを利用し、完了しただけでも、800ページ程度のwebを公開してきました。質や社会への貢献度を考えると、まだまだ改善、改善が続きます。改善は続きますが、毎日たゆまず、歩みを続け、決めた方法で量をこなすことで見えてくるもの、習得できるものがあると思っています。量が質を生み出すを信じています。

Webページに至らぬ事、改善すべきことが多数ありますが、お気づきの点、ありましたら、遠慮無くご連絡をいただければと思います。皆様の声を、迅速に反映して、目標である「eラーニングをすべてのひとに!」を実現させていきたいと、心から思い、スタッフ一同活動する毎日です。

wordpressでログインを必須にする方法

CATEGORIES WordPress, その他by.a.takeuchi1 Comments2009.11.12

社内用だったり、会員制などの用途でWordPressを利用する場合、登録済みのユーザのみにコンテンツを表示させたい。なんてことはないでしょうか?
実際、調べてみても標準の管理画面でそんな機能はないし、プラグインも見あたりません。(調べ方が悪いのかも。。。)

と、いうことで力業ですが、WP2.8系のプログラムソースをちょっといじって実現する方法をまとめます。

利用するのは、WP標準関数群のis_user_logged_in()auth_redirect()
簡単に言うと、アクセスされたときにログインしているかどうかを判定して、ログインしていない場合は、管理画面のユーザ認証画面にリダイレクトするというもの。

では、実際にどこを書き換えればよいのか見てみましょう。
WordPressのプログラムを見てみるとルートディレクトリに”wp-blog-header.php“があります。中を覗いてみると次のようになっています。

if ( !isset($wp_did_header) ) {
$wp_did_header = true;
require_once( dirname(__FILE__) . ‘/wp-load.php’ );

wp();
require_once( ABSPATH . WPINC . ‘/template-loader.php’ );
}

そこで、ここに赤字で書いてある部分を追記します。

if ( !isset($wp_did_header) ) {
$wp_did_header = true;
require_once( dirname(__FILE__) . ‘/wp-load.php’ );

if (is_user_logged_in()){
}
else {
auth_redirect();
};

wp();
require_once( ABSPATH . WPINC . ‘/template-loader.php’ );
}

あとは、保存して、ファイルを差し替えるだけ!!

※今回の内容はプログラムを書き換える必要がありますので自己責任でバックアップをしてください。

WordPressをチューニング SQL表示プラグイン

CATEGORIES WordPressby.a.takeuchi11 Comments2009.11.11

唐突ですが、Wordpressって重いですよね。機能はしっかりしてるし、拡張性もあるんだけど、性能だけはあまり評判がよくありません。こういうWebアプリで、性能が悪くなる原因はたいていDBアクセスにあります。ということで、どんなクエリを実行したか一目で確認できるプラグインを作ってみました。このプラグインを組み込めば、WordPressの実行に対する理解が進み、性能改善のヒントになると思います。

ダウンロード: db_logger

このプラグインを組み込んだあと、GETで db_logger=true を渡すと、WordPressの末尾にDBの実行履歴が表示されます。その後は、db_logger=falseを渡すまでデバックモードを継続します。このブログであれば http://blog.elearning.co.jp/?db_logger=true にアクセスすると、ログの表示が始まり、 http://blog.elearning.co.jp/?db_logger=false にアクセスするとログの表示がとまります。

※SQLの実行履歴を公開すると、セキュリティーホールを発見しやすくなってしまうので、”db_logger”の部分は変更できるようにしてあります。($logkey = ‘db_logger’; の部分を書き換える)。公開サーバに組み込む場合は必ずこの値を変更するようにしてください。

<?
/*
Plugin Name: DB Logger
Plugin URI: http://php7.jp
Description:
Version: -1
Author: よういちろう
Author URI: http://php7.jp
*/
$logkey = ‘db_logger’;
function db_logger($query){
$GLOBALS[‘query’][] = $query;
return $query;
}
function show_db_log(){
echo ‘<table border=1 bgcolor=white>’;
foreach($GLOBALS[‘query’] as $query)echo ‘<tr><td align=left>’.$query.'</td></tr>’;
echo ‘</table>’;
}
if(isset($_GET[$logkey])){
if($_GET[$logkey] == ‘true’){
$_SESSION[$logkey] = true;
}else{
unset($_SESSION[$logkey]);
}
}
if(isset($_SESSION[$logkey])){
add_filter (‘query’, ‘db_logger’);
add_action (‘shutdown’, ‘show_db_log’);
}

株式会社キバンインターナショナル(東京都千代田区 代表取締役社長 西村正宏)は、DemoCreatorのホームページに、よりお客様の声をききやすく細かな情報発信ができるよう、WordPressを採用し、ミニブログTwitterを取り入れたHPへと更新いたします。
Twitterを利用することで、これまでは、新着情報として公開することのできなかったような小さなニュースや、ソフトウェアの便利な活用方法、キャンペーン情報などを、随時発信していきます。
また、一方的な発信だけにとどまらず、twitterユーザーからのフィードバックを元に、eラーニング関連のソフトウェア、サービスの充実をはかりたいと考えています。

また、これまで集合研修として実施してきたDemoCreatorの教材作成講習の一部を、オンラインセミナーとして無料で提供いたします。
このDemoCreatorオンラインセミナーは、オンラインセミナーサイトで閲覧することができます。

●DemoCreatorとは
DemoCreatorとは、PC画面を録画(キャプチャ)し、Flash形式などのデモムービーを作成できるソフトウェアです。
マウス・キーボード操作が記録され、吹き出し・テキスト・音声・ロゴ画像などを加えることができるので、他にないデモを作成することができます。

価格:1ライセンス 16,800 円~
(詳しくは、ホームページをご覧下さい。)

URLはこちら
http://democreator.jp/

●販売方法
オンラインでの見積もりはこちら
http://democreator.jp/?page_id=10

購入は、オンラインからのお問い合わせをご利用ください。
ダウンロード販売、または弊社からメディアを送付するパッケージ販売がご利用になれます。

購入はこちら
http://DemoCreator.jp/?page_id=210

●DemoCreatorオンラインセミナーの閲覧方法
1. 下記のURLにアクセスしてください。
http://e-seminar.info/

2. 閲覧したいセミナータイトル(DemoCreator概要)をクリックしてください。

3. 講座が再生されます。

※閲覧には、Flash Playerが必要です。


●株式会社キバンインターナショナルとは

株式会社キバンインターナショナル(http://elearning.co.jp/)では、「eラーニングをすべての人に!」という目標に向けて活動をしており、
その目標を達成するために、自社で製品・サービスを開発するだけではなく、日本・海外から優れた製品を探して皆様にお届け致します。

●連絡先
株式会社キバンインターナショナル
〒101-0021 東京都千代田区外神田6-7-3 セイコービル4F
URL:http://democreator.jp/
担当:中村(なかむら)、長谷川(はせがわ)

お問合せ先:下記のお問い合わせフォームよりお問い合わせ下さい。
http://democreator.jp/?page_id=12

WordPressのアーカイブページでSEO

CATEGORIES WordPressby.a.takeuchi0 Comments2009.11.10

このブログは、WordPressのinovというテンプレートを使って作成していますが、タグに対するアーカイブと、カテゴリに対するアーカイブが、単なる記事の羅列になっていて寂しかったので、少し改良してみました。下記設定例のヘッダー部分をご覧ください。WordPressでは、カテゴリやタグに対して説明(Description)をつけることができるので、その内容をタグアーカーブ、カテゴリアーカイブの先頭に表示しています。カテゴリやタグのページは特定キーワードに対する属性が強いため、これらのページからの固定リンクは、SEOに有効だと思います。

設定例
カテゴリ: PPT2Flash http://blog.elearning.co.jp/?cat=54
タグ: TOEFL http://blog.elearning.co.jp/?tag=toefl

ソースコード(archive.php)

if (is_category()) {
//printf( __(‘Archive for the &#8216;%1$s&#8217; Category’, ‘inove’), single_cat_title(”, false) );
$cat = get_category($_GET[‘cat’]);
echo $cat->description;
} elseif (is_tag()) {
//printf( __(‘Posts Tagged &#8216;%1$s&#8217;’, ‘inove’), single_tag_title(”, false) );
$tag = get_tag($_GET[‘tag’]);
$tag = get_term_by( ‘name’, $_GET[‘tag’],  ‘post_tag’ );
echo $tag->description;

この変更は、archiveページがあれば、ほとんどのwordpressテンプレートに適用可能だと思います。

ブログに画像をアップロードした際に、横幅が圧縮されて困ったこと、ありませんか?

1024×768の画像で、width=1024 height=768に設定しているのにもかかわらず、横幅がつぶれてます。

firefox3

知ってる人は知ってるとおもいますが、これはスタイルシートのmax-widthが指定されているからです。スタイルシートのmax-widthが指定されていると、width属性を指定してもmax-widthが優先されてしまいます。これは、デザインが崩れないようにするためには合理的なのですが、どうしても、なにがなんでも、でっかい画像を張りたいということもあると思います。

そういうときは、min-widthを設定すると潰れずに表示されます。min-widthによる制約が、max-widthよりも優先され、min-widthで指定したサイズで表示されるのです。

firefox3

merginにマイナス値を設定すると、右側の部分を表示させることもできます。

firefox3

  • 製品・サービス
    PC、iPhone対応のeラーニングシステム。20名まで無料でASPサービスを利用できます
    PC、iPhone対応のeラーニング学習管理システム(LMS)【SmartBrain】
    http://smartbrain.info/
    PC、iPhone対応のeラーニングシステム。ユーザ数無制限のASPコースをご用意。


    eラーニングポータルサイト【elearning.co.jp】
    http://elearning.co.jp/
    eラーニング専門企業(株)キバンインターナショナルの製品を紹介しています。


    コンテンツビジネス支援パック
    http://contentsbank.jp/

    Ustream配信、動画コンテンツ制作、セミナーにご利用いただけるレンタルスタジオ
    Ustreamレンタルスタジオ「パンダスタジオ」
    http://pandastudio.tv/

    eラーニング専門企業(株)キバンインターナショナルのスタッフが、eラーニングに関する情報・最新事情をBlogでご紹介。月50本程度の情報発信を行っています。
    ブログ「blog.eラーニング.co.jp」
    http://blog.elearning.co.jp/

  • アーカイブ
  • カテゴリー
  • Amazon
  • タグ