WordPress

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

4
まだ設定されていないキーのmeta_query
ギャラリーシステムのカスタム投稿タイプを照会しようとしています。ギャラリーを「注目の」ギャラリーとして設定するためのチェックボックスがあります(More Fieldsプラグインを介して設定)。これをオンにすると、メタ値が1になり、オフにすると0になります。すべて良好です。ただし、ボックスがチェックされていない場合、メタキーは作成されません。つまり、NOT LIKE 1が存在しないため、クエリを実行できません。 必要なクエリは、このメタ値で「1」とマークされていない4つのギャラリーだけでなく、この値がまったくないギャラリーも取得することです。新しく追加された投稿にこのメタキーのデフォルト値を常に与える方法はありますか(ボックスがチェックされていない場合は常にデフォルトで0にする)、またはまだ設定されていないキーを照会する方法はありますか? 私の現在のクエリは: $args = array( 'post_type' => 'gallery', 'showposts' => 4, 'meta_key' => 'gal-ID', 'order_by' => 'meta_value', 'order' => 'ASC', 'meta_query' => array( array( 'key' => 'main-gal', 'value' => false, ) ), ) ); そして、私は 'compare' => 'NOT LIKE'、 '!='などを使ってさまざまな試みを試しました。 何か案は?このチケットは、それが整理されるべきものであることを示唆しているようです: http://core.trac.wordpress.org/ticket/18158 ありがとう!

3
カスタムメニューページにadd_settings_errorを実装するにはどうすればよいですか?
プロフェッショナルWordPressのプラグイン開発の本は、正しく設定APIを使用する方法を詳細に説明し、それはまた、メニューとサブメニューを追加する方法を示していますが、残念ながらそれは、この任意の加入アップの例を提供していません。私はほとんどそれを機能させることができましたが、カスタムメニューページにadd_settings_errorを適切に実装する方法を理解できません。これが私のコードです: function settings_main_validate( $input ) { $valid['text_string'] = preg_replace( '/[^a-zA-Z]/', '', $input['text_string'] ); if ( $valid['text_string'] != $input['text_string'] ) { //add_setting_error: $title, $id, $error_message, $class add_settings_error( 'fields_main_input', 'texterror', 'Incorrect value entered!', 'error' ); } return $valid; } 上記の検証はadd_options_page、を使用してレンダリングされた設定でうまく機能しますが、でレンダリングされたページに設定エラーを表示しませんadd_menu_page。

1
meta_queryを使用してquery_postsでmeta_keyをorderbyし、日付で2次ソートする方法は?
私は過去数日間にわたって問題のトラブルシューティングを行っており、サークルに行き続けています。この質問に答えるために、新鮮な目を実際に使うことができました... そのため、実行する必要のあるクエリに関連するいくつかのカスタムフィールド "post-expired"と "my-sort-order"が含まれているワードプレスサイトを使用しています。query_postsを実行すると、結果が "post-expired"が "yes"ではないpostになるようにします(この部分は私のコードで機能します)。「my-sort-order」のDESC番号の値で結果を並べ替えることもできます(同様に機能します)。また、「my-sort-order」にタイがある場合、最新の投稿で日付で2番目の並べ替えが必要です。最初。 日付による2番目の並べ替えは、問題が発生している場所です。 ここに私が今持っているコードがあります: <?php $args = array( 'paged' => $paged, 'meta_query'=> array( array( 'key'=>'post-expired', 'value'=> 'yes', 'compare' => '!=' ) ), 'meta_key'=>'my-sort-order', 'orderby'=>'meta_value_num', 'order'=>'DESC' ); $args = array_merge( $args , $wp_query->query ); query_posts( $args ); ?> 上記のコードを使用して、期限が切れていない投稿を正しく取得し、my-sort-orderの降順で並べ替えます(つまり、100は99の前に表示されるなど)。しかし、両方の投稿に同じ並べ替え順序の値がある場合、制御できないように見える(そして実際に何に並べ替えられているのかわからない)ある種類の二次並べ替えが発生します。 これを解決するための最初のアイデアは、その投稿に特定のソート順を設定したい場合にのみ、「my-sort-order」に値を追加することでした。残りの投稿でこのフィールドの値が空白のままになっていると、DESC日付によるデフォルトの並べ替えで返されます(並べ替え順序が設定された投稿の後)。ただし、実際に起こったのは、ソート順の値が設定されていない投稿がまったく返されなかったということです... 次に、次のように複数の値をorderbyフィールドに追加してみました。 ('orderby'=>'meta_value_num date') それは私がしようとしていた両方の並べ替え順序を完全に破壊し、予期しない方法で投稿を返しました。複数のorderby値が許可されているように見えましたが、何らかの理由でここでは機能しません。 現時点では、これらの潜在的なソリューションのいずれかを機能させる方法がわかりません。誰でも私がどのようにできるか知っていますか1)最初に「my-sort-order」フィールドで投稿を並べ替え、次にそのフィールドに値のない残りの投稿をデフォルトの日付の並べ替えで返します。または2)「my-sort-order」に関連のある投稿が日付順(最新が最初)にソートされるように、2次orderbyソートを制御する方法を理解しますか?

