どんな状況でも、プラグインやテーマを書く以外にWordpressを修正する必要がありますか?

StackOverflow https://stackoverflow.com/questions/203543

  •  03-07-2019
  •  | 
  •  

質問

最近、前の開発者がwp-adminディレクトリを変更したプロジェクトで作業する必要がありました。 Wordpressは絶えず更新されているので、私には悪い考えのようです。 Wordpressの変更に関する専門知識のレベルに達していないだけですか?

役に立ちましたか?

解決

オープンソースであるため、WordPressなどのソフトウェアがいつでも変更および拡張されることはよくあることだと思います。

変更するか変更しないかは、トレードオフの選択肢です。新しい機能はモジュールとしてカプセル化できます。これにより、機能が必要以上に統合されなくなる可能性があります。ただし、変更を完全に統合すると、新しいバージョンがリリースされたときにソフトウェアを簡単に更新できなくなる場合があります。

ソフトウェアを直接修正するには、誰かがソフトウェアに精通している必要がありますが、必ずしも悪い考えではありません。

副次的に、WordPressを変更することはほとんど必要だと思います。特に、適切なアーキテクチャを使用したり、実際に安全にしたい場合は(OK、それはジャブでした、私を訴えます)。

他のヒント

まあ、それはあなたが内部の事実上のフォークを維持する責任があるという意味でのみ悪い考えです... WordPressがアップデートをリリースするたびに、あなたはあなたの変更をマージするために3ウェイ差分をしなければなりません新しい「本物」 WordPress。 (3者間差分は、古いバージョンのフォークと標準の古いバージョンの差分を実行してパッチセットを構築し、そのパッチセットを新しいバージョンに適用することを意味します。)また、VCSを使用して自分自身を維持する必要があります正気。

これに達していない場合、あなたはそれまでではありません。KISSの原則に従うことと、アプリケーションコードを台無しにしないことには何の問題もありません。

同じことを実行し、同じくらい効率的に実行するプラグインを作成できる場合は、独自のフォークを維持する必要がないように、それを実行する必要があります。

しかし、WordPressには、アプリケーションコードをハッキングすることによってのみ(必要なコードを無効にするだけで、多くの作業をせずに)改善できる(効率性、セキュリティ)ものがたくさんあります。 WordPressは、元々ソフトウェアやデータベースの設計に関する知識がほとんどない人々によって書かれた汚いレガシースパゲッティコードであり、それが自分のであるかを確認するために、すべてのリクエストでデータベースを照会するなど、途方もなく愚かなことをたくさん行います> siteurl は、これが変更されない場合です。2行のコードを変更するのに5分かかっても問題はないので、これはもう行われません。

当時トップ20だったTechnoratiランクのブログでテクニカルリードとして働いていましたが、WordPressを単一のサーバーで、次にクラスター(管理者アクセスとパブリックアクセスで別々のサーバーを使用)に拡張するために多くの仕事をしました。 HTTPアクセラレータとして機能するアップストリームリバースプロキシ(ワニスまたはイカ)と、PEAR :: Cache_Liteを使用したファイルシステムキャッシングへのフェイルオーバーでmemcachedにプラグインする内部オブジェクト/ページフラグメントキャッシュシステムがありました。多くの不要なSQLと処理を無効にするために、健全なキャッシュフレンドリーなHTTPヘッダーの送信などを行うためにWordPressを変更する必要がありました。

MySQLのメモリのみのNDBクラスターストレージエンジンを使用して実行するようにWPを変更しました。これは、多くのクエリでインデックスを指定することを意味しました(ただし、代わりにレプリケートされたクラスターを選択しました)。管理者アクセスとパブリックアクセス用に別々のサーバーで実行するように修正する際に、パブリック側バージョンをロックダウンして、読み取りのみを許可するMySQL権限を大幅に減らして実行しました(3番目のMySQLユーザーがコメント権限を取得しました)。

深刻なコメントスパムの問題(1時間あたり10K)がある場合は、プラグイン以外のことを行う必要があります 。 WordPressはコアを初期化するだけで、同時実行性のないスタンドアロンP4で0.5秒程度であり、WPはコードの毛玉であるため、最初にコアを初期化せずに何もする方法はありません。

" WP-Cron"これらは機能しないため、実際のcrontabにアクセスできる場合は無効にする必要があります。難しくありません。

要するに、私はあなたが修正したい理由を永遠にリストアップすることができました。

これを通して、もちろん、これらの変更を最小限に抑え、できる限り明確に文書化することが保守性の理由からの目標であり、意味のあるときに多くのプラグインとして実装しました。

1つのブログ/フォーラムの組み合わせで、ユーザーが1つのフォームに入力してWordPressとphpBBの両方に同時にサインアップできるように、サインアップ手順をまとめました。プラグインでそれを行うより良い方法があると確信していますが、予期しない利点が1つありました-スパムボットを本当に混乱させます。毎日数人が登録しているにもかかわらず、フォーラムの期間中に約2つのスパム投稿がありました。

もちろん、私がお勧めするものではありません。どちらのソフトウェアもアップグレードできません。

特にWordPressのように更新するプロジェクトでは、可能な限りコアコードの変更を強く推奨する傾向があります。 WordPressでプラグインなどを使用して必要な処理を実行できない場合は、Drupalのような拡張性の高い汎用システムを使用する方がよいでしょう。ブログ指向のCMSを他の何かにハックすることは価値がないかもしれません。

WordPressの古いバージョン(1.0および初期の2.0sでも)では、WordPress自体の変更に目を光らせません。

ただし、WordPressのアーキテクチャは成熟しています。サイドバーを手動でコーディングする必要がなくなりました。代わりに、ウィジェットを使用するようにテーマを移植し、ウィジェットを作成することができます(なんとすばらしいことでしょう!)。何かの表示方法が気に入らない-テーマを変更するだけです! WordPressの処理方法が気に入らない場合は、プラグインを作成します。代わりに、WordPressの現代的なモジュラーコンポーネント(ウィジェット、プラグイン、テーマ)で処理できないWordPressコード自体を変更する理由を考えるのは困難です。

私は、常に「ボンネットの下」にいる人のタイプです。 WordPressなどのオープンソースアプリで。ただし、最近では、WordPressのコアコードを変更する正当な理由はありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top