একটি তারিখ এবং আজকের মধ্যে প্রকাশিত পোস্টগুলি কীভাবে পাবেন?


10

একটি তারিখ এবং আজকের মধ্যে প্রকাশিত পোস্টগুলি পাওয়ার উপায় কি query_posts()?

উদাহরণ: 2012-04-01 থেকে প্রকাশিত সমস্ত পোস্ট

ধন্যবাদ

সম্পাদনা:

এই ক্যোয়ারী পোস্টগুলিতে ফিল্টার তারিখটি কীভাবে যুক্ত করবেন?

query_posts( array(  
    array('post'),
    'tax_query' => array(
        array(
            'taxonomy' => 'post_format',
            'field' => 'slug',
            'terms' => array('post-format-image')
        )
    ),
    'cat' => '-173',
    'post_status' => 'publish'
) );


ক্যোয়ারী_পোস্টগুলি () ব্যবহার করবেন না। > - এই চেক করুন wordpress.stackexchange.com/a/1755/7890
moraleida

উত্তর:


23

আপডেট 23 ডিসেম্বর 2014

শ্রেণীর date_queryসম্পত্তি ব্যবহার করে আরও ভাল পদ্ধতি রয়েছে WP_Query:

$args = array(
    'post_type' => 'post', 
    'tax_query' => array(
        array( 
            'taxonomy'  => 'post_format',
            'field'     => 'slug',
            'terms'     => array( 'post-format-image' )
        )
    ),
    'cat'           => '-173',
    'post_status'   => 'publish',
    'date_query'    => array(
        'column'  => 'post_date',
        'after'   => '- 30 days'
    )
);
$query = new WP_Query( $args );

পুরানো উত্তর

WP_Query ()সময় পরামিতি ব্যবহার করুন

কোডেক্সের উদাহরণ উদ্ধৃত:

গত 30 দিন থেকে পোস্টগুলি রিটার্ন করুন:

// This takes your current query, that will have the filtering part added to.
$query_string = array(
    'post_type' => 'post', 
    'tax_query' => array(
        array(
            'taxonomy'  => 'post_format',
            'field'     => 'slug',
            'terms'     => array( 'post-format-image' )
        )
    ),
    'cat'           => '-173',
    'post_status'   => 'publish'
);

// Create a new filtering function that will add our where clause to the query
function filter_where( $where = '' ) {
    // posts in the last 30 days
    $where .= " AND post_date > '" . date( 'Y-m-d', strtotime( '-30 days' ) ) . "'";
    return $where;
}

add_filter( 'posts_where', 'filter_where' );
$query = new WP_Query( $query_string );
remove_filter( 'posts_where', 'filter_where' );

সম্পাদনা করুন (ওপির আপডেট হওয়া প্রশ্নের জবাবে)।

ক্যোয়ারী_পোস্টগুলি ব্যবহার করা এড়িয়ে চলুন । আপনার মূল ক্যোয়ারীটি পরিবর্তন করতে আপনি উপরের কৌশলটি ব্যবহার করতে পারেন (কিছু অতিরিক্ত শর্ত সাপেক্ষে - এটি হোম পৃষ্ঠা, 'ফুবার' নামে একটি পৃষ্ঠা ইত্যাদি):

function wpse52070_filter_where( $where = '' , $query ) {
   if( $query->is_main_query() && is_page( 'foobar' ) ){
      // posts in the last 30 days
      $where .= " AND post_date > '" . date( 'Y-m-d', strtotime( '-30 days' ) ) . "'";
   }

    return $where;
}
add_filter( 'posts_where', 'wpse52070_filter_where' );

ঠিক আছে ! সুতরাং ফিল্টার এখন হয় $query_string। তবে ক্যোরি_পোস্টগুলিতে এটি কীভাবে আমার আরগগুলি নিয়ে কাজ করে? (আমার সম্পাদনা @ মোরালেইডা দেখুন)
স্টেফি

1
@ স্টেফি - আপডেট উত্তর দেখুন। আমি আশা করি আপনি যোগটি আপত্তি করবেন না, মোরালিদা।
স্টিফেন হ্যারিস

1
সবেমাত্র আপনার বর্তমান ক্যোয়ারী যুক্ত করেছে, যাতে আপনি এখনই ক্যোয়ারী_পোস্টগুলি খনন করতে পারেন। :) এবং দ্রুত আপডেটের জন্য @ স্টেফেনহরিসকে ধন্যবাদ!
মোড়ালিদা

আপনাকে ধন্যবাদ @ মোরেলিদা! আশ্চর্য! শুধু একটা কথা. আপনি বলেছিলেন: "ক্যোয়ারী_পোস্টগুলি ব্যবহার করা এড়িয়ে চলুন" " তবে query_posts()টেমপ্লেট ফাইলগুলিতে (যেমন home.php ) ব্যবহার করা ভাল new WP_Query(), না?
স্টেফি

আসলে তা না. query_postsকেবলমাত্র প্রধান লুপটি পরিবর্তন করতে ব্যবহার করা উচিত - এবং প্রচুর লোক যুক্তি দেয় যে তখনও নয় (এর the pre_get_postsজন্যও ফিল্টার রয়েছে )। আমি প্রায়শই নিজেকে WP_Queryবা get_postsআমার সমস্ত প্রশ্নের জন্য নিজেকে একা হিসাবে ব্যবহার করতে দেখি এবং একাধিকবার ডাব্লু / ও অন্য কোনও বিষয়ে হস্তক্ষেপ করা যায়। পুঙ্খানুপুঙ্খ ব্যাখ্যার জন্য আপনার মন্তব্যে লিঙ্কিত উত্তরগুলি দেখুন। :)
মোড়ালিদা

3

৩.7 হিসাবে আপনি তারিখ_কিউরি ব্যবহার করতে পারেন http://codex.wordpress.org/Class_References/WP_Query# তারিখ_প্যারামিটার

সুতরাং পাস করা আরোগুলি দেখে মনে হবে:

$query_string = array(
      'post_type' => 'post', 
      'date_query' => array(
        'after' => '2012-04-01' 
      ),
      'tax_query' => array(
          array( 
             'taxonomy' => 'post_format',
             'field' => 'slug',
             'terms' => array('post-format-image')
          )
      ),
      'cat' => '-173',
      'post_status' => 'publish'
);

0

আপনি যদি দুটি তারিখের মধ্যে পোস্ট পেতে চান, তবে তারিখ_কিউরি প্যারামিটারে প্যারামিটারগুলির আগে এবং পরে ব্যবহার করুন,

$query_string = array(
  'post_type' => 'post', 
  'date_query' => array(
    'column' => 'post_date',
    'after' => '2012-04-01',
    'before' => '2012-04-30' 
  ),
  'tax_query' => array(
      array( 
         'taxonomy' => 'post_format',
         'field' => 'slug',
         'terms' => array('post-format-image')
      )
  ),
  'cat' => '-173',
  'post_status' => 'publish'
);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.