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

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

2
プラグインのカスタムウィジェット機能が機能しませんか?
作成したテーマの1つからコードを直接取り出しました。これは、サイドバーにドラッグアンドドロップできるウィジェットにパックされた、順序付けられていないリストの50の状態すべてのリストです。 問題は、PLUGINファイルでこのコードを使用しようとすると、次のエラーが発生することです。 Fatal error: Call to a member function register() on a non-object in C:\xampp\htdocs\wordpress\wp-includes\widgets.php on line 431 テーマでは機能するが、プラグインでは機能しないのはなぜですか?ちなみに、アクティブなテーマは、私がコードを削除したテーマではありません。 ここに私のコードがあります:http : //pastebin.com/ZeRWW3yb ありがとう。

4
ドラッグアンドドロップ後のウィジェットフォームの更新(WP保存バグ)
数ヶ月前にこれに関するバグレポートを投稿しました(WordPress trac(ウィジェットインスタンスフォームの更新バグ))。ここでもそれについて書いてみたいと思いました。たぶん誰かが私よりもこの問題に対するより良い解決策を持っているでしょう。 基本的に問題は、ウィジェットをサイドバーにドロップした場合、手動で保存を押す(またはページをリロードする)までウィジェットフォームが更新されないことです。 これにより、form()(保存ボタンを押すまで)ウィジェットインスタンスIDに依存する関数のすべてのコードが使用できなくなります。Ajaxリクエスト、カラーピッカーなどのjQueryのようなものは、すぐには機能しません。その関数からは、ウィジェットインスタンスがまだ初期化されていないように見えるからです。 汚い修正は、livequeryのようなものを使用して自動的に保存ボタンをトリガーすることです: $("#widgets-right .needfix").livequery(function(){ var widget = $(this).closest('div.widget'); wpWidgets.save(widget, 0, 1, 0); return false; }); ウィジェットのインスタンスが初期化されていないよう.needfixでform()あれば、クラスを追加します。 <div <?php if(!is_numeric($this->number)): ?>class="needfix"<?php endif; ?> ... </div> このソリューションの欠点の1つは、多数のウィジェットが登録されている場合、ブラウザが大量のCPUを消費することです。livequeryはDOMの変更を毎秒チェックするためです(これを特にテストしなかったのは単なる推測です)。 バグを修正するより良い方法のための提案はありますか?

