WordPress

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

3
プラグインのアップグレード:ウィジェット設定
私はこれについていくつかの研究を試みましたが、まだ確かなものは何も見つかりませんでした。私が作業しているプラ​​グインがあり、前のバージョンと新しいバージョンの間で、(バックエンドの)設定名の一部を変更するウィジェットにいくつかの更新を行いました。これを行うためのアップグレードルーチンの作成に問題があります。 これまで(ほとんど)機能しているように思われるのは次のとおりです。 $widget = get_option( 'widget_name' ); if( is_array( $widget ) && ! empty( $widget ) ) { foreach( $widget as $a => $b ) { if( ! is_array( $b ) ) { continue; } foreach( $b as $k => $v ) { $widget[$a]['setting1'] = $widget[$a]['oldsetting1']; $widget[$a]['setting2'] = $widget[$a]['oldsetting2']; } …

1
依存関係を持つスクリプトをロードすると、別のスクリプトの依存関係がアンロードされます
まず、私の質問がWooCommerceプラグインでの私の作業のコンテキストで発生していることを認識しています。しかし、私の質問はに関連していると思うwp_enqueue_scriptので、うまくいけばまだ話題になっています。 したがって、WooCommerceはadmin_enqueue_scriptsフックにスクリプトを登録しています。このスクリプトには、多数の依存関係が必要です。 wp_register_script( 'wc-admin-meta-boxes', WC()->plugin_url() . '/assets/js/admin/meta-boxes' . $suffix . '.js', array( 'jquery', 'jquery-ui-datepicker', 'jquery-ui-sortable', 'accounting', 'round', 'ajax-chosen', 'chosen', 'plupload-all' ), WC_VERSION ); (コードの少し後で製品の投稿タイプのpost.phpおよびpost-new.phpページに具体的にエンキューされます) WooCommerceで動作するように作成しているカスタムプラグインで、同じフックにスクリプトをロードしています。 wp_enqueue_script( 'My_Plugin_Metabox', My_Plugin_Class()->plugin_url() . '/assets/js/mnm-write-panel.js', array( 'jquery', 'wc-admin-meta-boxes'), My_Plugin_Class()->version, true ); プラグインのスクリプトをキューに入れて$in_footerパラメーターをtrue不可解に設定すると、jQuery UI Datepickerスクリプトが読み込まれず(ソースコードにはまったく含まれません)、対応するスクリプトエラーがコンソールに表示されます。 ヘッダーにスクリプトを読み込んでも問題ありません。wc-admin-meta-boxes依存関係なしでスクリプトをロードすると、問題も解決します では、私が疑問に思っているのは、フッターにスクリプトを読み込むと、コアの日付ピッカースクリプトが読み込まれるのはなぜですか。(私はスクリプトでdatepickerをまったく使用していません。)または、Wooスクリプトを依存関係として持たないことがdatepickerスクリプトにも影響するのはなぜですか?Wooメタボックススクリプトの依存関係として、datepickerスクリプトをロードする必要があるように見えますが、これは発生していません。 カイザーのコメントに従って、私は次のMUプラグインを作成しました($GLOBALS['wp_scripts']オブジェクトであるため、コメントから調整しました: /* Plugin Name: Dump jQUI Dp */ add_action( …

1
Codexメソッドの変更により、親と子のテーマスタイルシートのエンキューに関する問題
この投稿は、このスレッドとこのスレッドで持ち込まれたスタイルシートのエンキューメソッドに関する最近の変更に関して私が遭遇したいくつかの質問を持ち出します。 私が遭遇した問題は、WP 4.0のインストールで特に子テーマに対応している、広く使用され維持されている親テーマを使用して、一般的なユースケースシナリオで発生しました。私の子テーマのfunctions.phpには、Codexに詳述されている関数のみが含まれていwp_enqueue_styleます。 以下で参照するコードはこのテーマに固有のものですが、その多くは親テーマで使用されている現在のコーディング規則を使用しています。さらに、私の関心領域は、現在広く普及している多数の確立された親テーマで重複している可能性が高いです。また、これらの提起された質問は、どの親テーマが使用されているかに関係なく、普遍的なレベルで適用できます。 問題1:Twoqueueing 推奨セットアップ: 親テーマは、wp_enqueue_scriptsフックを使用してスタイルとスクリプトをキューに入れることです。関連する部分は次のとおりです。 add_action('wp_enqueue_scripts', 'parent_theme_function_name'); function parent_theme_function_name() { wp_register_style( 'avia-style' , $child_theme_url."/style.css", array(), '2', 'all' ); wp_enqueue_style( 'avia-base'); if($child_theme_url != $template_url) { wp_enqueue_style( 'avia-style'); } } 私の子テーマfunctions.phpは、最近のコーデックスの変更ごとにスタイルをエンキューします。 add_action( 'wp_enqueue_scripts', 'enqueue_parent_theme_style' ); function enqueue_parent_theme_style() { wp_enqueue_style( 'dm-parent-style', get_template_directory_uri().'/style.css' ); } 参照コードで使用されている次のIDに注意してください。 id='dm-parent-style-css' 子テーマ関数によってエンキューされた親テーマのスタイルシートです id='avia-style-css' 親テーマ関数によってエンキューされた、私の子テーマのスタイルシートです id='dm-child-style-css' 私の子テーマの関数によってエンキューされた、私の子テーマのスタイルシートです …

1
Wordpressプラグインのインストールリストに新しいタブを追加する
ユーザーがWP管理の[プラグインの追加]領域からプラグインを検索するときに、現在のタブの横に新しいページ(ページへのリンク付き)を追加したいと思います。 リンクが必要な場所は、以下のスクリーンショットでマークされています。 http://codex.wordpress.org/Adding_Administration_Menus @で探しましたが、無駄でした。 WPで許可されていますか? 前もって感謝します。

3
プラグインのクラス内で宣言された関数をfunctions.phpでどのように置き換えますか?
プラグインの関数を変更したい。これは、プラグインのメインファイルで次のように宣言されています。 class WCPGSK_Main { ... public function wcpgsk_email_after_order_table($order) { ... } } 次のようにそこから呼び出された追加: add_action( 'woocommerce_email_after_order_table', array($this, 'wcpgsk_email_after_order_table') ); functions.phpのクラスにアクセスできれば、置き換えられると思います。それから私はこのようなものを書くことができるでしょう: $wcpgsk = new WCPGSK_Main; remove_action( 'woocommerce_email_after_order_table', array($wcpgsk, 'wcpgsk_email_after_order_table') ); function customized_wcpgsk_email_after_order_table($order) { ... } add_action( 'woocommerce_email_after_order_table', array($wcpgsk, 'customized_wcpgsk_email_after_order_table') ); functions.phpファイルでクラスにアクセスするための私の考えは、クラスがfunctions.phpで宣言されているファイルを含めることでした。 require_once('/wp-content/plugins/woocommerce-poor-guys-swiss-knife/woocommerce-poor-guys-swiss-knife.php'); $wcpgsk = new WCPGSK_Main; ... しかし、WordPressでプラグインが初期化されるときにプラグインのファイルが含まれるため、これは機能しません。 プラグインのファイルに触れずに関数を書き換える方法はありますか?

1
メディアURIへのデータURIの保存
(MDN)を使用してPNG画像を生成するTinyMCEプラグインがあります。現在、私はdata-URIを画像タグに入れてバックエンドに表示しているだけですが、これらをWordPress Media Libraryに追加したいのですが。HTMLCanvasElement.toDataURL() 現在base64でエンコードされたデータURIとしてシリアル化されている画像をアップロードする最良の(つまり、VIP準拠)方法は何ですか? これまでの私のアップロード機能は次のとおりです。 <?php /** * AJAX callback that inserts chart as attachment into the WP database */ public static function insert_axis_attachment() { // Get config $axis_config = json_decode( $_POST['axisConfig'] ); if ( ! isset( $_POST['axisJS_nonce'] ) || ! wp_verify_nonce( $_POST['axisJS_nonce'] ) || ! current_user_can( 'upload_files' ) || …

2
プラグインなしでメタタグを追加する
プラグインをインストールせずにすべてのページにメタタイトル、メタ説明、メタキーワードを追加することは可能ですか? クライアントはプラグインをインストールする必要がない。私はこのケースに興味があります。メタを挿入するには、管理者がワードプレスにseoプラグインをインストールする必要があることだけがわかっています。
9 post-meta  seo 

1
カスタム分類への用語の挿入
単一の投稿のレイアウトを制御するこのカスタム分類法を作成しました。基本的に、レイアウト1とレイアウト2の2つのオプションを追加します。 // Register Custom Taxonomy function custom_taxonomy() { $labels = array( 'name' => _x( 'Layout', 'Taxonomy General Name', 'text_domain' ), 'singular_name' => _x( 'Layout', 'Taxonomy Singular Name', 'text_domain' ), 'menu_name' => __( 'Taxonomy', 'text_domain' ), 'all_items' => __( 'All Items', 'text_domain' ), 'parent_item' => __( 'Parent Item', 'text_domain' ), 'parent_item_colon' …

2
保留中のユーザー名登録を予約解除するにはどうすればよいですか?
新しいWordPressマルチサイトインスタンスを設定していますが、スタックのいくつかの問題を解決しています。現在最も重要なこととして、ユーザー登録メールが何らかの理由で配信されていません。その結果、アクティブ化に必要な確認メールが失われるため、複数のユーザー名が行き詰まっています。 今のところ、確認メールなしで手動でこれらのユーザー名を登録したいのですが、登録しようとすると、名前が予約されており、数日後に利用可能になるというエラーが表示されます。予約を解除するにはどうすればよいですか?

3
分類法に画像を追加する方法は?
Q:すべての分類法(デフォルトおよびカスタムのもの)に画像を追加することはできますか? 注:プラグインを使用したくありません(デザイン関連の問題に対する私のお気に入りのソリューションではありません)。 使用法:カスタム分類法を使用して、本当に実用的なカスタム投稿タイプのポートフォリオを作成します。たとえば、カスタム分類-クライアントです。そのため、同じ顧客/クライアントからの複数のプロジェクトが実現され、同時にクライアントのショーケースとして分類を使用できます。同様の使用法は、私の分類法のほとんどに適用されます(画像と説明を含む分類法アーカイブがあるかどうか) ここで何か良いアドバイスはありますか?前もって感謝します 明確化:カスタム分類の条件に画像を追加したい。例:カスタム分類「クライアント」のカスタム投稿タイプ「ポートフォリオ」。各「クライアント」用語(アディダスとしましょう)にはロゴが添付されます。

2
オープン/クローズおよび非表示/表示のメタボックスのステータスをポストごとに保存する方法は?
私の本当の問題は少し複雑なので、ここでそれを抽象化し、単純に保つようにします。 WordPressベースのカスタムアプリを開発しています。カスタム投稿タイプを登録しました。「人」と呼びましょう。ここでは、...人に関する情報を保存しています。 CPTは投稿タイトルと投稿コンテンツのデフォルトフィールドのみをサポートしますが、個人情報を保存するためのメタボックスがいくつかあります(私のアプリをアドレス帳と考えてください)。 したがって、個人情報を保存するメタボックス、ソーシャルネットワーク情報を保存するメタボックス、仕事関連の情報を保存するメタボックスがあります。つまり、その人が私にとって顧客である場合、サプライヤーである場合、クレジットまたはデビットがある場合... ここでは簡略化しましたが、メタボックスの数は一貫しています。たとえば12としましょう。 私の問題は、情報を保存したい人がランダムな連絡先であり、個人情報のみを保存したい人、他の人は友達、個人情報とソーシャルネットワーク情報を保存したい人、その他は顧客またはサプライヤーであり、仕事関連の情報を保存したい。 投稿を編集するときに非表示にする(画面オプションメニューを使用)か、不要なメタボックスを閉じる場合、必要な場所で別の投稿を開くときに、再度表示するか開く必要があります。これは、メタボックスの位置/ステータス/順序がユーザーメタデータとしてユーザーごとに保存されるためです。 いくつかの投稿で2つのメタボックスが必要であると想像すると、10個と5個のメタボックスが必要です。それらすべてを表示/開いたままにすると、編集画面のアクセス性が低くなり(スクロールバーが無限に見える)、時々私が探す情報は煩わしいです。情報のないメタボックスの束の後のページの終わりに... 質問: 特定の投稿タイプのメタボックスの位置/ステータス/注文を投稿ごとに保存できますか? PS:私は一部のjs / jQueryが問題を解決できることを知っていますが、可能であれば、JavaScriptソリューションを回避します。
9 metabox 

1
WP Customize JSメソッドを拡張することは可能ですか?
で匿名apiオブジェクトのメソッドを拡張できるかどうか疑問に思っています wp-admin/js/customize-control.js。これらのメソッドの1つを独自のカスタムロジックで上書きする必要がありますが、すぐに呼び出される関数式にラップされているため、それは不可能だと思います。 /* globals _wpCustomizeHeader, _wpMediaViewsL10n */ (function( exports, $ ){ // code })( wp, jQuery ); 私の知る限り、ウィンドウオブジェクトからプロトタイプを拡張することはできませんwindow.wp.customize。これは、匿名で実行され、からは利用できないためです。そのようなことが可能であるかどうか何か考えはありますか?.toggle()メソッドのドキュメント/説明でこれをオーバーライドすることについての言及もあります:https : //github.com/WordPress/WordPress/blob/master/wp-admin/js/customize-controls.js#L110、しかし私はそれらが単にJSファイル全体をフォークし、WPバージョンをデキューして独自のものをエンキューすることによって意味するのか、それとも意味があるのか​​別のものなのかはわかりません。 それは可能であるように見えますが、それはwp.customize.{method}.extend({ foo: // replace method foo here })パブリックベースクラス/オブジェクトにのみ適用され、wp-admin/js/customize-control.js


3
ワードプレスでSVGレンダリングを処理する方法は?
インターネットブラウザーの進歩に伴い、Webサイトのコーディング時にSVGSを使用することがますます快適になりました。特に、アイコンや、オンザフライでpngに置き換えることができるシンプルなグラフィックについては特にそうです。 ワードプレスはほとんどSVGSをサポートしているようです。私はほとんど理由でこう言います: デフォルトでは、ワードプレスで許可されているファイルタイプではありません。そのため、SVGをアップロードする前に追加する必要があります メディアギャラリーにSVGサムネイルが表示されない。(下の画像を参照) (メディアの追加ボタンを使用して)エディターに追加する場合、エディターはsvgサイズを認識しないことがあります。そのため、svgを画像として追加しますが、幅と高さがゼロです。 メディアアップロードポップアップ内から「画像の編集」をクリックすると、「画像が存在しません」というメッセージが表示されます。下の画像を参照してください。 このリストの項目1で問題ありませんが、項目2、3、および4を修正する方法を誰かが理解していますか? アイテム1に関する更新: 新しいMIMEタイプ(SVGなど)を許可するには、functions.phpにフックを追加するだけです。 function allow_new_mime_type($mimes) { $mimes['svg'] = 'image/svg+xml'; return $mimes; } add_filter( 'mime_types', 'allow_new_mime_type' ); これで、SVGをアップロードできるようになります。詳細については、このチュートリアルをご覧ください。これは、前に述べたように、私にとっては問題ではない(デフォルトでは許可されているはずですが)項目1のみを解決します。 アイテム2に関する更新: 添付ファイルが画像かどうかを判断する機能を掘り下げて追跡しました。すべてはwp-includes / post.phpのこの関数に帰着しているようです /** * Check if the attachment is an image. * * @since 2.1.0 * * @param int $post_id Attachment ID * @return bool …
9 svg 

2
ナビゲーションの次へボタンを使用して、管理者ポインタを持つユーザー向けのWPチュートリアルを作成する
ユーザー向けの管理領域のチュートリアルを作成することを目指しています。これを達成するために、私はWPコアで利用可能な管理ポインターを使用しています。私の目標: あと少しです。これまでに得たもの... エンキューwp-pointerスクリプト: add_action( 'admin_enqueue_scripts', 'custom_admin_pointers_header' ); function custom_admin_pointers_header() { if ( custom_admin_pointers_check() ) { add_action( 'admin_print_footer_scripts', 'custom_admin_pointers_footer' ); wp_enqueue_script( 'wp-pointer' ); wp_enqueue_style( 'wp-pointer' ); } } 条件チェックとフッタースクリプトを含むヘルパー関数: function custom_admin_pointers_check() { $admin_pointers = custom_admin_pointers(); foreach ( $admin_pointers as $pointer => $array ) { if ( $array['active'] ) return true; } …
9 wp-admin 

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