タグ付けされた質問 「plugin-development」

WordPressプラグインを使用すると、WordPressブログを簡単に変更、カスタマイズ、拡張できます。WordPressのコアプログラミングを変更する代わりに、WordPressプラグインを使用して機能を追加できます。

4
term_idとterm_taxonomy_idの違いは何ですか
タイトルはそれをすべて言います。現在、カスタム分類では、用語IDと分類名を使用して用語を取得しています。 この質問は以前に聞かれたと思いますが、どこにも見つからないでしょう!だから、誰かが何か答えがあるかどうか尋ねてみようと思った。

4
シンボリックリンクされたディレクトリのプラグイン?
プラグインを開発するとき、異なるwp-contentディレクトリにあるプラグインディレクトリをシンボリックリンクすることにより、複数のバージョンのWordPressでテストします。ファイルを一度編集するだけなので、これは素晴らしいことですが、プラグイン内のリソースへの参照を生成するための重要な構造を壊します。__FILE__物理プラグインの場所を参照しwp-contentます。どうすれば解決できますか? 私のディレクトリ構造は次のようになります。 /path/to/wordpress/development/dir/ plugin-development/ monkeyman-rewrite-analyzer/ monkeyman-rewrite-analyzer.php js/ monkeyman-rewrite-analyzer.js versions/ 3.1/ wp-content/ plugins/ monkeyman-rewrite-analyzer 上記のプラグインへのシンボリックリンクとして 3.1-multi-dir/ wp-content/ plugins/ monkeyman-rewrite-analyzer 上記のプラグインへのシンボリックリンクとして 3.1-multi-domain/ wp-content/ plugins/ monkeyman-rewrite-analyzer 上記のプラグインへのシンボリックリンクとして Javascriptファイルをエンキューしたい場合、を使用する必要がありますplugins_url( 'monkeyman-rewrite-analyzer.js', [base file] )が__FILE__、実際のファイルパスは/path/to/wordpress/development/dir/plugin-development/monkeyman-rewrite-analyzer/monkeyman-rewrite-analyzer.phpでなく/path/to/wordpress/development/dir/versions/*/wp-content/plugins/monkeyman-rewrite-analyzer/monkeyman-rewrite-analyzer.phpであるため、ここでの使用は機能しません。したがって、WordPressは最初の部分を削除して、WordPressインストールに関連するURLを生成できません。

4
WordPressプラグインリポジトリを削除する
WPプラグインを作成したかった。だから私は要求し、私の要求はWordPress.orgによって承認されましたが、私はもうそのプラグインを開発したくありません。リポジトリを完全に削除したり、削除を要求したりするにはどうすればよいですか。

5
OOPプラグインの設定ページの提出に関する「エラー:オプションページが見つかりません」
Tom McFarlinのBoilerplateリポジトリをテンプレートとして使用して、OOPプラクティスを利用するプラグインを開発しています。設定を正しく送信できない理由を正確に把握しようとしています。ここで別の質問で提案されているように、アクション属性を空の文字列に設定しようとしましたが、それは助けにはなりませんでした... 以下は、私が使用している一般的なコード設定です... フォーム(/views/admin.php): <div class="wrap"> <h2><?php echo esc_html( get_admin_page_title() ); ?></h2> <form action="options.php" method="post"> <?php settings_fields( $this->plugin_slug ); do_settings_sections( $this->plugin_slug ); submit_button( 'Save Settings' ); ?> </form> </div> 以下のコードでは、 'option_list_selection'を除き、add_settings_field()およびadd_settings_section()のすべてのコールバックが存在すると仮定します。 プラグイン管理クラス(/{plugin_name}-class-admin.php): namespace wp_plugin_name; class Plugin_Name_Admin { /** * Note: Some portions of the class code and method functions are …


3
ワードプレスオプションDBのAPIにユーザー名とパスワードを保存する方法は?
現在プラグインを開発していますが、他の人が使用できるように公開プラグインリポジトリでリリースする可能性が高いでしょう。 プラグインはAPIを使用します。このAPIを使用するには、ユーザー名とパスワードを渡す必要があります。したがって、プラグインはこれらのログイン資格情報をデータベースに保存する必要があります。APIではプレーンテキストで必要ですが、これらをプレーンテキストで保存したくありません。 だから私の質問は、これらの機密情報をどのように保存するのですか?ハッシュは公開されていないため、何らかの暗号化が必要です。 WordPressには、ブログごとに異なるユニークなキーを使用できますか?暗号化および復号化に使用するPHP関数は何ですか?すべてのWPインストールで動作する可能性が高い機能を探しています。

1
新しいアクションで既存のプラグインアクションをオーバーライドする方法
プラグインを使用しています。このようなアクションがあります。 add_action('publish_post', 'old_action'); function old_action($pid) { "code goes here" } } このプラグイン用のモジュールを書いています。そのため、古いアクション関数を新しいアクション関数でオーバーライドする必要があります。 これが私の新しい機能です。 function new_action($pid) { "code goes here" } } フックを使用して、そのold_action関数をnew_action関数に置き換えたいと思います。誰も私を助けることができますか? ありがとう

2
どのコンテキストでプラグインがデータの検証/サニタイズを担当しますか?
プラグイン/テーマのすべてのデータが、データベースに入る前とブラウザーに出力される前に、安全に処理されるようにします。私の問題は、ポストメタフィールドを保存するときなど、APIがサニタイズを処理する状況と、カスタム設定を保存するときなど、プラグイン/テーマの作成者がそれを行う責任がある状況があることです。 この質問の範囲については、ドメインレベルでのデータの検証については心配していません。たとえば、フォームのAgeフィールドが0〜120であるか、電子メールアドレスが有効であることを確認します。私はセキュリティだけに関心があります。たとえば、データベースへの保存時にSQLインジェクションを回避するためにSQLクエリをエスケープしたり、XSSを回避するためにHTMLテンプレートに出力されるデータを無害化します。 出力のサニタイズについては、変数をHTMLテンプレートにエコーするときなどにesc_html()、常に関数を使用する必要があることを知っていますesc_attr()。しかし、テンプレートタグを使用する場合はどうでしょうか。それらはすべて既に出力をサニタイズしますか?その場合、どのコンテキスト(一般的なHTML、タグ属性など)ですか?一部の関数には、さまざまなコンテキストのバリアントがあります(などthe_title_attribute()ですが、ほとんどはありません 入力サニタイズについては、$wpdb->prepare()手動クエリを作成するときに使用する必要があることは知っていますが、Settings APIを使用してプラグイン設定ページを作成する場合、またはカスタム投稿タイプの投稿メタフィールドを保存する場合はどうですか? 現在、関数を使用して関数がサニタイズするかどうかを調べるたびにコアを掘り下げてチュートリアルを読んでいますが、それはエラーが発生しやすく、時間がかかります。考えられるすべての状況と、APIがそれを処理するかどうかの包括的なリストを見つけたいと思っています。例えば、 APIの検証/サニタイズ 投稿メタを保存 update_postmeta() ユーザーメタを保存 update_user_meta() 投稿タイトルの出力-コンテキストに応じた適切なバリアントを使用します the_title() 等 手動で検証/サニタイズする必要があります Settings APIを使用してプラグインオプションを保存する。の3番目のパラメーターとしてコールバックを渡しますregister_setting()。 直接データベースクエリ:クエリをにラップします$wpdb->prepare()。 HTMLで変数を出力します。使用esc_attr()、esc_html()など 等 また、特定の状況ではAPIが提供するが、他の状況では提供しない理由を理解したいと思っています。私はそれがデータの未知の性質と関係があると仮定していますが、徹底的な説明を聞きたいです。

3
プラグインデータをテーマに統合する方法
テーマの統合を提供するWordPressプラグインを開発するためのベストプラクティスに関する意見を聞きたいと思います。 この質問をするときに意味をなすために、私が興味を持っているシナリオの仮説的な例から始めましょう。「Discography」というプラグインを作成するとします。ディスコグラフィーは、「バンド」、「アルバム」、「トラック」の3つのカスタム投稿タイプを登録します。プラグインは、各投稿タイプの詳細を提供するメタボックス、および各投稿タイプを整理するためのカスタム分類も提供します。これらの投稿タイプは、Posts 2 Postsプラグインと結びついています。管理者内で、ユーザーは新しいバンドを追加できます。新しいバンドはアルバムに関連付けられ、アルバムはトラックに関連付けられます。すべてのトラックには、メタボックスと分類法を介して他の多くのデータが追加されます。 さて、このプラグインでユーザーがこの情報を入力できるように管理者を設定するだけでは望ましくありません。データのデフォルトの表示を提供したいと思います。より高度なユーザー/開発者であれば、この管理者のみで十分です。彼女がそのデータを取得してテーマで使用するのは簡単です。ただし、一部のデフォルトビューがなければ、このプラグインはほとんどのユーザーにとって役に立たないでしょう。この例では、次のようなものを表示できます(括弧は、テンプレート階層の順に情報を表示する方法を示しています)。 バンド(single-prefix-band.php、single.php、index.php、ショートコード) アルバム(single-prefix-album.php、single.php、index.php、ショートコード) トラック(single-prefix-track.php、single.php、index.php、ショートコード) バンドリスト(template-band-list.php、page-band-listing.php、page- {id} .php、page.php、index.php、ショートコード) アルバムリスト(template-album-list.php、page-album-listing.php、page- {id} .php、page.php、index.php、ショートコード) アルバムタイムライン(template-album-timeline.php、page-album-timeline.php、page- {id} .php、page.php、index.php、ショートコード) デフォルトのテンプレートファイルには、各投稿タイプに必要なすべての情報が表示されないため、これらの投稿タイプにはデフォルトのプレゼンテーションがあることが重要です。たとえば、Twenty Elevenテーマでは、デフォルトで、アルバムの名前、カテゴリ、説明、投稿日のみが表示されます。アルバムにはあまり役立ちません。バンド、リリース日、レコードレーベル、アルバムバージョン、トラックなどを取り込む単一の投稿テンプレートを提供したいと思います。プラグイン開発者として、私はそれを提供することが重要だと感じます。テンプレートはすべてのテーマで機能するとは限りませんが、ユーザーのテーマとさらに統合できるデフォルトが必要です。 繰り返しますが、この状況に対処する最善の方法は何ですか?次のいずれかを実行できると思います。 ショートコード ショートコードは、非開発者がサイト内のどこにでもバンド、アルバム、トラック、バンドリストなどを追加できるようにする非常に柔軟でユーザーフレンドリーな方法として使用できます。特定のページにバンドを配置したり、バンドごとに個別のページを作成したりするのに役立ちます(あまり効率的ではありませんが、一部のユーザーはこの方法でアプローチします)。ショートコードはHTMLを生成します。HTMLは、目的のデータの見やすいデフォルトビューを提供する提供されたCSSファイルに関連付けられます。すべてがプラグインファイル内に含まれ、テーマで何もする必要はありません。 テンプレートファイル プラグインには、テンプレートファイルも同梱できます。テンプレートファイルをマークアップして、見やすいデフォルトビュー用にスタイル設定できます。投稿タイプが表示されたときにテーマが適切なテンプレートを見つけるように、ユーザーにファイルをテーマフォルダーに移動する指示を提供できます。ユーザーがシングルクリックでファイルを移動できるインターフェースを提供することさえできます(注:起動時にユーザーのテーマフォルダにファイルを作成することはありません。 。 また、フィルターを使用してこれらのファイルをプラグインフォルダーから移動せずに使用し、すべてを自己完結させたままにすることもできます。この目的で使用される「template_include」および「{$ type} _template」フィルターを見てきました。実際、themesフォルダーのテンプレートを使用できます。テンプレートが存在しない場合は、これらのフィルターを使用してデフォルトビューを提供できます。 質問 提示されたアイデアに何らかの問題がある場合、他の人がこれらの状況のベストプラクティスであると考えるもの、および私が含めていない代替案を知りたいです。 ありがとうございました!

3
プラグイン開発の単体テスト
プラグインの1つに単体テストを適用する必要があります。最近、クラスに再設計したので、ユニットテストは今より簡単に適用できるはずです。 プラグインの単体テストに効果的な戦略は何ですか?プラグインで使用されるWordPressの機能を使用する方法が必要ですが、実行中のWordPressサイト(DB AFAIKでデータをテストするだけ)は必要ありませんか? サイトのコンテキストでプラグインではなくプラグインを単体テストする方法を見つけるのに苦労しています。これにはSeleniumを使用できますが、今はプラグインクラスの機能を単体テストすることに集中したいので、更新のたびにそれらを壊さないようにします。

4
最も信頼できるプラグイン開発者は誰ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 注:質問、および質問または回答の左側にある上矢印をクリックして、役に立つと思う回答に投票してください。 そこには非常に多くのプラグインがあります。私たちが常に信頼できるプラグインは誰ですか? プラグインページへのリンクとともに、完全に信頼できるプラグイン作成者のリストを共有してください。 この質問は、functions.phpファイルのコードのベストコレクションをモデルにしています

3
プラグインがアクティブになったら設定ページにリダイレクトする方法は?
独自のプラグインを作成しました。すべては問題ないように見えますが、そのプラグインでやりたいことの1つは、プラグインがアクティブになったときに対応するプラグイン設定ページにリダイレクトすることです。 例えば: http://www.example.com/wordpress/wp-admin/options-general.php?page=rotator たとえば、アクティベーション時に対応するページにリダイレクトする方法はありregister_activation_hookますか?

3
管理ページのbody_classフック
body_classフックは、非管理ページでのみ機能するようです。私がする時 add_filter('body_class', 'add_body_classes'); function add_body_classes($classes) { $classes[] = 'myclass'; return $classes; } 管理ページの本文にクラスを追加する場合に使用する必要がある別のフックはありますか?

2
ユーザーのパスワードをプログラムで変更する方法
デフォルトのプロファイルページのレイアウトと雰囲気はユーザーにとって「Wordpress」であるため、まったく異なるプロファイルページ(Wordpressが提供するものではありません)を作成しようとしています。これで、名、姓、市、郵便番号などのユーザーメタデータを変更できるページを表示できるようになりました。 困ったのは、ユーザーのパスワードを変更することです。change_user_password($ user_id、$ new_password)などの組み込みのワードプレス機能はありますか?私はこれを行うものを探すことができないことに驚いています。 さらに悪いことに、私がやっていることは最悪ですUPDATE wp_users SET user_pass = md5($new_password) WHERE ID = $user_idが、これに機能がない場合は本当に驚かされます。

2
カスタムテーブルで$ wpdb-> prefixを使用することは必須ですか
この質問が簡単な場合は申し訳ありません。WordPressでプラグインの開発を始めたばかりです。 すべてのチュートリアルで私はこれを見つけました:カスタムテーブルの作成中に$wpdb->prefix使用されます。 例: $table_name = $wpdb->prefix . "liveshoutbox"; 私の質問: 使用することは必須$wpdb->prefixですか?カスタムテーブルにプレフィックスを使用しないとどうなりますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.