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

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

1
カスタムリストテーブルクラスで一括アクションはどのように処理されますか?
WordPressダッシュボードに表示するカスタムデータテーブルを作成しています。テーブルは、プラグインで作成したデータベーステーブルから生成されます。 この領域のコーディングに関する質問のほとんどで、提供されているWordPressカスタムリストテーブルの例を使用していますが、この例には一括アクションを処理するためのものがありません。文書化された例のリンクは次のとおりです。http://wordpress.org/extend/plugins/custom-list-table-example/ バルクアクションを処理するために、この例ではこれだけを提供します。 function process_bulk_action() { //Detect when a bulk action is being triggered... if( 'delete'===$this->current_action() ) { wp_die('Items deleted!'); } } アクションのために選択されたアイテムをプルする方法を知りたいので、アイテムを削除したり、データベースエントリを編集したりできます。

2
カスタム管理ページがadd_options_page()にフックされていない場合、設定APIの更新されたメッセージは表示されません
設定APIをいじってみて、メッセージ(成功またはエラー)が表示されるのは、設定ページがadd_options_page()を介してWordPressメニューにフックされている場合のみであることがわかりました。それ以外は機能しません(例:add_dashboard_page())。これが本当かどうか知りたいですか?私が試したサンプルコードは、設定APIの外部のオプションも更新したいときに、設定APIのregister_settingsをフックする場所にある "RegisteredSettingsTest"クラスを含む回答です。

