質問

あかかわらず、全てのクエリーのための他の投稿はタグ付きず期から、特定の分類基準?

この技術:

$custom_taxonomy_query = new WP_Query( 
 array(
  'taxonomy_name' => 'term_slug',
 )
);

いつづけたいと思っていますかパスワイルドカードのterm_slug、そしておそらくちょうど、空の文字列が返されます。そのうえ投稿タグ付きず期に分類だけでなく、特定の期間。

コ皆さまのご協力のもと、 Dave

役に立ちましたか?

解決

振り返ってみると、MikesChinkelとT31OSの提案のマッシュアップを行いました。それをその場で既存のクエリに注入することは可能ですが、WordPress 3.1が必要です。

分類からの用語を含む投稿のRSSフィードを取得するプラグイン。

他のヒント

私は同様の状況のデイブに遭遇しました。このコードは私の目的のためにトリックをしました。それは世界で最も無駄のない選択肢ではありませんが、それはうまく仕事をします:

// Get all term ID's in a given taxonomy
$taxonomy = 'taxonomy_name';
$taxonomy_terms = get_terms( $taxonomy, array(
    'hide_empty' => 0,
    'fields' => 'ids'
) );

// Use the new tax_query WP_Query argument (as of 3.1)
$taxonomy_query = new WP_Query( array(
    'tax_query' => array(
        array(
            'taxonomy' => $taxonomy,
            'field' => 'id',
            'terms' => $taxonomy_terms,
        ),
    ),
) );

うまくいけば、これがあなたや他の誰かが問題を経験しているのに役立つことを願っています。

ケビン

このようなことはうまくいくかもしれません:

$args = array(
    'post_type' => 'post',
    'tax_query' => array(
        array(
            'taxonomy' => 'your_custom_taxonomy',
            'operator' => 'EXISTS'
        ),
    ),
);
$query = new WP_Query( $args );

基本的に、your_custom_taxonomy内の用語に割り当てられた投稿を求めています。

こんにちは @デイブ-モリス:

しかし、WordPressを決定しなければい期れんを無視する為分類.

があり 3本組 きみ:

  1. 利用の完全なSQLクエリー$wpdb->get_results(),

  2. の一覧を取得し $post->IDs すべての投稿に分類基準をパスしている 'post__id' 引数に

  3. 注釈を付けるSQLを使用する WP_Query のフックをしましょうを追加したり、SQL INNER JOIN 参照の分類基準です。

私はしないようにして完全なSQLはやりのWordPressでいるかどうかわからないでください戻しリストのIdを持っています。この場合いを避け引きの一覧 $post-IDs用 'post__id' 引数で走りきることができ換性の問題もメモリーの問題だったんです。 うにいってしまった#3.

私のクラスを拡張 WP_Query という PostsByTaxonomy を使用する 'posts_join'フック。ことができま

class PostsByTaxonomy extends WP_Query {
  var $posts_by_taxonomy;
  var $taxonomy;
  function __construct($args=array()) {
    add_filter('posts_join',array(&$this,'posts_join'),10,2);
    $this->posts_by_taxonomy = true;
    $this->taxonomy = $args['taxonomy'];
    unset($args['taxonomy']);
    parent::query($args);
  }
  function posts_join($join,$query) {
    if (isset($query->posts_by_taxonomy)) {
      global $wpdb;
      $join .=<<<SQL
INNER JOIN {$wpdb->term_relationships} ON {$wpdb->term_relationships}.object_id={$wpdb->posts}.ID
INNER JOIN {$wpdb->term_taxonomy} ON {$wpdb->term_taxonomy}.term_taxonomy_id={$wpdb->term_relationships}.term_taxonomy_id
  AND {$wpdb->term_taxonomy}.taxonomy='{$this->taxonomy}'
SQL;
    }
    return $join;
  }
}

呼び出すとよいでしょうこのクラスとしてば下記を参照してください。 この引数 'taxonomy' が必要 ものを渡すことができず (?) その他のパラメータ WP_Query 期待など 'posts_per_page':

$query = new PostsByTaxonomy(array(
  'taxonomy' => 'category',
  'posts_per_page' => 25,
));
foreach($query->posts as $post) {
  echo " {$post->post_title}\n";
}

でコピーすることができ PostsByTaxonomy クラスへのプレゼンテーションの functions.php ファイル、または使用できる内 .php ファイルのプラグインできます。

したい場合は試験られなかったのでうれしいですん セバーコード る要旨をダウンロードでき、コピーをwebサーバのルートとして test.php, 変更のご利用の場合、その請求からブラウザを使用URLのように http://example.com/test.php.

更新

省略粘投稿 からの投稿に含まれるクエリー、おしてみてください:

$query = new PostsByTaxonomy(array(
  'taxonomy' => 'category',
  'posts_per_page' => 25,
  'caller_get_posts' => true,
));

やればできること PostsByTaxonomy クラスさせていただくことがあります。粘投稿してしまう前にコンストラクタ:

  function __construct($args=array()) {
    add_filter('posts_join',array(&$this,'posts_join'),10,2);
    $this->posts_by_taxonomy = true;
    $this->taxonomy = $args['taxonomy'];
    $args['caller_get_posts'] = true     // No Sticky Posts
    unset($args['taxonomy']);
    parent::query($args);
  }

更新2

郵送後に、上記ん'caller_get_posts"が推奨されて 'ignore_sticky_posts' 用いるWordPress3.1.

分類法を設定し、用語を含めるように否定できるはずです。

例えば。

<?php
$your_query = new WP_query;
$your_query->query( array( 'taxonomy' => 'your-taxonomy-name' ) );
?>

これは、分類学アーカイブが実行するクエリとほぼ同じです。

ライセンス: CC-BY-SA帰属
所属していません wordpress.stackexchange
scroll top