WordPress

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

2
ネストされたループ内の前のループへの投稿データのリセット
投稿から投稿へのプラグインでネストされたループを使用しようとしています。ループは両方とも機能しますが、2番目のネストされたループ($ issue)の後に問題が発生します。$ publicationループに再度アクセスしたいのですが、データは依然として$ issueデータです。 wp_reset_query() single.phpのメインループに戻りますが、これは望ましくありません。 私は使用することができget_posts()、新たなWP_Queryのではなく、私は使用することができるようにしたいですget_template_part()。 2番目の「出版物のタイトル」が号ではなく出版物を返すように、データを出版物のルー​​プにリセットするにはどうすればよいですか? single.php内のコードは次のとおりです。 $publication = new WP_Query( array( 'connected_type' => 'publication_to_post', 'connected_items' => $post->ID, 'fields' => 'ids', 'posts_per_page' => 1, ) ); if ( $publication->have_posts() ) { while ( $publication->have_posts() ) : $publication->the_post(); echo '<h2>Publication title = '.get_the_title().'</h2>'; $pub_id = get_the_ID(); $issue = new …
21 wp-query  loop  reset 

3
クラス名を追加してサムネイルを投稿
投稿のサムネイルを使用してページにリンクしています。 投稿のサムネイル画像にクラス名を追加することは可能ですか? <li><a href="<?php the_permalink(); ?>" ><?php the_post_thumbnail(); ?></a></li>

2
カスタムスタイルシートをwp-adminに追加する
WP-ADMINエリアでカスタムスタイルシートを動作させるのに問題があります。 plugins_url('style.css', __FILE__) );cssという名前のプラグインにフォルダーを作成する必要がありますか.css、wp-admin/cssそれともディレクトリにコピーするだけですか? 両方試してみたが、うまくいかないようだ。 そして、どの値に置き換える必要があり__FILE__ますか? ごめんなさい、これらのものにはちょっと新しい。 /*ADDS STYLESHEET ON WP-ADMIN*/ add_action( 'admin_enqueue_scripts', 'safely_add_stylesheet_to_admin' ); function safely_add_stylesheet_to_admin() { wp_enqueue_style( 'prefix-style', plugins_url('style.css', __FILE__) ); } /*ADDS MY CUSTOM NAVIGATION BAR ON WP-ADMIN*/ add_action('admin_head', 'custom_nav'); function custom_nav(){ include('custom_nav.html'); }
21 wp-admin  css 


3
テンプレートに重力フォームのデータを表示するにはどうすればよいですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新することがありますので、上のトピックワードプレスの開発スタックExchange用。 5年前に閉鎖されました。 序文 重力フォームをインストールし、フォームを作成し、ユーザーがサイトにデータを送信しています。私がしたいことは、ユーザーが私のページの1つで私のサイトに送信しているデータを表示することです。 Gravity Forms Directoryプラグインがあることは知っています。しかし、これは固定データ表示のみを提供します。 質問 このようなことをすることができる重力形式のものはありますか?(擬似コード): <?php gforms_get_field( $form_id, $entry_id, 'user_name_field' ); ?>

4
制限されたページを404にリダイレクト
現在ログインしているユーザーにページを表示するための適切なクリアランスがない場合に404​​ページを表示する方法はありますか?私は次のようなPHPメソッドを探しています if( !current_user_can('administrator') ) { show_404(); exit(); } リダイレクトを使用することを考えましたが、URLは同じままにしたいと思います。

3
ユーザープロファイルにフィールドを追加するにはどうすればよいですか?たとえば、国、年齢など
私はコンピュータ/コードなどがあまり得意ではありません。登録フォームを面白くするプラグインを使用し、そのフォームに国、年齢グループ、性別などを追加しました。wordpressユーザーthingyに登録者を追加するオプションをクリックします。しかし、試してみると、ユーザー名とメールのみがバックエンドの[ユーザー]セクションに表示されます。他のフィールドを[ユーザー]セクションに表示する方法はありますか? 統計的な用途のためにそれらを表示する必要があります。
21 users 

