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

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


2
テーマからプラグインディレクトリを取得する
誰かがテーマのfunctions.php内からプラグインディレクトリパスを取得する非ハッキングな方法を知っていますか? plugin_dir_path(FILE)を使用しましたが、テーマのfunctions.phpで呼び出されているため、そのファイルへのパスを返します。プラグインディレクトリではありません。文字列を操作してプラグインパスを追加することもできますが、パス全体をハードコーディングするのとほとんど同じように感じません。 私はそれを使ってそれを働いています: require_once( ABSPATH .'/wp-content/plugins/ehu-events/event-widget.php' ); しかし、私はそれがとても古風で間違っていることを知っており、おそらくそれを使用するためにワードプレスコミュニティから敬遠されるでしょう! これに使用できる標準のワードプレス機能はありますか?

5
最近<WP 3.x互換プラグインを書くことの重要性は何ですか?
私は現在、カスタムポストといくつかの関数を含むシンプルなプラグインを作成しています。ポストメタデータを使用し、データベースの「オプション」テーブルにいくつかの変数を追加しています。調査中、WP Codexで、プラグインをWP 3.xより前のバージョンと下位互換にすることについていくつかの参照を見つけましたが、その互換性を組み込むことが今どれだけ重要であるかを考えていました。 たとえば、(クライアントによって)インストールされたWPの最も古いバージョンは3.2、またはその近くにありました。3.xより古いものを持っている多くの人を想像することはできませんが、私は間違っている可能性があります。理論的には常に完全に互換性を保つように努めるべきだと知っていますが、現実的には、その機能を含めることがどれほど重要であるかを誰かが知っていますか? ありがとう

