WordPress

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

1
グーテンベルク:現在のブロックがInnerBlocks内にあるかどうかを知る方法はありますか?
したがって、Wordpress Gutenbergでネストされたブロックを使用しています。ブートストラップコンテナークラスを適用するラッパーを要素に適用しています。明らかに、それを入れ子のブロック内のブロックではなく、最も外側のブロックのみにしたいと思います。 現在のブロックがInnerBlocks親ブロックのDefiniton 内にあるかどうかを知る方法はありますか?現在、blocks.getSaveElementフィルター内にラッパーを適用しています。 これを行うより良い方法はありますか? コンテキスト:以前のgutenbergバージョンでは、これを実現するためにlayout属性が使用されていましたが、その後削除されました。バージョン3.9.0を使用しています。 これは私のラッパー関数の短縮版です: namespace.saveElement = ( element, blockType, attributes ) => { const hasBootstrapWrapper = hasBlockSupport( blockType.name, 'bootstrapWrapper' ); if (hasBlockSupport( blockType.name, 'anchor' )) { element.props.id = attributes.anchor; } if (hasBootstrapWrapper) { // HERE I NEED TO CHECK IF THE CURRENT ELEMENT IS INSIDE A INNERBLOCKS …

2
GutenbergはReactでの翻訳をどのように処理しますか?
私はグーテンベルクのソースコードを調べていました、例えばこれのため、彼らがどのように翻訳を処理するのか理解できません... 彼らはこれimport { __ } from '@wordpress/i18n'をインポートし、ソースコードでこれを使用しspeak( __( 'Block settings closed' ) );ます。 ReactJS内でこれらの翻訳を管理して、通常の.poファイルに収集する方法を誰かに教えてもらえますか? 私は彼らがJSを含むすべてのファイルを通過してそれらを収集するいくつかのビルドプロセスを持っていると思いますが、確かではありません。

3
WordPressユーザー名を配列形式で取得する方法
WordPressでオートコンプリート機能を作成したい。ユーザー名を検索できる検索フィールドが必要です。以下のJQuery UIを使用しています。 <label>Users</label> <input type="text" name="user_name" id="user-name" /> <?php $get_arr_user = array('John', 'Rogers', 'Paul', 'Amanda', 'Peter'); ?> <script> jQuery(document).ready(function($) { var availableTags = <?php echo json_encode($get_arr_user); ?>; $( "#user-name" ).autocomplete({ source: availableTags }); }); </script> 私の問題は、この形式でユーザー名のリストを取得できないことです- array('John', 'Rogers', 'Paul', 'Amanda', 'Peter');どうすれば取得できますか?
11 users 

3
依存関係のないwp_add_inline_script
ページのフッターに挿入したいJavaScriptスニペットがあります。これはトラッキングコードです。Googleアナリティクスに似ているとしましょう。依存関係はなく、スタンドアロンのスニペットです。 私はこのようなことができます function render_tracking_code(){ wp_enqueue_script( 'depends-js', 'https://rdiv.com/dummy.js', array(), '0.01', true ); wp_add_inline_script( 'depends-js', 'aWholeBunchOfJavascriptCode' ); } add_action( 'wp_enqueue_scripts', 'render_tracking_code' ); 少しばかげているようですが(dummy.jsは空のファイルです)、動作します。依存関係をスキップする方法はありますか?

2
add_rewrite_ruleについて
私はadd_rewrite_ruleurlからparamを抽出し、それをリクエストに渡そうとしています。これに関する多くの投稿を見ましたが、それを機能させることができないようです。 URLが特定の文字列で始まる場合、それをURLから削除し、クエリパラメータとして渡します。 リクエストURLの例: http://domain.com/foo/my_page これは http://domain.com/my_page?param=foo 'foo'が存在しない場合は、通常のリクエストと同じように処理されます。このロジックは、サイトのページURLまたはカスタム投稿タイプURL(基本的にはfoo / *)に適用する必要があります。それがパススルーとして機能することを考えると、URLに「foo」がある場合はそれを取り除き、Wordpressに渡すだけで正常に処理されます。 私はすでに許可されたquery_varsとして 'param'を持っています。 全体として、次のことを行う必要があります。 / foo / my_page(ページ) / foo / my_folder / my_page(サブページ) / foo / example_type(カスタム投稿アーカイブ) / foo / example_type / example_post(カスタム投稿シングル)

2
ステージングサイトで、DB内の更新の同期をどのように管理しますか?
開発者が更新をライブサーバーにリリースする前にステージングサイトを通じてテストする必要があることは広く受け入れられていますが、開発更新でWordpress DBの変更が必要になると、ライブサイトのユーザーもDBを更新するため、状況が複雑になります。 私が想像できる唯一の(混乱した)フローは次のとおりです。 ローカルサーバー(WAMP、XAMPなど)でテストする 展開の準備ができたら、ライブサイトをメンテナンスモードにします。 ライブサイトのバックアップ(Duplicator、sqldumpなど) ロックされたライブサイトのクローンをステージングサイトに作成する ローカル環境からステージングサイトに変更をアップロードする ステージングサイトをテストする ステージングサイトを公開します。 メンテナンスモードを削除する 上記のフローの欠点: 開発者がステージングサイトで更新を慎重にテストしている間、ダウンタイムはユーザーにとって予想よりも長くなる可能性があります。 変更の手動管理が必要な場合があります。たとえば、siteorigin pagebuilderレイアウトはデータベースに保存されるため、レイアウトを変更したら、ステージングサイトに手動でインポートする必要があります。この場合、ステージングサイトにページをドロップしてインポートするだけで十分です。機能している場合は、ライブサイトにインポートします。 これを達成するためのより良い、より自動化された方法はあるのでしょうか。 どう思いますか? 編集、要求に応じて、過去にいくつかの解決策が提案されましたが、決定的な解決策を提供するものはありません: 2010年9月-開発/ステージングと本番の間のデータベース同期 2011年12月-wp_options テーブルを変更する更新済みまたは新しいプラグインのデプロイ 2014年9月- ローカルの変更を新しい投稿/ページを上書きせずにライブサーバーにアップロードする方法 2015年1月-WordPress サイトのブログをプロダクションおよびステージングで維持する方法
11 database  staging  sync 


3
wp-cliメンテナンスモードの有効化
テーマまたはプラグインのアップグレード中、メンテナンスモードが有効になり、完了すると無効になります。 メンテナンスモードを手動で有効/無効にすることはできますか? Enabling Maintenance mode... Downloading update from xxxx Disabling Maintenance mode...
11 wp-cli 

4
管理ページのカスタム投稿タイプのカスタムフィールドでフィルター
Advanced Custom Fieldsを使用して、コンテスト名、回答などのカスタムフィールドを作成しました。画像に示すように、コンテストのカスタム投稿タイプを作成し、Wordpress functions.phpを使用して、カスタムフィールド値から列を作成しました。 以下に示すように、競争別の名前/ラベルが付いた[フィルター]ドロップダウンボックスを取得しようとしていますが、分類法を使用した解決策しか見つけることができません。カスタムフィールドのみを使用しているため、可能であれば使用しませんほかのすべて。 カスタムフィールドのみを使用してカスタムの[フィルター]ドロップダウンを作成することは可能ですか?

1
WordpressはいつCDATAのインラインスクリプトをラップしますか?
ワードプレスのユーザーがスクリプトのスニペットとhtmlを自分の投稿の本文にコピー/ペーストすることで、もちろん私たちのサードパーティスクリプトの問題をデバッグしています(もちろん、非現実的な例): <script> window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } }; window.foobar.hello(); </script> ワードプレスのインストールによってはこれをCDATAでラップするものもあれば、そうでないものもあることに気づきました(おそらく、何らかのDOCTYPEチェックを行ったためです-これでテストしたすべてのテーマはHTML5 doctypeを使用していました)。 ただし、CDATAでスクリプトをラップすると、ユーザーは次のバグに噛まれるでしょう:https : //core.trac.wordpress.org/ticket/3670(クロージング>が誤ってに置き換えられます>)。これにより、ブラウザーはスクリプトの内容を無視します。 : <script>// <![CDATA[ window.foobar = window.foobar || { hello: function(){ console.log('Hello World'); } }; window.foobar.hello(); // ]]></script> 私はWP-Fuをあまり所有していませんが、グーグルで問題を特定するだけでしたので、私の質問は、WordPressがインラインスクリプトをCDATAセクションにラップするのはいつですか?ユーザーはどういうわけかこの動作を防ぐことができますか?ユーザーは、WPコアを変更せずに、上記のバグをどうにかして回避できますか?