1
apply_filters( 'the_content'、$ content)vs do_shortcode($ content)
テーマオプションまたはカスタムポストメタテキス​​トエリアがあるとします。今、私は複数のショートコード、一般的なテキスト、画像などを実行したい ベストプラクティスとは何ですか? オプション1: $content = //my text area data; echo apply_filters('the_content', $content); オプション2: $content = //my text area data; echo do_shortcode($content); どちらがベストプラクティスになるのか、そしてその理由を教えてください。 編集 シナリオについて詳しく説明します。クライアントの要件に合わせてテーマを開発します。場合によっては、投稿/ページ/カスタム投稿タイプに投稿メタを追加して、ショートコード(スライダー、連絡フォームなど)または単なるテキストを追加できるようにする必要があります。提出されたテキストです。 ショートコードを機能させるには、オプション1を使用します。今、私はこれが間違った方法であると誰かから聞いたので、を使用する必要がありますdo_shortcode。しかし、彼らはなぜそれが間違った方法であるかの説明を私に与えませんでした。それが私が尋ねている理由です。 このプロセス全体は、wpのデフォルトのテキストエディターで実行できます。しかし、テンプレート固有の使用のためにこれらのオプションを作成する必要があります。それが私のクライアントの望みです。

1
Rest V2(WP4.7)では、特定のRESTFUL動詞をどのように制限しますか?
カスタム投稿タイプごとに特定のRESTUL動詞を制限することを目指しています。たとえば、語彙のカスタム投稿タイプが与えられた場合、私は言いたいと思います: 許可マトリックス +-------+---+----------+ |index | X | GET | |show | O | GET | |create | X | POST | |update | X | PATCH/PUT| |delete | X | DELETE | +-------+---+----------+ V2はそのレベルの制御を提供していないようです。私はソースを調べましたが、私が見ることができるものから、アクセス権の変更を利用するフック/フィルターはありません。 私の現在の解決策は次のとおりです。許可されたアクションに対してカスタム投稿タイプのマトリックスをロードできるクラスの妥協。これはrest_prepare_vocabularyフィルターで呼び出すことができ、権限が揃っていない場合は応答を破棄します。 問題 これが合理的な解決策だとは思わない。これは、アクセス許可が2つのスポット(まだ適用されているコアの1つ)とフィルターで解決されていることを意味します。 理想的には、構成レベル、つまりカスタム投稿タイプが定義される場所になります。 言い換えると、ポストクエリ "snip"を実行するよりもexclude_from_search、(publicly_queryable、などの行に沿って)ルールを渡すことを好みます。 現在のソリューション(機能するが望ましくない) Access.php class Access { function __construct($permissions) { $this->permissions = …

1
マルチサイトで書き換えルールを確実にフラッシュする方法は?
書き換えルールをフラッシュする必要があるプラグインがあるとします。アクティベーションフックとフラッシュレイトを追加することですべて適切に行うため、すべてがスムーズで互換性があります。 そして、ある晴れた日、誰かがそれをマルチサイトで実行しようとします。 次のような単純なシナリオの代わりに: WordPressサイトが作成されます プラグインがインストールされ、アクティブ化されています 次のような悪夢のシナリオがあります。 プラグインがインストールされ、ネットワークがアクティブになりました マルチサイトの新しいWordPressサイト(または100)が作成されます 理論的には、うまくいくはずですよね?実際には、それは見事な方法で間違っています: $wp_rewrite 状態は間違ったサイトからのものである可能性があります switch_to_blog() 書き換え状態も追跡しません 「後の」部分は別のブログで完全に発生する可能性があります 他のすべてのプラグインは、さまざまなサイトで一貫して有効になっていない可能性があります。 たとえば、この問題は、新しいサイトが作成されるたびに、メインサイトのパーマリンクが正しく表示されないことを示しています。 したがって、プラグインは、マルチサイトで書き換えルールを確実にフラッシュする方法を説明します。 新しいサイトが作成されると、そのサイトは? 既存のサイトが非アクティブからアクティブになった場合、そのサイトはどうですか? すべてのサイトでプラグインがネットワークで有効化されるとき すべてのサイトでプラグインがネットワークで無効になっている場合 おそらく他のシナリオで、グローバルコンテキストの書き換えが変更される可能性がありますか?

1
開発コピーでサイトを更新し、その後、ライブサイトの進化するデータベースを上書きせずに更新を元に戻すにはどうすればよいですか?
私はタイトルをできるだけ説明的にしようとしましたが、この質問はさまざまな形で以前に尋ねられたことを知っていますが、それに対する良い答えを見つけることができず、誰もこの問題を解決していないことを想像しています。 WPサイトが公開されると簡単です。静的サイトではない場合、新しい投稿、新しいwoocommerce注文、新しいユーザーアカウントなどを追加してデータベースを更新し続けます。 サイトに大きな変更と更新を行う場合、これを行う最も簡単で簡単な方法は、ローカルインストールまたは別の開発ドメインのいずれかにコピーを作成し、そこですべての変更を行うことです。すべての変更が完了したら、ライブサイトにコピーして戻します。 テーマやcssなどの変更がファイルのみの場合、それはいくぶん簡単です。ただし、新しいプラグインの追加や、これらのプラグインに接続/関連するコンテンツの追加など、変更にデータベースの変更が含まれる場合、ライブに追加された新しい変更を上書きするため、サイトをコピーして戻すことはできなくなりましたサイトのデータベース。すべての新しい投稿、新しい注文、新しい画像のアップロードはすべて消去されます。 今、私はさまざまなケースシナリオにさまざまなソリューションがあることを知っていますが、すべてのケースに対処する方法はありませんか? たとえば、ライブサイトに加えられた変更が新しい投稿のみであった場合、投稿をdevサイトにエクスポートおよびインポートしてから、サイト全体を移動できます。他のいくつかのアイテムと同じですが、すべての種類のアイテムではありません。これに関する他の問題は、wordpressのエクスポートおよびインポート機能がひどいことです。これは非常に初歩的なものであり、特定のアイテムのみを選択してエクスポートするオプションはほとんどありません。私はおそらくすべての「高度なインポート/エクスポート」プラグインを試してみましたが、この問題を解決するものはまだありません。 したがって、別のスレッドで、誰かがこのプラグインを指摘して、基本的にライブサイトにテーマをインストールして作業し、通常のユーザーには既存のテーマが表示されますが、それでもすべての種類の変更が解決されるわけではありません。コンテンツを変更したい場合、たとえばフッターまたはナビゲーションメニューを使用する場合、既存の表示可能なテーマ/サイトに反映され、新しいテストテーマでは問題なく表示されますが、実際のテーマでは表示されない場合があります。 同じサイト/データベースでサイトの「ブランチ」を開発してから切り替える方法はありませんか?または開発サイトで開発する方法はありませんが、実際に非破壊的な方法でデータベースをマージしますか?影響を受けたコンポーネントとものがわかっている場合、それを行う方法はありませんか?または、そのようなことを試みるにはMySQLマスターである必要があります。 この難問を抱えているのは私だけではありません。この問題の解決策がないとは想像できません。これをどのように行うことができますか? 前もって感謝します。

3
このコードは何回実行されますか?(または、おばあちゃんの豊かさは?)
架空の例ですが、実世界での適用可能性(私のような学習者向け)。 このコードを考えます: <?php function send_money_to_grandma() { internetofThings("send grandma","$1"); } add_action('init','send_money_to_grandma'); add_action('init','send_money_to_grandma'); OK、WPサイトを立ち上げてログインします。Adminでいくつかのページを走査します。「init」アクションは、ラップトップのバッテリーが切れる前に合計100回発生します。 最初の質問: おばあちゃんにいくら送金しましたか?$ 1、$ 2、$ 100、または$ 200(または他の何か?) あなたの答えを説明することができたら、それは素晴らしいでしょう。 2番目の質問: おばあちゃんに$ 1だけを送信するようにしたい場合、これを行う最善の方法は何ですか?$ 1を初めて送信したときに「true」に設定されるグローバル変数(セマフォ)または、アクションが既に発生したかどうかを確認し、それが複数回発動しないようにする他のテストがありますか? 3番目の質問: これはプラグイン開発者が心配するものですか?私の例は馬鹿げていると思いますが、パフォーマンスの問題と他の予期しない副作用の両方を考えていました(たとえば、関数がデータベースに更新/挿入する場合)。

4
アップロードディレクトリから未使用の画像をすべて削除するにはどうすればよいですか?
アップロードフォルダーがサーバー上のスペースを占有し始めているため、アップロードフォルダーを削除しようとしています。 私はDNUIやCleanup Imagesなどのプラグインを使用してこの目的を達成しようとしましたが、これらのプラグインは機能しないか、DNUIの場合(最近更新されて機能します)が正確な結果を達成できません。これは、私のサイトがヘッダーやフッター、ギャラリーなどの投稿やページだけでなく、他の場所で画像を使用するWoocommerceとテーマを使用しているためです。WCは、Pretty Photoと呼ばれる独自のビルトインLightboxプラグインを使用しているように見えます。これは、DNUIによって「未使用」として詳細に表示される画像の呼び出し元です。 私はそれがちょっとした質問であることを知っていますが、誰かが私を正しい方向に向けることができるかどうか疑問に思っていますか?私は開発者ではないので、おそらくここに投稿するべきではありませんが、時間と決意を持って問題を解決できます。このサイトで、DNUIプラグインと同じ結果を達成するスクリプトを見てきましたが、他の画像の使用を考慮に入れたものはありません(可能であれば)。どんな助けでも大歓迎です。

2
ウィジェットがバックエンドに追加されたときにJavascriptを実行する
JavaScriptコントロールがアタッチされているウィジェットがあります。 ウィジェット管理ページのロード時にウィジェットが存在する場合、コントロールは正しく機能します。 新しいウィジェットを追加すると、それらは正しく機能せず、マークアップが表示されますが、javascriptイベントは有効になりません。 新しいウィジェットを保存すると、フォームがリロードされると、コントロールが正しく作成され、機能するようになります。 ページを更新すると、既存のウィジェットのみの問題も修正されます。新しいウィジェットにはまだこの問題があります。 具体的には、これらのポイントで選択入力に対してselectizeを実行しています。 文書準備完了 Ajaxcomplete 必要に応じて各イベントでコードが実行されることを確認しましたが、結果は期待どおりではありません。 問題を実証するテストプラグインは次のとおりです。 https://gist.github.com/Tarendai/8466299 変換できることがわかったすべての選択要素で増加するカウンターがあることがわかります。 ノート: ウィジェットページがロードされると、JSコンソールで期待どおりにカウンターが増加するのがわかります。 新しいウィジェットを追加すると、コードが実行されますが、found.lengthが0であることからわかるように、実行可能な選択要素の検索に失敗します。このタイプのすべての新しいウィジェットは、選択要素を持っている select要素にはそれらを識別するためのクラスがあり、selectizeライブラリが適用されると、このクラスは削除され、既存のウィジェットでの複製と再処理が防止されます。 selectizeを使用する前に、同じ問題のあるSelect2を使用しました AJAXコードをコメントアウトすると、新しいウィジェットには標準の選択入力が含まれることになります。彼らはしない。なぜそうなのか分かりません それでは、変更を行う前に保存を更新/クリックするようにユーザーに通知せずに、selectizeコントロールを機能させるにはどうすればよいですか?

3
WordPress 3.9-beta1以降で使用可能なカスタムTinyMCE 4ボタンを追加
ビジュアルエディターTinyMCE バージョン4にカスタムボタンを追加する方法を教えてください。 現在、私はこのQ&Aをトピックへの少しのヒントで見つけましたが、解決策や方法はありません。しかし、カスタムボタンをTinyMCEバージョン4に追加するトピックのチュートリアル、ドキュメント、Q&Aは見つかりません。バージョン3.9-beta1以降のWordPressに含まれています。 ゴール

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