WordPress

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

2
マルチサイトのサイトから投稿を取得しますか?
複数のサイトの投稿をプルしようとしています。たとえば、カテゴリごとの1つのサイト投稿と合計投稿数10を引き出すことができます。 しかし、2つの別々のマルチサイトブログ1と2から両方の投稿を引き出しようとしています。しかし、ブログ1のみが機能します。また、ブログ1とブログ2から別のカテゴリーを抽出します。どうすればこれを達成できますか? これが私がやろうとしていることです: <?php global $switched; switch_to_blog(1,2); //switched to 1 & 2 but only 1 working // Get latest Post $latest_posts = get_posts('&cat=64&showposts=10'); $cnt =0;?> <ul> <?php foreach($latest_posts as $post) : setup_postdata($post);?> <li> <a href="<?php echo get_page_link($post->ID); ?>" title="<?php echo $post->post_title; ?>"><?php echo short_title('...', 7); ?></a> </li> <?php endforeach ; …

3
「URLから挿入」タブをカスタム3.5メディアアップローダーに追加する方法はありますか
ボタンがクリックされたときに次のJavaScriptを実行して、WP 3.5メディアアップローダーをウィジェットに挿入しました。 var frame = wp.media( { title : 'Widget Uploader', multiple : false, library : { type : 'image' }, button : { text : 'Select Image' } } ); frame.on( 'close', function() { var attachments = frame.state().get( 'selection' ).toJSON(); imageWidget.render( widget_id, widget_id_string, attachments[0] ); } ); frame.open(); return …
17 widgets  uploads  media 

3
admin-ajax.phpをフロントエンドに追加します。良いアイデアか悪いアイデアか?
admin-ajax.phpが大好きです。しかし、フロントエンドスクリプトを指すためにローカライズする必要はありません。テーマに対応する、見つけやすいファイルがあればいいのにと思います。(また、フロントエンドのリクエストが "/ wp-admin /"を通過するのを見るのも面倒です。実用的な理由はなく、,いIMOに見えます。) そのため、単にadmin-ajax.phpを「/ajax.php」のルートディレクトリにコピーし、インクルードパスを調整し、WP_ADMIN定数の定義を削除しました。ギャングバスターのように動作しているようです(すべてのフロントエンドAJAXリクエストを/ajax.phpに直接送ることができます!そして、プラグインで通常のwp_ajaxフックを使用できます!)。 しかし、これは安全ですか?何がおかしいのでしょうか?これはコアに組み込まれていないので、なぜそうならないのかについて十分な理由があると思います。しかし、コードを見てみると、差し迫った問題は見当たりません。 あなたは賢いです。このアプローチがおかしいなら教えてください。または、私が見落としているより簡単な方法がある場合。
17 themes  ajax 

6
WordPressがサムネイルを作成できないようにする方法は?
WordPressが複数のサムネイルを作成できないようにする方法について、私は長い間ネットを見回してきました。 ほとんどのチュートリアルでは、メディアセクションですべての画像を0に設定しました。私はそれをしましたが、私のアップロードフォルダに行くと、それはまだ複数の画像を作成します。 これに対する解決策が見つかりません。これが欲しい理由は、ホストアカウントのスペースを節約するためです。

3
親カテゴリの子を取得します
このループですべての子カテゴリを表示しようとしていますが、コードに苦労しています。これは私がこれまで持っているものです。 <?php $args=array('orderby' => 'name', 'order' => 'ASC'); $categories=get_categories($args); foreach ($categories as $cat) { ?> <dt><a href="#" class="customer-acquisitiontop" id="<?php echo $cat->slug; ?>" data-filter=".<?php echo $cat->slug; ?>"><h2><?= $cat->cat_name; ?></h2></a></dt> <dd><div class="services"> <?= $categories=get_categories('parent'); ?> /*This should be the children of the parent category */ </div> </dd> <?php } ?> どんな助けも素晴らしいでしょう