2
wp-super-cacheまたはw3-total-cacheでの「有効期限」が長い場合の長所と短所?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新することがありますので、上のトピックワードプレスの開発スタックExchange用。 5年前休業。 wp-super-cacheページに、私には理解できない次の文があります。 期限切れのファイルをチェックして削除することはコストがかかりますが、それらをそこに残しておくのもコストがかかります。非常に忙しいサイトでは、有効期限を300秒に設定する必要があります。 短い有効期限を使用しているとしましょう。これは、キャッシュを300秒ごとに何度も再構築する必要があるという意味ではありませんか? つまり、ほとんどのコンテンツ(ホームページを除く)は変更されません。それでは、ほとんどの投稿が何日間も同じままであるのであれば、なぜ問題があるのでしょうか?

5
すべての投稿/ページのコメントを無効にする
すべての投稿とページのすべてのコメントを無効にする簡単な方法はありますか?投稿の下のダッシュボードに移動し、[編集]をクリックして、コメントの下の[許可しない]を選択できることを知っています。それが唯一の方法ですか?
8 comments 


2
$ post / $ postsを確実に取得するための最も早いフック
$post/$postsフロントエンドとバックエンドの両方でグローバル変数にアクセスできる場所にフックできる最も早い可能なアクションは何ですか?私はコーデックスのリファレンス、アダム・ブラウンのリファレンスを調べて、ソースを何回か読み飛ばしてみましたが、良いものを見つけるのにあまり運がありませんでした。 pre_get_posts早すぎます。posts_selectionコールバック中に2回目のget_posts()呼び出しを行う場合、を使用しても機能しません。そしてtemplate_redirect管理者側では動作しません。フロントエンドthe_postよりも早い場合template_redirectがありますが、バックエンドでは実行されません。理想的にget_post()/get_posts()は、返品の直前に実行されるものが欲しいのですが、そのようなものは見ていません。 the_posts過去にこのフィルタを使用したことがありますが、より技術的に正しいので、アクションを使用します。 現在、私は2回フックしているだけです。一度template_redirectフロントエンドに使用admin_xml_nsし、再びバックエンドに使用します。ただし、私のロジックはこれらのフックのいずれにも意味的に関連していないため、私はあまり好きではありません。これは非常に一般的な必要性であり、機能する「post_get_posts」(ala pre_get_posts)のようなフックがあるはずです。両側に。

3
カスタム投稿タイプのページネーション404修正?
これを一日中動作させるように努めてきましたが、運がありませんでした... 「news」というカスタム投稿タイプとアーカイブテンプレート(archive-news.php)があります。ここでは、「次のページ」( / news / page / 2)エラー404を返します。 これを修正する方法/私が間違っていることはありますか? 私は文字通り、GoogleとWordPressのフォームを検索してこれに対する解決策を見つけるために一日中費やしてきましたが、多くの解決策が見つかりましたが、どれも今のところ機能していません。 私のカスタム投稿タイプ関数:http : //pastebin.com/uG1L6YNu 私の書き換えルール印刷:http : //pastebin.com/jbaDANYr

2
検索候補があり、新しい用語が入力されていない分類メタボックスを作成するにはどうすればよいですか?
「タグ」の種類(検索フィールドと自動提案を含む)に似ているが、新しい用語を追加する権限がない分類編集メタボックスをポスト編集ページに設定する方法を知りたいと思っていました。 たとえば、単語を打ち込んだ場合、既存の用語リストから使用できる用語の候補が表示されますが、存在しない単語を入力した場合、用語はリストに追加されません。 編集 実際、私が探しているのは、メニューエディタの「検索」機能の動作です。 これはコアWPの動作なので、編集後のページでも使用できますか?これらのブロックはまったく同じように見え、どちらにも「すべて表示」タブと「最新」タブがありますが、「検索」はメニューエディターにしか存在しないので、不思議に思っています。

