WordPress

WordPressの開発者および管理者向けのQ&A

6
プラグインを削除するときにデータベースからテーブルを削除する
プラグインを作成し、ユーザーがプラグインを削除したときにデータベースからテーブルを削除する機能を追加したいと考えています。ユーザーがプラグインを非アクティブ化したときにDBからテーブルを削除する関数を作成しましたが、それは必要ありません。これがコードです: // Delete table when deactivate function my_plugin_remove_database() { global $wpdb; $table_name = "NestoNovo"; $sql = "DROP TABLE IF EXISTS $table_name;"; $wpdb->query($sql); delete_option("my_plugin_db_version"); } register_deactivation_hook( __FILE__, 'my_plugin_remove_database' ); ご覧のとおり、この関数はプラグインが非アクティブ化されたときにテーブルを削除しますが、プラグインが削除されたときに削除する必要があります。

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を使用して、ローカルサーバーにいます。

1
ACFはハニートラップですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 閉じた2年前。 私はエンタープライズフルスタック開発者であり、ACFの使用を開始しました。 最初は、ACFはWebサイトのワンストップソリューションであると考えていましたが、分類についてさらに調査した後、ACFを使用すると非常に効率の悪いdbになると思います。 たとえば、従業員のカスタム投稿タイプがあり、このエンティティに性別がある場合、私の調査によると、1つの値を選択するためのメタボックスを持つ分類法がより良いオプションです。 問題は、ACFがカスタムフィールドの実装のみを実行することです。 分類法をサポートする他のプラグインを使用する必要がありますか?分類に補完​​的なプラグインを使用する必要がありますか?私もそれを心配する必要があります(性別をカスタムフィールドとして実装するのは災害ですか?)