3
JavaScriptファイルを特定の投稿やページに追加する最も効率的な方法は?
最も効率的な方法は、投稿やページ専用のjavascriptファイルを追加することです。 ここに私が思いついたいくつかの解決策があります: HTML編集ビューに切り替えて、JavaScriptをそこに投稿します(かなり悪い解決策) キーと値のペアでその投稿/ページの特定のJavaScriptを含むカスタムフィールド footer.phpで、現在のページに応じてJavaScriptファイルをロードします(ただし、多くの条件につながります) ちなみに、JavaScriptファイルはページ間で共有されません。これは、現在表示しているものに文字通り固有のものです。 何かご意見は?

2
どのコンテキストでプラグインがデータの検証/サニタイズを担当しますか?
プラグイン/テーマのすべてのデータが、データベースに入る前とブラウザーに出力される前に、安全に処理されるようにします。私の問題は、ポストメタフィールドを保存するときなど、APIがサニタイズを処理する状況と、カスタム設定を保存するときなど、プラグイン/テーマの作成者がそれを行う責任がある状況があることです。 この質問の範囲については、ドメインレベルでのデータの検証については心配していません。たとえば、フォームのAgeフィールドが0〜120であるか、電子メールアドレスが有効であることを確認します。私はセキュリティだけに関心があります。たとえば、データベースへの保存時にSQLインジェクションを回避するためにSQLクエリをエスケープしたり、XSSを回避するためにHTMLテンプレートに出力されるデータを無害化します。 出力のサニタイズについては、変数をHTMLテンプレートにエコーするときなどにesc_html()、常に関数を使用する必要があることを知っていますesc_attr()。しかし、テンプレートタグを使用する場合はどうでしょうか。それらはすべて既に出力をサニタイズしますか?その場合、どのコンテキスト(一般的なHTML、タグ属性など)ですか?一部の関数には、さまざまなコンテキストのバリアントがあります(などthe_title_attribute()ですが、ほとんどはありません 入力サニタイズについては、$wpdb->prepare()手動クエリを作成するときに使用する必要があることは知っていますが、Settings APIを使用してプラグイン設定ページを作成する場合、またはカスタム投稿タイプの投稿メタフィールドを保存する場合はどうですか? 現在、関数を使用して関数がサニタイズするかどうかを調べるたびにコアを掘り下げてチュートリアルを読んでいますが、それはエラーが発生しやすく、時間がかかります。考えられるすべての状況と、APIがそれを処理するかどうかの包括的なリストを見つけたいと思っています。例えば、 APIの検証/サニタイズ 投稿メタを保存 update_postmeta() ユーザーメタを保存 update_user_meta() 投稿タイトルの出力-コンテキストに応じた適切なバリアントを使用します the_title() 等 手動で検証/サニタイズする必要があります Settings APIを使用してプラグインオプションを保存する。の3番目のパラメーターとしてコールバックを渡しますregister_setting()。 直接データベースクエリ:クエリをにラップします$wpdb->prepare()。 HTMLで変数を出力します。使用esc_attr()、esc_html()など 等 また、特定の状況ではAPIが提供するが、他の状況では提供しない理由を理解したいと思っています。私はそれがデータの未知の性質と関係があると仮定していますが、徹底的な説明を聞きたいです。

3
管理ページのリダイレクト
ユーザーが別の管理ページにアクセスした場合、管理ページにリダイレクトできますか? たとえば、ユーザーが「すべてのページ」をヒットした場合 /wp-admin/edit.php?post_type=page 「新しいページを追加」にリダイレクトされます /wp-admin/post-new.php?post_type=page

3
新しいブログ設定フォームにカスタムブログオプションを追加する方法
十分に単純な要件のようですが、私は苦労しています: 「新しいサイトの追加」にオプションフィールドを追加したい。 シンプルなテキストオプションで十分です。どうすればいいですか? サイトの作成時に、このカスタムブログオプションを保存する必要があります。 私は「wpmu_new_blog」フックを使用できることを知っていますが、これは$meta提供されたオプションで変数を渡しますが、1つのステップでこれをすべて行う方法があるので、別のDBクエリを実行する必要はありません、サイト作成プロセス全体を上書き/置き換えますか? ノート: MultiSiteセットアップでWP 3.3.1を使用しています。指定したカスタムフィールド値に一致するすべてのサイトをリストするプラグインを作成しています(「タイプ」と呼びましょう)。 また、私は経験豊富なPHP開発者ですが、WordPressのハッキングはまだ比較的新しいので、さまざまなWP関数とフックのすべてにまだ精通していないと想定してください。

3
wp_nav_menuを使用してメニュー名を表示する
wp_nav_menuを使用して問題なく呼び出すことができるカスタムメニューがあります。メニューの前にh3タグ内にメニュー名を表示する方法はありますか? 例 <h3>My Menu Name</h3> <nav> <ul> <li>Menu Item 1</li> <li>Menu Item 2</li> </ul> </nav>

5
短いコードで「]」をエスケープするにはどうすればよいですか?
短いコードで右括弧をエスケープするにはどうすればよいですか? エンコードされたポイントを持つGoogleマッププラグインで作業しています。場合によっては、ポリゴンに]が含まれているため、WPがショートコードの終わりであるとWPに認識させます。 例えば: [my_shortcode latitude='36.93' longitude='-72.98' encoded_points='ortlF~g]tM?cZEH`z]}|@DQfi]' ] ]WPに問題を引き起こしていないものを試しましたが、Googleマップコードに問題を引き起こしています。Regexを使用して]を置き換えることもできますが、もっと簡単な方法があるかもしれません。ショートコードにはエスケープ文字がありますか?
17 shortcode 

