• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

プラグインとテーマの移行

提供: WordPress Codex 日本語版
2008年2月19日 (火) 23:24時点におけるBono (トーク | 投稿記録)による版 (半端に和訳/Canonical URL の訳語は要検討)

移動先: 案内検索

WordPress 2.1 から 2.2 へ、といった、あるバージョンから別のメジャーバージョンへアップグレードするとき、そのままでは使えないテーマやプラグインがあるかもしれません。メジャーアップグレードでは WordPress に抜本的な変更がなされることがあるため、プラグインやテーマが全く動作しない可能性もありますが、設定の更新やほんの少しの修正によって、使えるようにできるかもしれません。

このページは、プラグインやテーマを WordPress のメジャーアップグレードに対応させる方法の手引きです。

1.2 から 1.5 への移行

1.2 から 1.5 へのアップグレード をご覧ください。古いテーマから現在のテーマシステムへの変換方法などを説明しています。

2.0.x から 2.1 への移行

プラグインとテーマの 2.1 への移行 をご覧ください。

2.1 から 2.2 への移行

バージョン 2.2 におけるプラグインとテーマにとっての主要な変更点は、WordPress ウィジェットが WordPress のコア(本体)に組み込まれたことです。(ウィジェットとは、カテゴリリストやアーカイブリスト・検索フォームといった WordPress の出力要素を、簡単にブログのサイドバーに配置できるようにするものです。従来はプラグインとして提供されていました。)

WordPress 2.2 より前に開発されたテーマでウィジェットを使えるようにするには、テーマのウィジェット対応についてのこの記事でテーマの修正方法をご覧ください。

If you want some output that your Plugin generates to be displayed in a sidebar Widget, you can find out how in this article on Widgetizing Plugins, and you may also find the Widgets API article useful. プラグインでサイドバーウィジェットへの表示を生成する方法は、プラグインのウィジェット対応のこの記事をご覧ください。Widgets API も役立ちます。

2.2 から 2.3 への移行

カテゴリとタグ

バージョン 2.3 におけるプラグインとテーマにとっての主要な変更点は、WordPress 本体の機能としてタグ付けが組み込まれたことです。

テーマにタグを追加(例:記事に付けられているタグの表示、サイドバーへのタグクラウドの表示)するには、新しいテンプレートタグ the_tagswp_tag_cloud を用います。

There were also quite a few new tag-related functions for use in plugins introduced in WordPress 2.3.

また、WordPress にタグを導入する副作用として、カテゴリ情報の格納に関して、基盤であるデータベース・テーブル構造が大幅に変更されました。したがって、WordPress データベースのカテゴリ関係のテーブルを使うクエリを実行するプラグインは、おそらく使えなくなってしまい、クエリを全面的に書き換えなければなりません。カテゴリへのアクセスに WordPress 関数を利用しているプラグイン・テーマであれば、大丈夫なはずです。

Canonical URL

プラグインに影響する 2.3 のもう一つの変更点は、「canonical(カノニカル)」URL の導入です。The canonical URL system basically rewrites all URLs used in WordPress into "canonical" form, so that there is only one URL that points to a given display, and other URLs that could also point to that display are redirected to the "canonical" URL.(カノニカル URL システムは、与えられた表示(ページ)を指し示す URL を一つだけとするために、WordPress で使われる全ての URL を原則として「カノニカル」形式に書き換え、その表示を指す他の URL は「カノニカル」URL へリダイレクトします?) ほとんどのプラグインはこの変更による影響を受けませんが、a plugin that adds suffixes to URLs could find that some of the URLs it generates are broken.(~~~ URL に接尾辞(suffix)を加えるようなプラグインは使えなくなります。) 特に、example.com/page/2/(過去記事の2ページ目にアクセス)のようにページ番号が付く URL は、必ず URL の末尾にページセクションが必要です。WordPress の従来のバージョンでは example.com/page/2/suffix/ は動作できましたが、WordPress 2.3 では、正しく機能させるために URL を example.com/suffix/page/2 と生成しなければなりません。

留意: あなたのサイトを機能させるために、一般的でない URL/パーマリンク構造を使う必要がある場合は、「カノニカル URL」機能をオフにできます。プラグインファイル または テーマディレクトリ内の `function.php` に次の 1行を加えてください。

remove_filter('template_redirect', 'redirect_canonical');

WordPress 2.5 will make a further filter available for choosing which canonical redirects are denied rather than forcing them to be all on or all off.

2.3 から 2.5 への移行

(注: WordPress バージョン 2.4 はありません。とばして 2.5 となります。)

テーマについては、バージョン 2.5 による重大な影響はないでしょう。

もうすぐ公開される WordPress バージョン 2.5 における、プラグインに影響する主な変更点は、WordPress の管理画面とメニューの全面的な見直しです。この変更は、WordPress の管理パネルに対して、メニューへのページ追加や、ある画面内にセクションを追加するようなプラグインに影響します。

First, menus: The menus have been reorganized slightly; most plugins will probably still function correctly, if they used the standard methods of Adding Administration Menus.

Second, screens: Any plugin that had added a section to the post editing screen, or other administration screen, will probably find that the formatting and markup changes on the administration screens in WordPress 2.5 have made their section so that it no longer "blends in" and looks like it belongs with the built-in WordPress sections on the screen. So, plugin authors will either need to release a new version of their plugins for WordPress 2.5, or (preferably) put some decision logic into their plugin that will detect the version and use the right formatting. A good way to do that is to detect whether the new formatting functions have been defined. For example:

if (function_exists('add_meta_box')) {
 // 2.5 style
} else {
 // 2.3
} 

Another change that might affect some plugins is that in WordPress 2.5, the Activation hooks for plugins are run in non-global scope within a function (they used to be run in the global scope). This means that if your plugin has an activation hook, and the function it calls relies on global variables that are defined within your plugin file, you may find that they are not working properly. All you need to do is, at the global scope level in your plugin, add a "global" declaration for those variables, and you should be OK. For instance:

global $my_plugin_variable;
$my_plugin_variable = 3;

function my_plugin_activation_function() {
   global $my_plugin_variable;

   // rest of activation function
}

最新英語版: WordPress Codex » Migrating Plugins and Themes