1
WP_Queryの柔軟な抽象化を作成する方法?
私の質問はphpについてですが、プラグインを作成しているため、ワードプレスが関係しています。ケースは私が5つの質問を持っているということです、各質問は6つの選択肢とそれぞれから選択する1つの選択肢を持っています。今、人はそれぞれまたはいくつかから任意の選択肢を選択します。私は、100近くの組み合わせが作成されるように、長くなりすぎてさらに処理が進むため、現在私を怒らせているif条件を作成しました。私はそれを望んでいません、多次元配列の方法があることは知っていますが、ワードプレスのプラグインやphpエキスパートではありません。だから誰かが私のためにそれを並べ替えることができれば。 $qs = $_POST['q1']; $q2 = $_POST['q2']; $q3 = $_POST['q3']; $q4 = $_POST['q4']; $q5 = $_POST['q5']; $q6 = $_POST['q6']; $args = array( 'post_type' =&gt; 'product', 'posts_per_page' =&gt; -1, 'tax_query' =&gt; array( 'relation' =&gt; 'AND', array( 'taxonomy' =&gt; 'product_cat', 'field' =&gt; 'slug', 'terms' =&gt; 'fashion-follower' ), // array( // 'taxonomy' =&gt; …

1
プラグインファイルは、WordPressによって「ピックアップ」される特定の規則に従う必要がありますか?
メインプラグインファイルにプラグインフォルダー(prefix-somepluginフォルダーとprefix-someplugin.phpファイル用)の名前を付けるという通常の規則を使用してプラグインを開発しました。ただし、次の構造を使用するプラグインがいくつかありました。 prefix-someplugin - plugin-loader.php // This file just loads src/prefix-someplugin.php - /src - prefix-someplugin.php 明らかに、彼らがそのような構造を使用した場合、それはそれが機能することを意味します。問題は、それがどのように機能するのかわからないことです。WPは、メインプラグインファイルとしてロードするファイルをどのようにして知るのですか?私はそれがフォルダーにちなんで名付けられたファイルを探し.php、拡張子として追加するだけだと思っていたでしょうが、それは私が間違っていたようです。 WPjust wp-content/pluginsはフォルダーをスキャンし、フォルダー内にあるすべてのファイルをロードしますか、それとも別のロジックに従いますか? 回答ありがとうございます。

5
ファイルがすでにメディアライブラリにあるかどうかの確認
プラグインでカスタムファイルを作成し、WordPress Codex for wp_insert_attachmentで提供されるコードを使用してそれらをメディアライブラリに追加しています。しかし、私のプラグインは時々それらのファイルを上書きします。ファイルがメディアライブラリに再度追加されないようにする必要があります。これが現在のコードです: $wp_filetype = wp_check_filetype(basename($filename), null ); $wp_upload_dir = wp_upload_dir(); $attachment = array( 'guid' =&gt; $wp_upload_dir['baseurl'] . '/' . _wp_relative_upload_path( $filename ), 'post_mime_type' =&gt; $wp_filetype['type'], 'post_title' =&gt; preg_replace('/\.[^.]+$/', '', basename($filename)), 'post_content' =&gt; '', 'post_status' =&gt; 'inherit' ); $attach_id = wp_insert_attachment( $attachment, $filename); // you must first include the …

4
サードパーティのPHPライブラリをどこに置くか?
同じサードパーティのPHPライブラリをすべて使用する、いくつかのオープンソースプラグインとテーマ(すべて「スイート」の一部)を開発しています。私はそれをワードプレスに含めるための最良の方法は何だろうと思っています。ここにいくつかの考えがあります: プラグインの1つに配置し、そのプラグインをインストールしてアクティブ化する必要がある それを含める以外に何もしない特別な「コア」プラグインを作成する 直接入れる wp-content そのことについて何か考えはありますか?

3
カスタムメニューページにadd_settings_errorを実装するにはどうすればよいですか?
プロフェッショナルWordPressのプラグイン開発の本は、正しく設定APIを使用する方法を詳細に説明し、それはまた、メニューとサブメニューを追加する方法を示していますが、残念ながらそれは、この任意の加入アップの例を提供していません。私はほとんどそれを機能させることができましたが、カスタムメニューページにadd_settings_errorを適切に実装する方法を理解できません。これが私のコードです: function settings_main_validate( $input ) { $valid['text_string'] = preg_replace( '/[^a-zA-Z]/', '', $input['text_string'] ); if ( $valid['text_string'] != $input['text_string'] ) { //add_setting_error: $title, $id, $error_message, $class add_settings_error( 'fields_main_input', 'texterror', 'Incorrect value entered!', 'error' ); } return $valid; } 上記の検証はadd_options_page、を使用してレンダリングされた設定でうまく機能しますが、でレンダリングされたページに設定エラーを表示しませんadd_menu_page。

3
プラグインディレクトリ「最終更新」は最初のコミット後に変更されませんか?
2010-05-12にコミットしたRewriteアナライザプラグインの最初のバージョンをリリースしました。ただし、WordPress.orgプラグインディレクトリには2010-11-27が「最終更新」日として引き続き表示されます。これは、プラグインディレクトリがリポジトリに作成された日付です。 開発者FAQは述べています: 最終更新時刻バージョン番号が変更された後 、適切なディレクトリ(trunk /またはstableタグディレクトリ)に最後にチェックインした時刻。 ほとんどの開発者は、プラグインディレクトリが作成された直後に最初のバージョンをコミットするため、違いに気付かないでしょう。しかし、ディレクトリが作成されてから1日以上経過してコミットされた他のプラグインでも同じ不一致が見られます。 私はtrunk/とtags/1.0/ディレクトリの両方を一度にコミットしましたが(ローカルコピーしてからコミットして)、この問題のある他のプラグインは、ほとんどの人がするようにそれを行いました:へのコミットtrunk/とその後のリモートコピーtags/1.0/。 オットーは最近言った: readmeが解析されてエントリが再構築されるのは、プラグインのバージョンが変更されたときだけです。ただし、タグを使用しているユーザーの場合、これは通常、新しいタグを作成して安定タグを更新した後に発生します。 readmeファイルが解析されたので、正しく更新するために他に何ができたのかわかりません。


3
Add New PostページのVisibilityをデフォルトでPrivateに設定するにはどうすればよいですか?
[新しい投稿の追加]ページを変更するプラグインを作成しようとしているため、[可視性]フィールドにはデフォルトで「プライベート」と表示されています。 Status: Draft Visibility: **Private** Publish immediately [Publish] ... WordPressが通常想定しているものとは対照的に: Status: Draft Visibility: **Public** Publish immediately [Publish] 現時点では、「wp_insert_post_data」フィルターを使用しています。これにより、post_statusが「auto-draft」の投稿を「private」に変更できます。これは機能しますが、意図しない副作用があります。post_statusを「private」に変更すると、投稿が自動的に公開され、エディターのボタンが「Update」に変更されます。さらに、ユーザーがタイトルを指定する前に保存した場合、投稿は「自動ドラフト」というタイトルで公開されます。 投稿を自動的に公開せず、デフォルトで[表示]を[非公開]に変更して、ボタンを[更新]に変更する方法はありますか?通常のWordPressでは、ユーザーは表示を手動で非公開に変更でき、ボタンは[公開]のままです...プラグインを介してそれを実現するだけです。また、ユーザーが希望する場合でも、ユーザーが「パブリック」を選択できるようにしたいと考えています。 ありがとう!

3
アップロード後にアップロードされた添付画像へのパスを取得する
メディアアップロード画面を使用してWordpressに添付ファイルをアップロードした後、画像をアップロードした後に実行できるフックまたはフィルターはありますか?アップロードした画像へのパスを取得して分析できますか? アップロード後に画像を分析し、画像にある平均的な色で画像にタグを付けるプラグインを作成しています。唯一の問題は、画像がアップロードされた直後に起動するフックを使用して、新しくアップロードされたファイルへのパスを取得する方法がわからないことです。 任意の助けをいただければ幸いです。

2
カスタム投稿タイプの「新規追加」ページの再設計
私はこれを解決するためにグーグル全体を閲覧してきました。取得した訪問者をログインするための作業用のカスタム投稿タイププラグインを書いています。私は最初にカスタム投稿タイプなしのモックアップを書きました、それから私はここでグーグル検索から出てきて、弁護士に関する情報を保存するためにカスタム投稿タイプの例を示すスクリーンショットを見ました。それは、まったく新しいインターフェースを備えたカスタム投稿タイプの「新規追加」/「編集」ページを誰かが再設計したことを示していました。 wordpress @ stackexchangeにカスタム投稿タイプの「追加/編集」ページを再設計するためのリソースがあるかどうか疑問に思いました。 しかし、その記事を見つけるために行った検索語句を思い出せません。 ありがとう、 ザック

3
新しいWordPress 3.1管理バーはプラグイン可能ですか?どのように拡張できますか?
プラグインでWordPress 3.1管理バーの機能を拡張するにはどうすればよいですか? リンクやその他の機能を管理バーに追加するときに使用する特定のフックとフィルターを探しています。 すでに行われていることの良い例は、Yoast WordPress SEO(Wordpress Plugin)です。 現在、管理バーの拡張に関する利用可能なドキュメントはありません。コーデックスによると、それをオフにするか表示しないための2つのフィルターがあります: no_admin_bar() & show_admin_bar()

3
新しいプラグインのピアレビューを取得していますか?
経験豊富なWordPress開発者が私のプラグインを見て、建設的な批判をするための最良の方法は何ですか?私はこのサイトで私の質問のいくつかを解決するためのコードを書きましたが、それらは他の人にも役立つと思います。しかし、彼らは私の最初のパブリックWordPressプラグインを使用し、パブリックWordPressディレクトリにそれほど大きくない例を多く見たので、「私が立っている場所」と、プラグインを改善する方法を知りたいのです。ベストプラクティスのリストを読みましたが、それらの一部を適用する必要がありますが、「これはこの問題を解決するのに良い方法ですか?」というより一般的な質問への回答も必要です。 私は関連する議論をwp-hackers読み直しました(参加者もこのサイトにそれほど関与していること、および「ベストプラクティス」の質問がその直接の結果であることを知りませんでした)。私のニーズがそのようなシステムでカバーされるかどうかはわかりませんが、ポールの懸念に同意します。 先週このスレッドの元のコメントを読んだとき、目的は、プラグイン開発者が他のプラグイン開発者にコードのレビューとしてアドバイスを提供できるピアレビュープロセスをまとめることでした。私はもともとこのアドバイスを「まあ、あなたのコードは機能しますが、このWPフィルターにフックしてこの手法を試しただけの場合、記述した一連のルーチンのほうが効果的です(例としてxxxプラグインを参照)。 」私が思った目標は、WPプラグイン開発の知識を共有し、平凡なプラグイン開発者をより優れた開発者にすることでした。私のように。 これは、ポイントごとのチェックリストのレビューを行うのとは異なるスコープであり、「メンターシップ」のようなものです。これをやろうとする人はたくさんいるようで、このサイトには(もっと良いことに)多くの人が参加しています。そのエネルギーをすべて具体的なものに変換するにはどうすればよいでしょうか。 私の現在の例は、「イメージのサイズ変更」問題を解決するために書いた3つのプラグインです。各プラグインに長い紹介コメントを書いたので、コード全体を読まなくても、自分の意図を理解しやすくなります(私はそう思います)。他の人が見やすくするために他にできることはありますか? 現在の具体的なリクエストは無視してください。彼らにとって早すぎるだけでなく、気が変わって、私の特定の状況で一般的な議論を台無しにしたくありません。

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