3
Wordpressで独自のカスタムセッション値を使用する方法
Wordpressで独自の(カスタム)セッション値を使用するにはどうすればよいですか? 例えば:$_SESSION['myname']="4lvin" 私はすでにsession_start()次のように必要なすべてのページに挿入しました。 <?php session_start(); $_SESSION['myname'] = "4lvin"; ?> しかし、グローバルに機能していません。 セルフページで作業するだけです。 (同じロジックを使用して)別のページからグローバルに呼び出すことはできません。
17 session 

2
wp_nav_menuからメニュー項目を動的に除外する
カスタムメニューからnavメニュー項目を除外/削除する方法についての情報を探してみましたが、見つけた唯一のスレッドには私にとって有用な答えがありませんでした。 1.背景: 私のサイトでは、WPカスタムメニュー(wp_nav_menu)とjqDockを使用してDockメニューを作成しました。jqDockは、その魔法を機能させるために連続した画像または画像リンクを必要とするため、カスタムウォーカーを使用して、navメニューのHTML出力を次のようにします。 <div id="menu-first" class="nav"> <a><img src="http://path/to/image-1.png"/></a> <a><img src="http://path/to/image-2.png"/></a> <a><img src="http://path/to/image-3.png"/></a> etc... </div> カスタムウォーカーのコードは次のとおりです。 class custom_nav_walker extends Walker_Nav_Menu { var $tree_type = array( 'post_type', 'taxonomy', 'custom' ); var $db_fields = array( 'parent' => 'menu_item_parent', 'id' => 'db_id' ); function start_lvl(&$output, $depth) { $indent = str_repeat("\t", $depth); $output .= "\n$indent<ul …

7
ワードプレスの404処理をスキップして、静的ファイルのすべての404エラーを404.htmlにリダイレクトするにはどうすればよいですか?
ワードプレスの404処理をスキップして、静的ファイルのすべての404エラーを404.htmlにリダイレクトするにはどうすればよいですか? 私は読んで、パーマリンクを使用するとき、それは不可能のようです 目的は、phpをロードしないことにより、404エラーのサーバー負荷を減らすことです。

3
プラグインデータをテーマに統合する方法
テーマの統合を提供するWordPressプラグインを開発するためのベストプラクティスに関する意見を聞きたいと思います。 この質問をするときに意味をなすために、私が興味を持っているシナリオの仮説的な例から始めましょう。「Discography」というプラグインを作成するとします。ディスコグラフィーは、「バンド」、「アルバム」、「トラック」の3つのカスタム投稿タイプを登録します。プラグインは、各投稿タイプの詳細を提供するメタボックス、および各投稿タイプを整理するためのカスタム分類も提供します。これらの投稿タイプは、Posts 2 Postsプラグインと結びついています。管理者内で、ユーザーは新しいバンドを追加できます。新しいバンドはアルバムに関連付けられ、アルバムはトラックに関連付けられます。すべてのトラックには、メタボックスと分類法を介して他の多くのデータが追加されます。 さて、このプラグインでユーザーがこの情報を入力できるように管理者を設定するだけでは望ましくありません。データのデフォルトの表示を提供したいと思います。より高度なユーザー/開発者であれば、この管理者のみで十分です。彼女がそのデータを取得してテーマで使用するのは簡単です。ただし、一部のデフォルトビューがなければ、このプラグインはほとんどのユーザーにとって役に立たないでしょう。この例では、次のようなものを表示できます(括弧は、テンプレート階層の順に情報を表示する方法を示しています)。 バンド(single-prefix-band.php、single.php、index.php、ショートコード) アルバム(single-prefix-album.php、single.php、index.php、ショートコード) トラック(single-prefix-track.php、single.php、index.php、ショートコード) バンドリスト(template-band-list.php、page-band-listing.php、page- {id} .php、page.php、index.php、ショートコード) アルバムリスト(template-album-list.php、page-album-listing.php、page- {id} .php、page.php、index.php、ショートコード) アルバムタイムライン(template-album-timeline.php、page-album-timeline.php、page- {id} .php、page.php、index.php、ショートコード) デフォルトのテンプレートファイルには、各投稿タイプに必要なすべての情報が表示されないため、これらの投稿タイプにはデフォルトのプレゼンテーションがあることが重要です。たとえば、Twenty Elevenテーマでは、デフォルトで、アルバムの名前、カテゴリ、説明、投稿日のみが表示されます。アルバムにはあまり役立ちません。バンド、リリース日、レコードレーベル、アルバムバージョン、トラックなどを取り込む単一の投稿テンプレートを提供したいと思います。プラグイン開発者として、私はそれを提供することが重要だと感じます。テンプレートはすべてのテーマで機能するとは限りませんが、ユーザーのテーマとさらに統合できるデフォルトが必要です。 繰り返しますが、この状況に対処する最善の方法は何ですか?次のいずれかを実行できると思います。 ショートコード ショートコードは、非開発者がサイト内のどこにでもバンド、アルバム、トラック、バンドリストなどを追加できるようにする非常に柔軟でユーザーフレンドリーな方法として使用できます。特定のページにバンドを配置したり、バンドごとに個別のページを作成したりするのに役立ちます(あまり効率的ではありませんが、一部のユーザーはこの方法でアプローチします)。ショートコードはHTMLを生成します。HTMLは、目的のデータの見やすいデフォルトビューを提供する提供されたCSSファイルに関連付けられます。すべてがプラグインファイル内に含まれ、テーマで何もする必要はありません。 テンプレートファイル プラグインには、テンプレートファイルも同梱できます。テンプレートファイルをマークアップして、見やすいデフォルトビュー用にスタイル設定できます。投稿タイプが表示されたときにテーマが適切なテンプレートを見つけるように、ユーザーにファイルをテーマフォルダーに移動する指示を提供できます。ユーザーがシングルクリックでファイルを移動できるインターフェースを提供することさえできます(注:起動時にユーザーのテーマフォルダにファイルを作成することはありません。 。 また、フィルターを使用してこれらのファイルをプラグインフォルダーから移動せずに使用し、すべてを自己完結させたままにすることもできます。この目的で使用される「template_include」および「{$ type} _template」フィルターを見てきました。実際、themesフォルダーのテンプレートを使用できます。テンプレートが存在しない場合は、これらのフィルターを使用してデフォルトビューを提供できます。 質問 提示されたアイデアに何らかの問題がある場合、他の人がこれらの状況のベストプラクティスであると考えるもの、および私が含めていない代替案を知りたいです。 ありがとうございました!

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