タグ付けされた質問 「pluggable」

30
functions.phpファイルのコードのベストコレクション[終了]
質問または回答の左側にある上矢印をクリックして、質問および有用と思われる回答に投票してください。 現在この投稿を閲覧している他の多くの人と同様に、私はさまざまなブログ、フォーラム、ディスカッショングループを読んで、ワードプレスのスキルを学び、向上させています。過去12か月にわたって、functions.php代わりにコードをファイルに追加することにより、プラグインの使用を置き換えるという使命を担ってきました。プラグインは多くの状況で非常に有用であることに完全に同意しますが、私の経験では、プラグインが存在する場合でも使用ケースの90%で、実際にプラグインを使用すると不必要な合併症と互換性の問題が発生することが証明されました。さらに、多くの場合、そのようなプラグインは、私が必要としない、または必要としないメニューやその他の管理要素を追加しました。 たいていの場合、プラグインのコードを分析することで、必要なコードを削除し、自分のハードウェアにハードコードできることを発見しましたfunctions.php。これにより、不要な要素を含めることなく、必要な機能を正確に提供することができました。 したがって、この投稿の目的は、読者/管理者/開発者を引き付けて、あなたが便利だと思っているコードビットを共有し、テーマのfunction.phpファイルに追加してWordPressを拡張または強化することですプラグイン。 ここに回答を送信する際には、各コードビットにタイトルを付けてください。どのバージョンのワードプレスと互換性があるかを教えてください。情報を見つけたプラグインまたはソース。 私はあなたのすべての回答を楽しみにしています。もちろん、私がそれらを見つけたらいつでも私自身の新しい発見を継続的に追加していきます。


1
子テーマで親関数をオーバーライドする方法は?
私は読んでこれを行う方法を見つけようとしましたが、何らかの理由で、私の子テーマの親関数をオーバーライドできないようです。 TwentyTenを親として使用しています-子テーマのこの関数が親関数をオーバーライドしない理由を教えてください。 // Override read more link function osu_twentyten_continue_reading_link() { return ' <a href="'. get_permalink() . '">' . __( 'Read on <span class="meta-nav">→</span>', 'twentyten-child' ) . '</a>'; } function osu_twentyten_auto_excerpt_more( $more ) { return ' …' . osu_twentyten_continue_reading_link(); } remove_filter( 'excerpt_more', 'twentyten_auto_excerpt_more' ); add_filter( 'excerpt_more', 'osu_twentyten_auto_excerpt_more' ); 再度追加する前に、フィルター/アクションなどを削除する必要があると思いましたか? おかげで、 大須

6
パスワード変更後のメール通知を無効にする
ユーザーまたは管理者がユーザーのパスワードを変更した場合、メール通知を無効にします。 Googlelingをいくつか試した後、プラグインを作成し、にあるwp_password_change_notification関数を上書きする必要があることに気付きましたpluggable.php。 これはプラグインと機能です: <?php /* Plugin Name: Stop email change password Description: Whatever */ if ( !function_exists( 'wp_password_change_notification' ) ) { function wp_password_change_notification() {} } ?> プラグインフォルダーにファイルをアップロードし、管理パネルでアクティブにしました! pluggable.phpファイルはfunctions.phpファイルの前にロードされるため、プラグインでこれを行う必要があります。 とにかく、それは私のために働いていないようです....... ユーザーは引き続きメールを受信します。 すべてのプラグインを無効にし、クリーンインストールでプラグインを実行するため、干渉がありません WP_DEBUG同様にすべてのエラーを表示しません! 他の方法で変更するものや修正する方法を教えてもらえますか(コアの変更を除く:-)) M.