3
エンキューされたすべてのスクリプトとスタイルのリストを取得するにはどうすればよいですか?
プラグインを作成していますが、他のプラグインで使用されるすべてのスクリプトとCSSのリストを取得したいです。 これは私の機能です: function crunchify_print_scripts_styles() { $result = []; $result['scripts'] = []; $result['styles'] = []; // Print all loaded Scripts global $wp_scripts; foreach( $wp_scripts->queue as $script ) : $result['scripts'][] = $wp_scripts->registered[$script]->src . ";"; endforeach; // Print all loaded Styles (CSS) global $wp_styles; foreach( $wp_styles->queue as $style ) : $result['styles'][] = $wp_styles->registered[$style]->src …

1
カスタム投稿タイプ設定ページ、アーカイブを表示するページを選択
そのため、この投稿の受け入れられた回答に従いました。カスタム投稿タイプの「フロントページ表示」設定に別の設定を追加することが可能です しかし、完全に機能しなかったため、この投稿で受け入れられた回答と比較する必要がありました。 do_settings_sectionsを出力できません。理由がわからない 今、それは実際に次のコードを使用して動作します //Add settings to menu add_action( 'admin_menu', 'events_options_add_page' ); function events_options_add_page() { // add_submenu_page('edit.php?post_type=events', 'Events Admin', 'Events Settings', 'edit_posts', basename(__FILE__), 'events_options_do_page'); add_submenu_page('edit.php?post_type=events', 'Events Admin', 'Events Settings', 'edit_posts', basename(__FILE__), 'events_options_do_page'); } ///wordpress/32689/possible-to-add-another-setting-to-front-page-displays-setting-for-custom-post //Fix Cap to allow editors to edit theme options function events_get_options_page_cap() { return 'edit_posts'; } add_filter('option_page_capability_events-options', …

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

1
WordPress 4.1マルチサイトインストールで複数のドメインをマッピングする正しい方法は何ですか?
私はこの質問と他の質問を知っていますが、wwwとwww以外のバリアントが正しく動作するように、マルチサイトでドメインを設定する方法に関する決定的な答えを見つけていません。DNSレベルで正しく設定されたワイルドカードがあり、define( 'NOBLOGREDIRECT', 'http://www.example.com' );メインサイトに機能を追加する推奨ソリューションがありますが、同じインストール内の他のネットワークには機能しないと思います。 私はいくつかの調査に基づいて「WP Multi Network」プラグインを使用していますが、1つのWordPressインストールで複数のドメインを実行している場合、マルチサイトだけでなく複数のネットワークを使用する必要があるという結論に至りました。マイネットワークとサイトはすべて追加さwwwれ、ドメインフィールドに含まれています それではwww、マルチサイトインストールなしでベアドメインをマッピングする正しい方法は何ですか?プラグインは必要ですか?これはすべて、書き換えを使用してWebサーバー設定で処理する必要がありますか?
12 multisite 

1
マルチサイトでプラグインがネットワークでアクティブ化されたときにアクティベーション機能を実行する方法は?
プラグインをマルチサイト互換にしようとしています。このregister_activation_hook()関数を使用してmy_activate()、プラグインがアクティブになったときに実行する関数を登録しています。これは、単一サイトのインストールでうまく機能します。 function my_activate() { // Do some things. } register_activation_hook( __FILE__, 'my_activate' ); 問題は、my_activate()プラグインが「ネットワーク有効化」されている場合、各サイトで実行されないことです。また、ネットワーク上に新しいサイトが作成されたときには実行されません。 アクティベーションルーチンを、a)ネットワーク内のすべてのサイトでプラグインがネットワークでアクティベートされるときに実行し、b)マルチサイトネットワークで新しいサイトが作成されるときに実行するにはどうすればよいですか?

2
メディアモーダルで更新をトリガーする方法
メディアモーダルに新しいタブを追加するプラグインを開発しています。新しく追加された添付ファイルを表示するには、添付ファイルタブの更新をトリガーする方法を知る必要があります。これは私が使用しているコードです: wp.media.view.Toolbar.Custom = wp.media.view.Toolbar.extend({ initialize: function() { _.defaults( this.options, { event: 'custom_event', close: false, items: { custom_event: { text: wp.media.view.l10n.customButton, style: 'primary', priority: 80, requires: false, click: this.addAttachment } } }); wp.media.view.Toolbar.prototype.initialize.apply( this, arguments ); }, // triggered when the button is clicked addAttachment: function(){ this.controller.state().addAttachment(); this.controller.setState( 'insert' ); // …


3
WP管理セクションを高速化するにはどうすればよいですか?
多くのWPサイトがあり、それらが置かれているサーバーとインターネットの間にプロキシがあります。 WPのいくつかの機能は、単に機能しません。 ダッシュボードのRSSフィード テーマを探しています プラグインを検索する コアアップデート 私たちはすべてを手動で行いますが、ページのロード時のスローネスを除いて、実際には問題はありません。adminのほとんどすべては、メディアの追加を除いて、処理に4〜5秒かかります-驚くほど高速です。 バックエンドを高速化するためにチェックまたは実行できる最初の事柄は何ですか?(フロントエンドが飛ぶ)
12 admin  proxy 

1
Media Uploaderを使用した間違ったサイズの画像のアップロードを拒否する
投稿編集画面でカスタムフィールドに画像を追加するための非常に厳しい設定に取り組んでいます。私の最適なシナリオは、ユーザーが特定のカスタム値に対して間違ったサイズの画像をアップロードしようとしたときにカスタムエラーメッセージを追加することです。 カスタムアップローダーでこれを実行できることは承知していますが、通常のMedia Uploaderで実行することを本当に望んでいます。また、ファイル名を検証し、一般的な要件に基づいてカスタムエラーメッセージを生成するために既に使用しているwp_handle_upload_prefilterも知っています。今必要なのは、カスタム要件を使用して、アップロード先のフィールドに基づいてアップロードを拒否する方法です。 また、アップロード時に投稿画像から注目画像を区別することも知っていますが、保存前のソリューションが必要でした。 これは次のようになります。 どのwp_handle_upload_prefilter分野を扱っているかを通知する(または同様の)方法についてのアイデアはありますか?
12 uploads  media  images 

3
ログインしたユーザーのみがWooCommerceページにアクセスできるようにする
WordPressを使用したWebサイトと、WooCommerceを使用したeコマースがあります。ログインしたユーザーのみがショップ(およびそのすべてのページ)を表示できるようにします。 User Access Managerプラグインを介して、ショップページへのアクセスを拒否しましたが、製品などへの直接リンクを使用すると、ユーザーがログインしていなくても特定のページにアクセスできます。 WooCommerceページにアクセスしようとした場合、ログインしていないユーザーを別のページにリダイレクトするにはどうすればよいですか?

1
管理者とフロントエンドの両方でエンキューされるスクリプトを登録する
私が理解しているように、管理スクリプトはadmin_enqueue_scriptsフックおよび他のすべてのスクリプトを介して登録およびエンキューされることになっているwp_enqueue_scriptsので、すべてのスクリプトを明確かつ体系的な方法で登録およびエンキューするために次の関数を設定しました。 私の質問は、管理者とフロントエンドの両方で特定のスクリプト(jquery validateプラグインなど)が必要な場合はどうなりますか?この場合、スクリプトを登録およびエンキューするための推奨される方法は何ですか?wp_enqueue_scripts異なる$ handleで2回登録するか、それだけで登録します。そうする場合、必要なときに呼び出されないというリスクはありませんか?(admin_enqueue_scriptsつまり、それらのスクリプトを以前に利用可能にしないのであれば、なぜ他に存在するのでしょうか? wpでスクリプトをキューに入れることのニュアンスを完全に理解するために、誰かがこれを説明してくれることを本当に感謝します。ありがとう 私のコード: // REGISTER ALL NON-ADMIN SCRIPTS add_action( 'wp_enqueue_scripts', 'register_all_non_admin_scripts' ); function register_all_non_admin_scripts() { wp_register_script( ... ); wp_register_script( ... ); } // ENQUEUE NON-ADMIN SCRIPTS CONDITIONALLY add_action( 'wp_enqueue_scripts', 'enqueue_scripts_where_required' ); function enqueue_scripts_where_required() { // scripts to be loaded at all times wp_enqueue_script( '' ); // scripts …

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 …

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