1
「_encloseme」メタキーの難問
メタボックス/カスタムフィールドを操作しているときに、これらの多くを間接的に作成_encloseme meta_keysしているようwp_postmetaです。 ここに見られる: これまでのところこれで問題は発生しておらず、カスタムフィールドは正常に機能していますが、私はローカルテストサイトに2つほどの投稿しかしなかったので、後で問題が発生する場合はライブサイトに実装したくありません。道を行く。誰もがこれらについて何をすべきか知っています、彼らは正常ですか? これが私のメタボックスのコードです。 <?php //Add meta boxes to post types function plib_add_box() { global $meta_box; foreach($meta_box as $post_type => $value) { add_meta_box($value['id'], $value['title'], 'plib_format_box', $post_type, $value['context'], $value['priority']); } } //Formatting function plib_format_box() { global $meta_box, $post; // verification echo '<input type="hidden" name="plib_meta_box_nonce" value="', wp_create_nonce(basename(__FILE__)), '" />'; echo '<table …

1
フィルターフックnav_menu_css_classを使用してwp_nav_menuにカスタムクラスを追加する
ワードプレスのテーマにカスタム投稿タイプがあります。そのカスタム投稿タイプで作成されたページのナビゲーションメニューにカスタムクラスを追加したいと思います。フィルターフック "nav_menu_css_class"を使用できると読みましたが、私のphpチョップはかなり制限されています。ナビゲーションメニューのカスタム投稿タイプページにのみ適用するようにそのフィルターフックを設定し、カスタムクラスを与えるにはどうすればよいですか?
8 menus 

4
rel属性を変更するためのadd_filterを使用したLESS CSS enqueue_style
私がやろうとしていることは、WordPressで使用するcssを少なくすることです。 rel属性が 'stylesheet / less'に設定された.lessファイルにリンクすることになっています。しかし、enqueue_styleの出力を行うコードを変更する方法がわかりません。 フィルターを適用して出力に影響を与える方法はありますか? 編集:私がこれをどのように機能させるかについて興味がある人は、ここにコードスニペットがあります: function enqueue_less_styles($tag, $handle) { global $wp_styles; $match_pattern = '/\.less$/U'; if ( preg_match( $match_pattern, $wp_styles->registered[$handle]->src ) ) { $handle = $wp_styles->registered[$handle]->handle; $media = $wp_styles->registered[$handle]->args; $href = $wp_styles->registered[$handle]->src . '?ver=' . $wp_styles->registered[$handle]->ver; $rel = isset($wp_styles->registered[$handle]->extra['alt']) && $wp_styles->registered[$handle]->extra['alt'] ? 'alternate stylesheet' : 'stylesheet'; $title = isset($wp_styles->registered[$handle]->extra['title']) …

2
get_template_partが常に子テーマを最初にチェックするようにするにはどうすればよいですか?
どうすれば、WPが実行時に常に子テーマフォルダーを最初にチェックするように強制できますget_template_partか? 例:子テーマはに読み込まget_template_part('content', 'inventory')れsingle.phpます。すべての子テーマ(および多くのテーマ)は同じ共通在庫テンプレートベースを共有するため、ファイルcontent-inventory.phpは親テーマにあります。ここまでは順調ですね。 上記のインベントリテンプレートに、各子テーマに固有の小さなセクションを追加したいと思います。に追加get_template_part('content', 'inventory-special')してcontent-inventory.phpも、最初に子テーマディレクトリはチェックされません。


3
メタデータの日付で(サイト全体の)投稿を注文する
私のカスタム「ホーム」ページは、functions.phpの次の(カスタム名に更新された)コードを使用して、カスタム日付フィールドを介してカスタム投稿をソートするように設定されています。 // sort order for home page add_action('wp', 'wwgo_check_page'); function wwgo_check_page () { if (is_page()) { add_filter('get_previous_post_sort', 'sort_it'); add_filter('get_next_post_sort', 'sort_it'); add_filter('posts_orderby', 'sort_it' ); add_filter('posts_join', 'join_it' ); add_filter('posts_where', 'where_it' ); function sort_it () { global $wpdb; return " $wpdb->postmeta.meta_value ASC "; } function join_it( $join ) { global $wpdb; $join .= …

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