8
is_plugin_active関数は存在しません
WordPress 3.0.5を使用していますが、3.1rc4でテストしました。私はis_plugin_active呼び出すしようとすると、私のプラグインの主なPHPファイルでは、私が取得しますCall to undefined function is_plugin_active()。add_actionとadd_filterを呼び出すことができます。これを修正するには、何をチェック/変更する必要がありますか? これは、プラグインページの管理者内部で行われています。私が持っているメインのプラグインファイルの一番上で、if (function_exists('is_plugin_active')) {常にfalseを返します。 また、他のプラグインでメインのプラグインファイルの関数を見ることができません(もしあれば)。

3
Wordpress更新プラグインフック/アクション?3.9以降
私はこれを数回調査しましたが、私の検索では、WordPressの良い習慣であるかどうかにかかわらず、カスタムコード以外はあまり明らかになりません。 最新リリース(WordPress 3.9 "Smith")の時点で、プラグインの更新プロセスにフックが追加されていますか?それは非常に基本的な必要性があるので私は尋ねていますが、まだコーデックスに追加されていないようです。そうでない場合、開発者が採用する一般的なベストプラクティスは何ですか? 編集:明確にするために、私はアクティブ化について話しているのではなく、データベースに変更があった場合やそれ以外の場合は対処できるように、更新について話している。

2
単一のfunctions.phpまたは多くの小さなファイルに分割?
テーマオプションを使用したシンプルなフレームワークを作成しています。コードのチャンクを分割functions.phpし、特定のフォルダー構造内に配置しました。 現在、メインfunctions.phpファイルにrequire_onceは、これらのファイルへの呼び出ししかありません。 しかし、議論のために-含めるファイルが20個になるとしましょう。 質問: これはWPのパフォーマンスに目に見える形で影響しますか? すべてを1つのファイル(functions.php)に収める方が良いですか これについて行く最善の方法は何ですか? ありがとう。

2
すべてのサイドバー名をリストしますか?
私はそのようなすべてのサイドバーをリストしています: global $wp_registered_sidebars; echo '<pre>'; print_r($wp_registered_sidebars); echo '</pre>' だから私は次のようなものを得ています: Array ( [sidebar-1] => Array ( [name] => Sidebar #1 [id] => sidebar-1 [description] => Sidebar number 1 [before_widget] => [after_widget] => [before_title] => [after_title] => ) (...) ) ただし、次のような選択リストとして表示したいと思います。 <select> <option value ="SIDEBAR-ID">SIDEBAR-NAME/option> <option value ="SIDEBAR-ID">SIDEBAR-NAME/option> (...) </select> Wordpress Codexはまったく役に立ちません。 …

5
管理メニューページのコールバックに引数を渡しますか?
状況:私はプラグインに取り組んでおり、それをクラスとして開発していますが、この状況に陥るまではすべてうまくいきました。私は物事を少しきれいにしたかったので、これを試しました。 class MyPlugin { function __construct() { add_action('admin_menu', array(&$this, 'myplugin_create_menus'); } //I don't want to write a function for every options page I create //so I prefer to just load the content from an external file. function load_view($filename) { $view = require(dirname(__FILE__).'/views/'.$filename.'.php'); return $view; } //Here is where the problem …

3
プラグインでJavaScriptをエンキューする方法
今回は、プラグインフォルダーにJavaScriptファイルを含めることに取り組んでいます。 テーマディレクトリからウィジェットファイルを転送してプラグインを作成しようとしています。ウィジェットファイルをコピーしましたが、そのウィジェットファイルはJavaScriptファイルに依存していたため、プラグインディレクトリに/ js /フォルダーを作成しました。このファイルがホストされている場所「jquery.repeatable.js」 このコードを使用しましたが、jsファイルが含まれていないようです- function Zumper_widget_enqueue_script() { wp_enqueue_script( 'my_custom_script', plugin_dir_url( __FILE__ ) . 'js/jquery.repeatable.js' ); } add_action('admin_enqueue_scripts', 'Zumper_widget_enqueue_script'); 私はフォーラムでこれを検索しました-https : //stackoverflow.com/questions/31489615/call-a-js-file-from-a-plugin-directory しかし、まだこれは役に立ちませんでした。 質問をまとめ直します。プラグインディレクトリで、このフォルダーの下にjsファイルがあります-/ js / 正しいプロセスとは何かを含めたいのですが、何か登録する必要がありますか? この部分に何か問題があり'admin_enqueue_scripts'ますか?


2
get_option関数はキャッシュされますか?
プラグインでは、次のコードを使用してデータベースからオプションを取得します。 $options = get_option('my_plugin_options'); プラグインのさまざまな機能でこれを10回使用すると、WordPressはデータベースに対して10個のクエリを実行しますか、それともHTTPリクエストごとに1回だけデータベースを呼び出して結果をキャッシュしますか

3
クラスのショートコードハンドラーでのPHPエラー
現在、プラグインのショートコードを追加するために次の一般的なフローを使用しています。 class MyPlugin { private $myvar; function baztag_func() { print $this->myvar; } } add_shortcode( 'baztag', array('MyPlugin', 'baztag_func') ); このクラスとそのメソッドが呼び出されると、次のエラーが発生します。 致命的なエラー:...のオブジェクトコンテキストにないときに$ thisを使用する (行番号は、私が印刷した場所です$this->myvar) これはWordpressの終わりの問題ですか、私が間違っていることはありますか?それは本当にシンプルなもののようです。

2
プラグイン付きのカスタムページ
カスタムページを有効にするプラグインを開発しています。私の場合、カスタムページには、連絡フォーム(文字通りではない)のようなフォームが含まれています。ユーザーがこのフォームに記入して送信する場合、詳細情報が必要な次のステップが必要です。フォームの最初のページがフォーム送信www.domain.tld/custom-page/に成功した後、ユーザーはにリダイレクトされるはずだとしましょうwww.domain.tld/custom-page/second。HTML要素とPHPコードを含むテンプレートもカスタムにする必要があります。 問題の一部はカスタムURLの書き換えで達成できると思いますが、他の部分は現在のところ不明です。どこから探し始めればよいのか、その問題の正しいネーミングは何なのか本当にわかりません。どんな助けも本当に感謝されます。

3
カスタム管理ページに画面オプションを追加します
ダッシュボードで利用できるような画面オプションをプラグイン設定ページに追加したい。 オブジェクトのadd_optionメソッドを使用してWP_Screenみましたが、2つのオプションしかサポートしていないことがわかりました。per_pageおよびlayout_columns。 ダッシュボードページにあるようなオプションを取得するために使用する画面オプションを誰もが知っていますか? 編集: 私がやろうとしていることを少し説明しましょう。 一括削除プラグインにはさまざまなセクションがあり、各セクションでは、いくつかの基準(カテゴリ、タグ、カスタム分類など)に基づいて投稿を削除できます。使用するセクションと非表示にするセクションをユーザーが選択できるようにします。ダッシュボードページと同様に、ユーザーは表示するダッシュボードウィジェットと非表示にするウィジェットを選択できます。 これを実装するために、チェックボックスのリスト(セクションごとに1つ)を表示し、ユーザーが表示するものを選択できるようにします。 チェックボックスのリストを表示するにadd_optionは、WP_Screenオブジェクトのメソッドを呼び出す必要がありました。私がそれをしていたとき、現在のadd_option機能ではこれら2つのタイプのみがサポートされており、他のタイプは無視されることがわかりました。 1ページあたり layout_columns ただし、ダッシュボードページにはチェックボックスのみが表示されます。カスタム管理ページの画面オプションセクションでも同様のことを複製する方法を知りたいです。

2
PHP変数をjavascriptに渡す
後で使用できるように、いくつかのPHP変数をjavascriptで渡す可能性はありますか? のみsingle.php。 聞いたことwp_enqueue_scriptsがありますが、それではJSファイルへのパスを宣言する必要がありますが、それは必要ありません。

2
プラグイン内の1つのレベルからplugin_dir_url()を取得します
構造を使用していくつかのプラグインを作成しました: /plugins/myplugin/myplugin.php /plugins/myplugin/class/class-myclass.php オブジェクト指向とコード全体の構造化を活用するために クラスファイル内からベースプラグインのURLを取得する必要がある場合があります...私は次を使用していますが、より良い方法があると確信しています: $this->plugin_location = substr(plugin_dir_url(__FILE__),0, strrpos(plugin_dir_url(__FILE__), "/",-2)) . "/"; もう1つのアイデアは、プラグインのすべての設定を保存する追加のシングルトンクラスを作成し、クラスファイルを介して抽象化レイヤーを追加することでした。 どんな助けも大歓迎です。

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