4
管理者:コアメタクエリが原因で非常に遅い編集ページ
投稿やページを編集しようとすると、ロード時間が非常に長くなることに気づきました。クエリモニターを使用して、このWPコアクエリが15〜20秒に増加していることがわかりました。 SELECT meta_key FROM wp_postmeta GROUP BY meta_key HAVING meta_key NOT LIKE '\\_%' ORDER BY meta_key LIMIT 30 caller: meta_form() post_custom_meta_box() do_meta_boxes() 投稿タイプの1つが約20程度のカスタムフィールドを使用するため、私たちは多くのpostmetaを使用しています。おそらくpostmetaに依存しすぎているかもしれませんが、これは投稿のIDを選択することすらしないので、非常に効率の悪いクエリのように見えます。 これは一般的な問題ですか?フィルターを介してこの機能を無効にする方法はありますか?ご意見をお寄せいただきありがとうございます。
11 admin  editor 

1
CPTアーカイブページのスラグを複数のスラグ名に書き換える
http://site.com/plugin/plugin-slug/のplugin url構造を作成するように書き換えられたスラグを持つカスタム投稿タイプがあります。これにより、CPTアーカイブがhttp://site.com/plugin/になります。 ページとカスタムページテンプレートを使用せずに、http://site.com/plugins/(labels=>NameCPT内の)を使用するように書き換えたいのですが。単一の投稿のスラッグを維持しながら、/plugin/ これは `/ plugins / page / 21のようなものもサポートする必要があります-現在サポートしています。

