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

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

5
開発者は、「2年以上更新されていない」とマークされたプラグインを採用できますか?
私はhttp://wordpress.org/extend/plugins/で次の警告とともにいくつかのWordPressプラグインを見つけました。 このプラグインは2年以上更新されていません。WordPressの最新バージョンで使用すると、メンテナンスやサポートが終了し、互換性の問題が発生する場合があります。 このようなプラグインを「採用」または「検証」する方法はありますか?wordpress.orgにはプラグインが1つあるので、プロセスを理解しています。古いプラグインまたはおそらく破棄されたプラグインを最新にする正しいプロセスは何ですか?

3
条件付きでウィジェットのスクリプト/スタイルシートをHEADにエンキューします(ページに存在する場合のみ!)
私は次の条件でWordPressウィジェットのスクリプトとスタイルをロードしようとしています... スクリプトはHEADにロードする必要があります(そうでない場合)。 スクリプトは、ウィジェットが実際に表示されるときにのみロードする必要があります(非常に重いです)。 私は多くの検索を行ってきましたが、これは一般的な(未解決の)問題のように思えます... これは私が今まで持っている最高のものです... 以下は、テキストをサイドバーに出力する簡単なウィジェットです。jQueryを条件付きで(ウィジェットが実際に表示されるときに)正常にロードします...フッターにのみ!(注:このハックは後方互換性を提供する場合がありますが、WordPress 3.3でのみ機能する場合もあります)。 class BasicWidget extends WP_Widget { function __construct() { parent::__construct(__CLASS__, 'BasicWidget', array( 'classname' => __CLASS__, 'description' => "This is a basic widget template that outputs text to the sidebar" )); } function form($instance) { $instance = wp_parse_args( (array) $instance, array( 'title' => '' ) …

3
Settings APIの利点は何ですか?
私がWordPressで仕事をすることはほとんどない、と言ってこれを序文させてください。実際、WordPressでサイトを最後にやったのは2.2の間に戻ってきました。昨日、私はすべてをかなり混乱させ、基本的なメニュープラグインを機能させるために、ここでいくつかの質問をしました。 プラグインが完全に機能し、期待どおりに動作するようになったので、設定APIを使用するなど、機能と互換性を追加するために、あちこちで小さな変更を加えることにしました。しかし、このAPIのチュートリアルを読んで非常に短い時間で、私はかなり混乱しました。次に、この混乱を深め、サンプルを実装しようとしました。 。 何か間違ったことをしていない限り、Settings APIを使用するために理解していることから、PER SETTINGという新しい関数を作成する必要があります。これは、平均的なプラグインでは3〜5個の関数、より高度なプラグインでは最大数百個の関数を意味します。すべての適用可能な$_POST変数を配列に簡単にインポートし、混乱を避けることができる場合に、この多くの関数を記述して(そしてそれらを混乱させないように命名システムを開発するのは)馬鹿げているようです。 たぶん私は昔ながらですが、そこから得るものがない限り、私が書いているコードの量を3倍や4倍にする理由はわかりません。Settings APIを追加する前にオプションを管理する方法は次のとおりです。 function __construct() { /* constructor stuff */ $this->options = $this->db_options = get_option( 'de-menu-options' ); if( $this->options === false ){ $this->options = $this->defaults; } if (is_admin()) { add_action('admin_menu', array(&$this, 'admin_menu')); } /* more stuff */ // When WordPress shuts down we store changes …

2
Eclipseを使用したプラグイン構築の戦略
Eclipse PDTを使用してWordPressプラグインを構築した経験がある人はいますか? 私の状況は: 別のプラグインを拡張するプラグインを構築する必要があります(別のプラグインからプレミアムバージョンとして見てください) 私はすでにplugin coresvnリポジトリからインポートしてプロジェクト(元のプラグイン)を作成しました というEclipseライブラリを作成wordpressし、plugin coreプロジェクトに追加しました。 作成したplugin extenderスクリプトをホストする別のプロジェクトを作成しました。 問題は、それらのプロジェクトを手動でコピーアンドペーストすることなく、ワードプレスで簡単にテストする方法wp-content/pluginsですか?とにかくそれらのファイルを自動的にコピーする方法はありますwp-content/pluginsか?それとも、この問題に別の解決策がありますか? 補足として、私はWindows 7で作業しています。Windowsのを認識していますmklink。しかし、私のhtdocsはFAT32パーティションにあり、次の月にWindowsを使用しなければならない状況にあります。

3
プラグインにget_template_part()を使用してファイルを含める方法は?
非常に単純な質問かもしれませんが、私は苦労しています。テーマの開発では、get_template_part()何度も作業を行い、その基本を理解しました。しかし、私がプラグインを開発しているとき、私はそれを使用していくつかのエラーを表示することを考えました: 通知:未定義の定数STYLESHEETPATHの使用 -407 ...\wp-includes\template.php行目で 'STYLESHEETPATH'が想定されています そして 通知:未定義の定数TEMPLATEPATHの使用...\wp-includes\template.php -410行目で「TEMPLATEPATH」を想定 問題をグーグルすることでサポート修正が示されました: get_template_part()プラグインに使用-WordPressサポート しかし、それは大きな回避策のようです-私はそれを疑います。それほど複雑ではないはずです。私はこのWPSE回答を確認したところ、次のコード行が見つかりました。 if ( '' === locate_template( 'loop-mycustomposttype.php', true, false ) ) include( 'loop-mycustomposttype.php' ); PHP include()関数があるところ。私のWordPressの知識に従って、私get_template_part()はPHP よりも好むことを学びましたinclude()。次にget_template_part()、プラグインでシンプルをどのように使用できますか? 私はループなどを使用していません。プラグインコードを別のファイルに分離(または整理)しているだけなので、場合によっては、コメントアウトして、必要のない場所にドロップします。私は試した: get_template_part( 'my', 'special-admin' ); そして、エラーの後、それを次のように変更しました: get_template_part( 'my', 'specialadmin' ); しかし、それは問題ではありません。WAMPを使用して、ローカルサーバーにいます。

2
カスタムテーマを開発およびデプロイするためにDockerを構成するにはどうすればよいですか?
この投稿を改善したいですか?引用や回答が正しい理由の説明など、この質問に対する詳細な回答を提供します。十分な詳細がない回答は、編集または削除できます。 私はDockerを使い始めましたが、まだWordPressのプロフェッショナルな開発プラクティスは初めてです。カスタムのWordPressテーマ開発を行えるように、Docker開発環境(Mac上)をセットアップしたいと思います。 これを以前に実行し、既にDockerを使用していると仮定すると、どのように設定しましたか?Dockerfileとdocker-compose.ymlはどのように見えますか?これは以前に行われたと確信しています。これを設定できる1行のコマンドが既に存在していても驚かないでしょう。 更新:このトピックを次の質問に絞り込みました。 カスタムテーマを開発およびデプロイするためにDockerを構成するにはどうすればよいですか?

1
カスタム投稿ショートコードを挿入するためのカスタムメディアアップロードコンテンツ
私は、任意のページまたは投稿に挿入するショートコードとともにカスタム投稿タイプ「ポートフォリオ」を作成するプラグインに取り組んでいます。 ショートコードは次のとおりです。 [portfolio option1=“1” option2=“0” option3=“1” ] そして、それはうまく機能し、customを介してすべてのカスタム投稿を表示しますWP_query。しかし、さらに先に進みたいです。 upload mediaポートフォリオショートコード出力を生成するための横にカスタムボタンを作成します。ユーザーは、含める投稿を選択して、すべてのオプションを定義できます。したがって、出力は次のようになります。[portfolio option1=“1” option2=“0” option3=“1” ids=“12,311,432,443,” ] これは、wpのmedia.phpで見つけたボタンのコードです。 add_action( 'media_buttons', array( $this, 'media_buttons' ) ); public function media_buttons($editor_id = 'content') { $post = get_post(); if ( ! $post && ! empty( $GLOBALS['post_ID'] ) ) $post = $GLOBALS['post_ID']; wp_enqueue_media( array( 'post' => $post …

2
プラグインをフォークする方法は?
コミュニティへの還元を開始したいのですが、現在、ゼロからプラグインを書くことは、私のスキルレベルと創造性レベルをわずかに超えています(つまり、プラグインでどのような問題を解決できるかわかりません!何か、すでに書かれているプラ​​グインまたは6を見つけます!)。しかし、私は最近、WP 2.8から放棄されたように見える非常にシンプルなプラグインを特定し、3.1互換になるように変更できると思います。私は尋ねましたが、このプラグインを更新する最良の方法は、単純にフォークすることかもしれません。 だから今私の質問:どうすればいいですか?私はSVNが初めてなので、どこに行くべきか、どのように始めればよいのかなど全く分かりません。:)

4
「テスト済み」属性を更新するだけの場合、プラグインのバージョンを上げる必要がありますか?
wordpress.org svnサーバーでホストされる多くのプラグインを持っています... 3.1の差し迫ったリリースで、「テスト済み」メタデータを更新したいと思います。 コードには機能的な変更はなく、メタデータのみが変更されます。 このような些細な変更のためにリビジョン番号を変更する必要はありますか?

1
add_filterを使用するのに最適な場所はどこですか
add_filterプラグインのinitアクションフックで関数を使用する必要がありますか、それともメインのプラグインスクリプトで使用する必要がありますか? 時々人がフィルターをいたるところに使用しているのを見つけたので、initフックに入れた場合、場合によっては手遅れになります。 action&filterフックの優先順位に関する一般的なアドバイスはありますか?

6
プラグイン/テーマによって作成されたPHPファイルを保存する場所
プラグインまたはテーマは、後でそれを含めることができるphpファイルを作成する必要がある場合があります。たとえば、captchaプラグイン、またはtwig / smartyなどのテンプレートシステム(私の場合、ウィジェットのコレクション用の単純なテンプレートエンジンです)。 このファイルはどこに作成する必要がありますか? 私が考えることができる唯一の場所はですがwp-content/uploads/、それはちょうど正しく聞こえません:) ファイルを作成できる安全な場所はありますか?WordPress /プラグイン/テーマの更新時にファイルが削除される心配はありませんか? 1つの解決策は、themes / pluginsディレクトリに子テーマ/ディレクトリを作成することです...

4
カスタムデザインのプラグイン/テーマオプションUIについてどう思いますか?
カスタム設計されたプラグイン/テーマオプションUIを、特に商用のもの(たとえば、CodeCanyonで-カスタムボックス、タブ、アコーディオンなど)で作成する傾向におそらく気づいたでしょう。 私は個人的にUIを最初に統一する必要があると信じており、WPでは、スタイリングガイドに従ってコアのデフォルトのHTML構造+ CSSクラス=>を使用して簡単に達成できます。 しかし、それは時には十分ではないかもしれません、そしてそれがその傾向がある理由です。別の理由は、「ブランディング」または単なる「クールネス効果」である可能性があります。 これについてどう思う?カスタム設計されたUIまたはデフォルトのUIのどちらを好みますか、それはなぜですか? PS私がこれを尋ねる主な理由は、最近私がプラグイン開発から始めて、どのパスを選択するかのこの決定を行おうとしているからでもあります。

5
Xdebugでプラグインをデバッグする方法は?
PHP 5.3.0(XAMPP)ベースのローカル環境に、NetBeans 6.9.1とXdebugを非常に簡単にインストールしてセットアップできました。 私の問題は次のとおりです。Wordpressのindex.phpまたは他のWordpressコアPHPファイルにブレークポイントを設定すると、NetBeansは目的の位置で正しく停止します。代わりに、プラグインファイルにブレークポイントを設定した場合、コード実行NetBeansのトリガーはそこで停止しません。 どのように解決できるか知っていますか? 更新:私がデバッグしようとしているものに関する詳細情報 プラグインはバニラフォーラムと呼ばれ、次のファイル構造があります。 - plugins - vanilla-forums + assets + nbproject + templates admin.php embed.php functions.php hooks.php plugin.php sso.php widgets.php でvf_validate_options定義されfunctions.phpた名前の関数内にブレークポイントを設定します。この関数は確実に実行されますが、NetBeansはそこで壊れません。

2
プラグインを使用してwp_nav_menuによって生成されたメニューにサブメニューを追加する方法
私はによって生成されたメニューきwp_nav_menuたように見えるが <ul class="nav-menu" id="menu-top-nav"> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-43" id="menu-item-43"><a href="http://www.example.com/item1.com">Item 1</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-44" id="menu-item-44"><a href="http://www.example.com/item2.com">Item 2</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-45" id="menu-item-45"><a href="http://www.example.com/item3.com">Item 3</a></li> <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-46" id="menu-item-46"><a href="http://www.example.com/item4.com">Item 4</a></li> </ul> プラグインを使用して「アイテム3」にサブメニューを追加することにより、上記のメニューを変更したいので、以下が目的の出力です。 <ul class="nav-menu" id="menu-top-nav"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-43" id="menu-item-43"><a href="http://www.example.com/item1.com">Item 1</a></li> <li class="menu-item …

2
プラグインライフサイクルのドキュメントはありますか?
プラグインのライフサイクルとは何かを説明するドキュメントがどこかにありますか? 私はOOPスタイルの新しいプラグインを開始しましたが、私のメインクラスが非常にインスタンス化されていることがわかりました(XdebugとNetbeansのおかげです)。 Dropbox-APIオブジェクトをインスタンス化しているので、それが私をイライラさせ、WordPressがメインクラスをそれほどインスタンス化するとは思わなかったのです。 CodexでもGoogleでも、プラグインのライフサイクルに関連するものは見つかりませんでした。

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