5
個人用APIからプラグインを更新する
現在、Wordpressプラグインリポジトリで不要なWordPressプラグインを開発しています。ただし、自分のAPIリポジトリからコスチュームに更新をプッシュできるようにしたいのですが。 私はこれについてかなり読んでいます、そして何かについて思われていることの1つはpre_set_site_transient_update_pluginsフィルターですが、これについて多くの情報を見つけることができません。私はこのチュートリアル(http://konstruktors.com/blog/wordpress/2538-automatic-updates-for-plugins-and-themes-hosted-outside-wordpress-extend/)を試しましたが、うまくいきませんでした。コメントから、WPのほぼ現在のバージョンであるはずのバージョンで他の人が実際にこれを機能させることができることがわかります(最新の応答4月22日)。 サイトからプラグインをインストールし、APIフォルダーを2番目のドメインに配置してみましたが、通常、更新が利用可能になったときに受け取る更新通知がまったく表示されませんでした。 カスタムプラグインが他のリポジトリから自動更新を実行することが実際に可能かどうかわからないので、ここにいる誰かがこのようなことについて何か経験があるかどうか知りたいですか?チュートリアルの解決策は簡単な解決策のようでした-より高度な方法でそれを行うことはどういうわけか可能ですか? 自分のリポジトリからこの自動更新を機能させる手助けをいただければ幸いです。 (PS:WPバージョン3.1.3を実行しています)

4
プラグインコードによる大きなHTML出力の処理
私は最近、カスタムjquery画像ギャラリーを投稿に埋め込むためのショートコードを追加する最初のWPプラグインを書きました。これは主に、初期化に必要なJavaScriptとともに、HTMLの適切なチャンクを投稿にダンプするだけです。 ただし、HTML出力をPHPの文字列として手続き的に構築する必要がありました。この種のタグスープは常に私を不快にさせ、HTMLを生成するためのヘルパー関数や部分テンプレートなどを提供するMVCフレームワークでの作業に慣れています。 動的に構築された大量のHTMLまたはJSを管理する必要があるプラグイン作成者の一般的なアプローチは何ですか?

3
ファイルを保存/キャッシュするためのプラグインの標準的な場所は?
プラグインがファイルをキャッシュする場所に関する公式のガイドラインはありますか? そうでない場合、私がフォローできるベストプラクティスはありますか? たとえば、プラグインはバックエンドシステムからコンテンツを取得するため、ファイルをキャッシュすることでメリットが得られるため、バックエンドから同じコンテンツを繰り返しフェッチすることはありません。 ほとんどのクエリはキャッシュプラグインまたはデータベースチュートリアルにつながるため、ここや他の場所での検索は困難です。 私の本能は、それらをのサブディレクトリに置くと言いwp-content/uploadsます。 私の第二の本能は、ファイルをプラグインのディレクトリツリー内に保持することです。これにより、プラグインデータはグループ化されたままになりますが、ユーザーコンテンツがにあるWordPressアーキテクチャには従いません(どのように見えるか)/uploads。

1
完全なHTML入力を取得するtextareaを安全にサニタイズする方法
ユーザーがWordPress管理画面からHTMLメールを送信できるようにするプラグインを開発しています。textarea入力をどのようにサニタイズする必要がありますか?HTMLメールに表示される可能性のあるHTMLタグの全範囲を含めることができる必要があります。私が使用する場合wp_kses()、許可されたタグの膨大なリストを使用する必要があります。 textareaは、カスタムオプションを介してそのコンテンツをデータベースに保存します。

3
プラグインでjQuery UIを使用する方法
私がGoogleで何かを返しても何も返さないのは、世界で悲しい日です。デフォルトの日付ピッカー(またはこの時点では任意の日付ピッカー)を使用しようとしていますが、Wordpress / PHPに関する知識がないために使用できません。私のプラグインでは、jqueryとuiを登録しようとしていますが、その過程でWordPressの他の部分が壊れているようです。誰かが私が間違っていることを教えてもらえますか?彼らが実用的な解決策を提供できる場合、私はすべてのコードをスクラップします: add_action('init', 'add_styles'); function add_styles(){ wp_deregister_style('simpleschoolstyles'); wp_register_style('simpleschoolstyles', SSM_STYLEFILE); wp_deregister_script( 'jquery' ); wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js'); wp_deregister_script( 'jquery-ui' ); wp_register_script('jquery-ui', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js'); wp_deregister_style( 'jquery-ui' ); wp_register_style( 'jquery-ui', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/themes/pepper-grinder/jquery-ui.min.css' ); wp_deregister_script('maskedinput'); wp_register_script('maskedinput', SSM_PLUGIN_URL . '/includes/js/jquery.maskedinput.min.js'); wp_deregister_script('simpleschool'); wp_register_script('simpleschool', SSM_PLUGIN_URL . '/includes/js/simpleschool.js'); } add_action('wp_enqueue_scripts', 'load_scripts'); add_action('admin_enqueue_scripts', 'load_scripts'); function load_scripts() { wp_enqueue_style('jquery-ui'); wp_enqueue_style('simpleschoolstyles'); wp_enqueue_script('jquery'); wp_enqueue_script('jquery-ui'); …

1
マルチサイトのプラグインのアンインストールスクリプト
uninstall.phpプラグインに沿った従来のファイルがマルチサイトで機能しないことに気づきました。 if ( !defined( 'WP_UNINSTALL_PLUGIN' ) ) exit(); delete_option( 'plugin_option_name' ); これにより、すべてのwp_SITE-ID_optionsテーブルのサブサイトオプションが削除されるわけではありません。 これを行うための標準的な方法はありますか?

2
ドラフト投稿プレビューを取得するためにwp_remote_getで現在のCookieを渡す
現在のユーザーCookieをwp_remote_get関数に渡して、ドラフト投稿プレビューページのコンテンツを取得します。 私はすでに質問をチェックします: 現在の投稿のプレビューの本文を読み込むために、どのURLをwp_remote_getに渡しますか? 認証付きでwp_remote_getから「プレビュー投稿」を呼び出すにはどうすればよいですか? しかし、どちらにも、Cookieを取得してwp_remote_get関数に渡す方法を示しています。 Cookieをwp_remote_get関数に渡すことができると思いますが、WordPressのドキュメントでは、WordPressがCookieを保存する方法を説明していますが、Cookie名にハッシュ値を使用するように注意するにはどうすればよいですか? 私がやりたいのは、投稿IDを指定して、WordPress投稿ビューページのコンテンツを取得して分析することです。既に公開されている投稿はすべて正常に機能しますが、ドラフト投稿の場合、ページが存在しないことがわかります。簡略化したコードは次のとおりです。 (...) $post_permalink = get_permalink($post_id); $response = wp_remote_get($post_permalink); $whole_post_page = $response['body']; (...) このコードは投稿の所有者が編集しているときに実行されるため、ユーザーはすでに認証されており、リクエストはローカルの投稿に対するものです。wp_remote_getがポストプレビューページのコンテンツを返すようにするにはどうすればよいですか?ブラウザでプレビューリンクに移動したときにWordPressが行うように。 よろしくお願いします。


1
複数の作者にプラグインのWP.orgリポジトリへのアクセスを許可する
私がリリースしたプラグインには共同編集者がいます。だから私はそれらをreadme.txtファイルに入れて、プラグインページなどに表示されます。 これを行うと、プラグインのSVNリポジトリへのアクセスが自動的に許可されますか?または、それらにアクセスするために通過する他のプロセスはありますか?または、リポジトリごとに1人のユーザーのみが許可されますか? ありがとう!

1
プラグインをマルチサイト互換にする
プラグインを各ブログにインストールして、ブログごとにデータベーステーブルを作成します。私はこのコードを持っています: register_activation_hook( __FILE__, 'install1' ); function install1() { global $wpdb; if (function_exists('is_multisite') && is_multisite()) { // check if it is a network activation - if so, run the activation function for each blog id if (isset($_GET['networkwide']) && ($_GET['networkwide'] == 1)) { $old_blog = $wpdb->blogid; // Get all blog ids $blogids …

3
wp_optionsにa:n:{{}}構文でオプションをどのように保存しますか?
特定のプラグインがどのように機能するかを調べたところ、option_valueのデータがこの配列形式でwp_optionsに格納されていることがわかりました... a:2:{i:20; a:2:{s:8: "original"; s:15: "20.original.jpg"; s:9: "thumbnail"; s:12: "20.thumb .jpg ";} i:8; a:2:{s:8:" original "; s:14:" 8.original.png "; s:9:" thumbnail "; s:11:" 8.thumb .png ";}} 私はこの方法が好きです。カスタムデータを保持するために単一の行しか使用しないため、クリーンアップのアンインストールは簡単です。この構文になるカスタムフィールドでget / set操作を行う標準的な方法はありますか? 更新:デニスと応答を追加した他の人に感謝します。 他の誰かがこの質問を持っている場合のこの方法に関する優れたチュートリアルは次のとおりです> http://striderweb.com/nerdaphernalia/2008/07/consolidate-options-with-arrays/

2
get_option()はget_transient()にアクセスするよりも高速ですか?
今日、私はdbに対してテストを実行して、オプション、カスタムテーブル、およびトランジェントからのキーへのアクセスの速度の違いを調査します。私はテストを1000回実行しましたが、以下はget操作を1000回実行するのにかかった時間です。 get_transient() 0.0245秒 get_option() 0.0068秒 カスタムテーブルからの単純な選択操作0.65秒 また、このテスト中にトランジェントが期限切れになっていないことを確認しました。だから問題は、テストget_option()よりも速く、get_transient()または私が何かを台無しにしたのですか?WordPressでオプションがデフォルトでキャッシュされるため、カスタムテーブルの遅延はありますか?また、オプションは、トランジェントなどの異なるキャッシュプラグインによってキャッシュされますか?

1
例外vsエラーオブジェクトvs単なるfalse / nullを使用する場合
私はプラグインを作成中であり、エラー処理の異なるアプローチをいつ使用するかを判断しようとしています。 私が検討している3つの方法があります: 例外のスロー(カスタムクラス) エラーオブジェクトを返す(WP_Errorの拡張) null / falseを返すだけ 私が考えているいくつかの状況 存在しないレジストリに保存されているオプションを取得または設定しようとしています メソッドに無効な値を渡す(まれなはずです) クラスのオーバーローダーが解決できないメソッドを呼び出す 提案?WordPressプラグインの作成には特別な考慮事項があるため、これを一般的なPHPボードで質問する価値があるかどうかはわかりません。

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