2
管理者のpost.phpで現在の投稿タイプを知るにはどうすればよいですか?
ユーザーが投稿タイプ "event"の投稿(post.php)を編集している場合にのみ、admin_initフックで何かしようとしています。私の問題は、wordpressが$ post_typeを呼び出すグローバル変数を指しているにもかかわらずです。私が行った場合: global $post_type; var_dump($post_type); NULLを返します。 しかし、これを行うと: global $pagenow; var_dump($pagenow); 現在のページを返します。すなわち「post.php」。 私はこの関数を調べました$screen = get_current_screen();が、それはadmin_initフックが実行されるまで宣言されず、その後に遅くなります。 だから私の質問は、admin_initが実行されるまでに、現在編集中の投稿の種類を調べるにはどうすればよいですか。URLがpost.php?post=81&action=editその場合、どの投稿タイプpostid = 81がどのようにしてわかるか? ありがとうマルト

2
WordPress検索は裏でどのように機能しますか?
WordPress検索を使用して、カスタム投稿タイプの範囲を検索し、ユーザーが個々の投稿タイプにドリルダウンできるようにしています。 しかし、私はWordPressが最初に「最高」の一致だと思うものを返していないことに気づきました。たとえば、Microsoftを検索すると、この用語を定期的に使用するページの前に、不規則な用語を含むページが引き続き返されます。 基本的に私は、WordPressがページをランク付けして関連性を決定する方法、およびプラグインをインストールしなくてもこれに影響を与えることができるかどうかに関する情報を見つけようとしています。 どんな助けも大歓迎です。
11 search 


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