web-dev-qa-db-ja.com

WordPressコアファイルの修正

どうして?

WordPress自体やプラグインの動作を変更する簡単な修正方法は、プラグインやWordPressのファイルを直接変更することです。そのようなアイデアを思いついたとき、通常の反応は次のとおりです。

コアをハックしないでください。

コアファイルを変更するのが一般に悪い考えである理由は何ですか?

考えますか?

ただし、コアファイルを変更しない限り、サイトにとって非常に重要なことができないことがあります。そのような状況で、先に進んでコアハッキングを始める前に、あなたは何に注意する必要がありますか?

どうやって?

すべての選択肢を検討しましたが、唯一の解決策はコアファイルをハッキングすることです。どのようにしてこれをやるべきですか?コアを変更すると、更新などのワークフローにどのような影響がありますか?

21
googletorp

コアをハッキングする必要がある場合、他のユーザーに拡張可能にする方法を検討してください。

アクションフックを追加する

10回のうち9回、特定のファイルに余分なdo_action呼び出しがあった場合のみ、希望どおりに実行できます。その場合、アクションを追加し、文書化し、そしてTracでパッチを提出してください。パッチに正当な理由がある場合(つまり、パッチを使用するのはあなただけではない場合)、おそらくコアに追加することができます。

次に、この新しいフックに結び付けて、必要な機能を実行するカスタムプラグインを作成します(リリース/配布する必要はありません!)。

コアファイルをリファクタリングする

また、異なる動作をするコードが必要な場合もあります。たとえば、変数を参照渡しするか、エコーするのではなく値を返します。座ってコードをリファクタリングして、必要なことを行うようにします...そしてTracでパッチを提出してください。あなたの仕事。


ここでテーマが開発されていますか?コアをハッキングすることは、必ずしもノーとは限りません...ほとんどの開発者は、非常にがっかりする(新しいユーザーや初心者プログラマー向け)何かをする方法を尋ねると、コアをハックすることを提案することを検討する前に、毎回プラグインを提案します)。

ハッキングコアはWordPressの開発と進化の方法ですが、PHPを学んだばかりの人やWPファイルを操作した経験のない人にとっては危険です。コアに触れる前にプラグインから始めてください-プラグインを壊した場合、すぐにそれをアンインストールできます(必要に応じてFTP経由で削除できます)...しかし、コアを壊すと、あなたのサイトに悪いことが起こり、データベースも同様です。

ただし、コアハックが避けられない状況にある場合は、変更を加えてください。また、変更を目立つ場所に公開します(ブログが目立つ場合は、それで十分かもしれませんが... Trac をお勧めします。これは、コミュニティの変更が次のリリースに反映されるためです)。あなたの変更は、100の異なるサイトの問題を解決できる魔法の弾丸になるかもしれません...あなたのサイトの構築を助けたコミュニティに貢献してください。

変更がコミットされると、ハックはコアの一部になり、今後心配する必要はありません。そうでない場合は、少なくとも3か月でWPをアップグレードした後に、ハックを再実装する方法に関する詳細なドキュメントがあります。

21
EAMann

コアをハッキングしないでください。

それは、経験の浅いユーザー向けの第1レベルの提案だからです。これらのハッキングコアはインストールを中断し、変更が更新などを持続することを保証できません。

確かに、コアをハック!

たとえば、SVNなどのバージョン管理システムを使用して、実際にコアをハッキングできます。コアコードの独自の変更をプロジェクトの更新に合わせて維持するのに役立ちます。また、Wordpressのパッチを作成してプロジェクトに送信することもできます。

ハッキングコアは、事実上Wordpressの進化です。

考慮事項

完全なSVNをインストールしたくなくて、変更した(一部の)ファイルがまだわかっている場合は、Diff/Merge(winの場合: WinMerge )または比較機能を持つエディター(例 Notepad ++ with Compare Plugin )。 Linuxでは、同じことを行うコマンドラインユーティリティを簡単にインストールできます。 Geany editor には、Nice Shell統合が付属しています。 。

大変な仕事にはEclipse PDTが好きです。しかし、それは簡単な編集やハック用ではありません。

したがって、適切なツールを使用していて、コアのハッキングに注意を払いたい場合は、その方法が必要です。他のNoobユーザーサーバーに残っている何かを一緒にハッキングする場合(そう、Wordpressはかなり人気があります)、何かを壊した場合に簡単に捨てられるプラグインを提供してください。

3
hakre

問題は次のとおりです。

  1. (セキュリティ修正などの理由で)コアを更新するたびに、自動アップデータを実行するのではなく、手動で更新する必要があります。
    あなたがこれをしたいのなら、自分の人生をより簡単にしてください。
    • すべての変更を共通のマーカーでマークする(.e.g // PATCH START// PATCH END
    • winMergeのようなツールを使用して既存のソースと新しいソースを比較し、必要に応じて変更をコピーします。
    • コピーしているコードの領域が変わった場合には注意して、パッチに適切な変更を加える必要があります。
    • あなたがそれのためにあなたのクライアントを再請求することができない限り、これは「終わることのない」仕事であり、請求可能な時間を取ります。
  2. コアが特定の方法で機能することを期待するプラグインとの非互換性の問題を引き起こすかもしれません - これは余分なテストを必要とするでしょう

時々これは100%避けられないです、しかし私は物事を達成するか、またはこれをするのに費やされる可能性がある時間の費用のためにspecを変える別の方法を思いつくことがほとんど常にできます。これは単なるメンテナンス上の悪夢であり、多くの人々は適切な解決策を探すのではなく、コアをハッキングしようとします。

2
Dan Smart