2
WooCommerceで完了した注文に2つ目のメールアドレスを追加する[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新することがありますので、上のトピックワードプレスの開発スタックExchange用。 5年前休業。 この質問をする前に、Woo製品について独自のサポートがあり、ユーザーがそれを使用するように勧められるため、ここで質問に答える(正当な)ためらいがあることを知っています。私は有料のWooユーザーですが、有料サポートではこれを解決できませんでした。私の質問はWPのクラスをオーバーライドすることについてですので、公正に聴取されることを願っています。 私の質問:完了した注文メールが顧客に送信されると、このメールを逐語的かつ自動的に受け取る必要があります。これは、さまざまな請求書PDFによって作成されるような他の形式ではなく、顧客に送信されるのとまったく同じです。 WooCommerceのプラグイン。私は次の行を変更することで非常に簡単にこれを達成できます/woocommerce/classes/emails/class-wc-email-customer-completed-order.php: $this->send( $this->get_recipient(), $this->get_subject(), $this->get_content(), $this->get_headers(), $this->get_attachments() ); 読む: $this->send( $this->get_recipient(), $this->get_subject(), $this->get_content(), $this->get_headers(), $this->get_attachments() ); $this->send( me@myemail.com, $this->get_subject(), $this->get_content(), $this->get_headers(), $this->get_attachments() ); ただし、明らかに、このようなハックはアップグレード後も存続しません。WooCommerceテンプレートをオーバーライドする子テーマがあります。同様にカプセル化された方法でクラスをオーバーライドできる同等のメカニズムはありますか?または、顧客が受信したときにこのメールを受信するという特定のタスクを実行するために、(SMTPサーバーをすべての送信メールを2番目のアドレスにbccするように設定する以外に)別のアプローチをお勧めできますか?

4
pluging.phpの前にプラグインがロードされている場合、プラグインでwp_get_current_user()を呼び出すにはどうすればよいですか?
現在の結果は「PHP Fatal error:Call to undefined function wp_get_current_user()」ですが、これは意味がありますが、役に立ちません。 $ current_userを使用する必要があります。 これが私が現在使用しているコードです: $wp->init(); do_action( 'init' ); // Check site status $file='http://xxxxxxxx.com/wp-admin/wp_includes/pluggable.php'; if ( is_multisite() ) { if ( true !== ( $file = ms_site_check() ) ) { require( $file ); die(); } unset($file); } // Get the current user's info $current_user = …

3
テーマのプラグ可能な機能をオーバーライドする方法は?
私が遭遇したすべてのドキュメントは、プラグインを介してプラグイン可能な関数をオーバーライドすることについて説明しています。 代わりにテーマ開発を行っている場合はどうなりますか? 私のfunctions.phpにはget_user_by()、で定義されている関数をオーバーライドする別のファイルが必要ですpluggable.php。 if( function_exists() )呼び出しを省略すると、「再宣言できません...」というエラーが表示されます。 if( function exists() )呼び出しを含めると、エラーは発生しませんが、プラグイン可能なバージョンが存在するため、もちろん、関数は無視されます。 WordPressの起動順序に関するDominicのすばらしい投稿に基づいて、テーマなどの前にpluggable.php読み込まれることが明らかであるfunctions.phpため、エラーが説明されています。 だから問題は-テーマと一緒にバンドルまたはインストールする必要のあるプラグインを作成することに頼らずに、テーマ内からその優れたプラグイン可能なアーキテクチャをどのように利用できるかということです。 追記:だから、議論はテーマがプラグインがすることをしようとするべきではないということだと思われます。しかし、その議論は(4桁のトラック番号によると)4年以上前のものです。今日のテーマ開発風景の複雑なトポロジーを考えると、この哲学がまだ当てはまるかどうか、何人かのヘビーヒッターから聞いてみたいです。それ以来、私たちが進化してきたと信じたいです。 コンテキスト:多くのカスタムメタデータ、管理バックエンドのカスタマイズ、ログイン/認証プロセス、機能を備えた、お客様向けの1回限りのCMSソリューションを開発しています。そしてもちろん、設計コンポーネントがあります- 。テーマ部分の出番だ事実は、これらは単純にしているされていない再利用可能なコンポーネント-彼らは別のクライアントに適用されることはありません、彼らはGPLの下に置かれることはありませんし、オープンソース化し、彼らが最もあり確かに他のWordPressデプロイメントに配布/インストールしないでください。せいぜい、将来のプロジェクトで活用するいくつかのベストプラクティスがありますが、それは厳密には参照/コピーアンドペーストジョブです。 これは私にとってプラグインの使用例のようには聞こえません。テーマがインストールされ、おそらくTwenty Elevenの子テーマ、スタンドアロンである可能性があります。そのfunctions.phpは、インクルードのボートロードで呼び出し、それぞれが問題のCMSの異なる側面を処理します。次に、テーマテンプレートファイルは、インクルードで定義されているカスタムの「テンプレートタグ」を使用します。プラグインなどの依存関係がアクティブ化されているテーマファイルを使用したくありません。システムに複雑さを組み込むのは意味がありません。もちろん、私はそれを必須プラグインフォルダに入れることができますが、それでもハックのように感じられます-現在、このプロジェクト用に行われたカスタマイズに関係するすべてのものがに含まれていwp-content/themes/my-theme/ます。また、一部のプラグインフォルダーでコンテンツを検索することも検討する必要はありません。 誤解しないでください。プラグインが大好きで、プラグインを使用して作成しています。そして、プラグインがサードパーティであり、妥当な期間内に展開できる可能性のあるベストプラクティスをはるかに超えている場合、私はプラグインをこのような高度にカスタマイズされたテーマ開発と組み合わせて使用​​します。ただし、1回限りのシナリオでコア機能を変更する必要がある場合は、アクションフック、フィルターフックに切り替え、ユーザーおよびプラグイン可能な機能に依存して、ユーザー側と認証側の両方にも対応できるようにしたいと考えています。

2
外部認証情報でユーザー認証を上書きする
私はvBulletinフォーラムと共にWordPressを実行しているサイトで作業しています。ユーザーベースはvBulletinに登録されています。ユーザーがWordPressにログインしているように見えるようにしたり、フォーラムユーザーにコメントを投稿したりするためだけに許可する必要があります。 ユーザーをWordPressで複製することはできません。そのため、WordPressデータベースでのユーザーの作成を含むすべてのソリューションは適用できません。 この方法で認識されたユーザーは、管理者権限または公開権限を持つ必要はありません。コメントする機能だけが、フォーラムのユーザー名の下にコメントを表示できます。 古いバージョンで動作するシンプルなプラグインを作成しましたが、最新バージョンのWordPress(現時点では3.3.2)では動作しません。このソリューションは、プラグ可能な関数wp_validate_auth_cookieとをオーバーライドすることに依存していましたget_userdata。 この機能を実装するための正しい手順は何ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.