WordPress

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

4
検索をラテン文字に限定する
検索を英語で使用されている文字+数字に制限したい。その理由は、mysqlログで最も遅いクエリを見ると、ほとんどがアラブ、ロシア、および中国語の文字の検索によるものであるため、それらをスキップして、代わりにエラーメッセージを表示したいためです。
9 search 

1
WP_Queryを使用してカスタム投稿タイプの投稿を取得する
カスタムポストがクエリと表示を返すようにしていますが、代わりにデフォルト/標準のポストが返されて表示されています。CPTから投稿を取得するにはどうすればよいですか? $query = new WP_Query( array( 'job_posting_type' => 'Job Post' ) ); if ( $query->have_posts() ) : ?> <?php while ( $query->have_posts() ) : $query->the_post(); ?> <div> <h2><?php the_title(); ?></h2> <?php the_content(); ?> </div> <?php endwhile; wp_reset_postdata(); ?> <!-- show pagination here --> <?php else : ?> <!-- show 404 …


1
REST APIを使用したメディアのアップロード
JSON REST APIを使用してWordPressサイトにメディアをアップロードするときに問題が発生します。 次のコードを使用して写真をアップロードできますが、名前も含めて情報が割り当てられていません。実際、名前は自動的にURLとファイル名になります(拡張子なし)。 $username = "ZX"; $password = "ZX"; $host = 'http://ZX.com/wp-json/wp/v2/media'; $data = json_encode($data); $file = '/Users/xx.png'; $imagedata = file_get_contents($file); $process = curl_init($host); curl_setopt($process, CURLOPT_RETURNTRANSFER, 1); curl_setopt($process, CURLOPT_BINARYTRANSFER, TRUE); curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($process, CURLOPT_TIMEOUT, 50); curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password); curl_setopt($process, CURLOPT_POSTFIELDS, $data); curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type:image/png','Content-Disposition:attachment;filename='.$file)); …
9 php  uploads  media  wp-api  curl 

2
マイサイトのすべてのカテゴリのページ付けされたリストを作成する方法
私のサイトのすべてのカテゴリをリストするページネーション付きのアーカイブページを表示したいのですが、各リンクはその特定のカテゴリのアーカイブページに移動します。したがって、これはカテゴリアーカイブのアーカイブページのようなものです。 私のサイトの各カテゴリには、カテゴリのパーマリンクに一致するように手動で作成されたカスタムサムネイルがあります。すべてのカテゴリを表示するレイアウト設定はすでにありますが、カスタムページテンプレートを使用してこれを行っているため、ページ付けはありません。つまり、すべてのカテゴリが1つのページに表示され、少し面倒です(100以上のカテゴリがあります)。 現在のアーカイブは特定のカスタムページテンプレート名でセットアップされていますが、page-catlist.phpこれを他のタイプのテンプレートファイルに変更することもできます。 これは、1つのページにすべてのカテゴリを出力するために使用している現在のコードです。 $args = array( 'orderby' => 'name', 'order' => 'ASC' ); $cats = get_categories( $args ); $thm_pre = 'http://example.com/images/thumbs/'; $thm_end = '.png'; foreach($cats as $cat) { $thumbnail = $thm_pre.$cat->slug.$thm_end; // output the loop HTML here // basically a list of category names & thumbs // all linked …

4
REST APIを使用してカスタム投稿メタを取得する方法
ワードプレスジョブマネージャープラグインを使用して施設リストに使用されるワードプレスウェブサイト用のREST APIを作成しようとしています。 \ plugins \ rest-api \ plugin.phpにカスタム投稿の分類を登録しました。 以下のAPIは、デフォルトの応答ですべてのリストを表示します。 http:// localhost / sports / wp-json / wp / v2 / joblisting / 以下のコードを使用して、JSON応答に投稿メタを追加したいと思いました。 function slug_register_phone_number() { register_rest_field( 'job_listing', 'phone', array( 'get_callback' => 'slug_get_phone_number', 'update_callback' => null, 'schema' => null, ) ); } function slug_get_phone_number($post, $field_name, $request) { return get_post_meta($post->id, '_phone' …

1
コーデックスはもはや積極的に維持されていませんか?
私は通常、Wordpress関数のクイックリファレンスが必要なときにGoogleを使用します。通常、最初に表示されるのはCodexの投稿です(たとえば、「get-term」をグーグル検索するときはhttps://codex.wordpress.org/Function_Reference/get_term)。 私は長年、コーデックスに依存する、と別々のコードリファレンスがあったことを漠然と認識していたされてきた(例えば。https://developer.wordpress.org/reference/functions/get_term/を)ことでしたコーデックスよりも詳細を与えます...しかし、ほとんどが重複したリストのように見えました。代わりに、これはGoogle検索で最初に戻ることがあります。 しかし、最近、私は2つの間に矛盾を見つけました...そして、コーデックスはいくつかの事柄で時代遅れになっているようです。たとえば、re。上記の2つのリンク- $taxonomy本当に必要なパラメーターではなくなったことに気付く前に、少し時間をかけてトラックのチケットを読みましたget_term()。コーデックスにはまだそれが必要であると記載されているので、私は庭の道にいました。 各ページの上部にコードリファレンスへのリンクがありますが、非推奨であると言及しているCodexのどこにも表示されません。 コーデックスが廃止されたかどうか誰かが知っていますか?それはまだ目的を果たしていますか?または、私はそれをほとんど無視して、developer.wordpress.orgを使用するべきですか?

2
WordPressがリストビューですべてのカスタム投稿タイプのメタデータを取得する
PHPが死にかけているというWordPressで問題が発生しています。メモリを増やしましたが、PHPプロセスが100%のCPU使用率にジャンプしてから終了し、Apacheが500エラーをスローします。 Apacheで何かをログに記録したり、PHP / MySQLでエラーをログに記録したりしましたが、一般的な500エラー以外は何も記録されません。 500号はリストページにあります。例: /wp-admin/edit.php?post_type=artist 次のような日付の並べ替えを追加すると、WordPressには現在1200以上のアーティストエントリがあります。 /wp-admin/edit.php?post_type=artist&orderby=date 次に、リストはうまくロードされます。私はMySQLクエリログに座って見ましたが、WordPressが10個程度のリストを作成するためにすべての投稿(すべて1200個)のメタデータをロードしているようです。クエリの1つだけで、92000行が返されます。高度なカスタムフィールドと独自のフレームワークを持つテンプレートを使用しているため、各投稿にはかなりの量のメタデータが添付されています。これはPHPで処理するにはデータが多すぎると思います。ここで上限に達しました。1200の投稿は来年には簡単に2倍になるでしょう。 最初のページの読み込みを強制して日付の並べ替えを追加するか、すべてのメタデータの読み込みに関する問題を修正するにはどうすればよいですか?

2
非公開リソースを非表示にすることでワードプレスのセキュリティを向上させる
私はワードプレスの初心者です。非公開リソースを非表示にすることで、ワードプレスマルチサイトのセキュリティを改善したいと考えています。wp-admin、wp-configなど 私の設定は機能しているようですが、この設定が何かを壊す可能性があるかどうかわかりません(コア機能、人気のプラグインなど)。 私の設定は一般的に良いですか? 私の設定は本当のセキュリティを改善しますか、それとも私の時間を無駄にしていますか? httpd-vhosts.conf(Apache) # Disallow public access php for .htaccess and .htpasswd files <Files ".ht*"> Require all denied </Files> # Disallow public access for *.php files in upload directory <Directory "/htdocs/wp-content/uploads/"> <Files "*.php"> deny from all </Files> </Directory> # Disallow public access for... <Files "wp-config.php"> order allow,deny deny …

4
comments_template()がcomments.phpをロードしないようにする
テンプレートエンジンを使用してWordPressテーマを開発しています。私のコードがWPコア機能と可能な限り互換性があることを望みます。 最初にいくつかのコンテキスト 最初の問題は、WPクエリからテンプレートを解決する方法を見つけることでした。私は自分のライブラリBrain \ Hierarchyを使用してその問題を解決しました。 get_template_part()や他の負荷のパーシャルが好きなことを機能get_header()、get_footer()および同様、それはテンプレートエンジン部分的機能への書き込みラッパーにはかなり簡単でした。 問題 私の問題は、コメントテンプレートを読み込む方法です。 WordPress関数comments_template()は、多くのことを行う〜200行の関数であり、コアの互換性を最大限に高めるためにも実行したいと思います。 ただし、を呼び出すとすぐcomments_template()に、ファイルはrequiredになり、次のいずれかになります。 定数のファイル(COMMENTS_TEMPLATE定義されている場合) comments.php 見つかった場合は、テーマフォルダー内 /theme-compat/comments.php WPには、最後の手段としてのフォルダーが含まれています つまり、単純にを使用するのではなくテンプレートをレンダリングする必要があるため、関数がPHPファイルをロードするのを防ぐ方法はありませんrequire。 現在のソリューション 現時点では、空のcomments.phpファイルを出荷'comments_template'していて、WordPressがロードするテンプレートを確認するためにフィルターフックを使用し、テンプレートエンジンの機能を使用してテンプレートをロードしています。 このようなもの: function engineCommentsTemplate($myEngine) { $toLoad = null; // this will hold the template path $tmplGetter = function($tmpl) use(&$toLoad) { $toLoad = $tmpl; return $tmpl; }; // late priority to allow filters attached …
9 templates 

4
WP REST API v2で投稿数を取得し、すべてのカテゴリを取得する
投稿数を知りたい。使うと思う wp-json / wp / v2 / categories?page = 1 >>カウントするのが良い方法です。しかし、上記の解決策を使用することは、速度の点でお茶ではなく、1回の呼び出しですべてのカテゴリを取得する方法がわかりません(もし知っていれば、共有すると非常に役立ちます)。メインコールに投稿数を追加できるようにする方法/チュートリアル/ ...はありますか?このルートのように:wp-json / wp / v2 / posts ...

3
プラグインディレクトリを参照するためのベストプラクティス
私のプラグインは次のコードを使用してファイルを参照しますがWP_PLUGIN_DIR、ユーザーがデフォルトのプラグインフォルダーの名前を変更した場合、読んだことが機能しません。また/location-specific-menu-items/、現在のプラグインフォルダーへの参照に置き換えたいと思います。 $gi = geoip_open(WP_PLUGIN_DIR ."/location-specific-menu-items/GeoIP.dat", GEOIP_STANDARD); WPプラグインディレクトリの名前や特定のプラグインフォルダーの名前に関係なく機能するようにこれを書き換えるにはどうすればよいですか? 編集: これが、皆さんの意見を反映した私の最終的な解決策です。どうもありがとう! $GeoIPv4_file = plugin_dir_path( __FILE__ ) . 'data/GeoIPv4.dat'; $GeoIPv6_file = plugin_dir_path( __FILE__ ) . 'data/GeoIPv6.dat'; if (!filter_var($ip_address, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) === FALSE) { if ( is_readable ( $GeoIPv4_file ) ) { $gi = geoip_open( $GeoIPv4_file, GEOIP_STANDARD ); $user_country = geoip_country_code_by_addr($gi, $ip_address); geoip_close($gi); } …

5
部分的なメタキーで投稿をクエリするにはどうすればよいですか?
投稿の「いいね」ステータスを投稿メタとして保存する機能があります。その「いいね」を好きなユーザーに関連付けたいので、「like_status_ {user_id}」というカスタムフィールドを設定します({user_id}は現在ログインしているユーザーのIDです)。これを0または1.したがって、「いいね」が複数ある投稿の場合、dbには次のように設定されたメタ値がいくつかあります。 'meta_key' = 'like_status_0' 'meta_value' = 1 'meta_key' = 'like_status_2' 'meta_value' = 1 'meta_key' = 'like_status_34' 'meta_value' = 1 ....等々。 特定の投稿には潜在的に数千のいいね!他の誰かもその投稿を気に入っているかどうかを示すクエリをどのように実行しますか? 私はこのようなことを考えていました: $query = new WP_Query(array( 'meta_key' => 'like_status_{user_id}', 'meta_value' => 1, )); 他の誰かがその投稿を気に入ったときに、「ねえ、あなたが気に入った投稿を他の誰かが気に入ったので、ぜひチェックしてみてください!」のような通知をプッシュしようとしています。しかし、私は他の誰かがその投稿を気に入っているかどうか、そうであれば誰がそうするかを知る方法が必要です。 それが不可能な場合は、投稿の1人のユーザーの「いいね」のステータスをすばやく更新する効率を維持しながら、このデータをpost_metaとして保存するより良い方法を提案できますか?

1
カスタマイザのカスタムイメージセクション
そのため、カスタマイザーにこのカスタムセクションがあり、ホームページのフィーチャー製品を制御します。そこにはすべて登録済みなどがありますが、私が行き詰まっている問題は、クライアントが機能イメージの1つをアップロードしたときに、それを更新する方法がわからないことです。 私が使用しているfunctions.phpコード: // Customiser function themeName_customize_register( $wp_customize ) { $wp_customize->add_setting('feature_product_one', array( 'default-image' => get_template_directory_uri() . '/assest/imgs/featureProducts/product1.png', 'transport' => 'refresh', 'height' => 180, 'width' => 160, )); $wp_customize->add_setting('feature_product_two', array( 'default-image' => get_template_directory_uri() . '/assest/imgs/featureProducts/product1.png', 'transport' => 'refresh', 'height' => 180, 'width' => 160, )); $wp_customize->add_setting('feature_product_three', array( 'default-image' => get_template_directory_uri() . '/assest/imgs/featureProducts/product1.png', …


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