শিরোনাম অনুসারে ক্যোরি_পোস্ট?


18

শিরোনামটি ব্যবহার করে কি ডাব্লুপিউকিউয়ারি বা ক্যোয়ারী_পোস্টগুলি ব্যবহার করে একটি লুপ তৈরি করা সম্ভব?

অর্থাত

$args = array('post_title'='LIKE '.$str.'% ');

$res = WP_Query($arg);

// the loop...


// trying this now...
$mypostids = $wpdb->get_col("select ID from $wpdb->posts where post_title like 'Abb%' ");

echo count($mypostids).", ";    // works but can't echo out array of IDs for the next args?

$args = array(
    'post__in'=> $mypostids
);

$res = WP_Query($args);

while( $res->have_posts() ) : $res->the_post(); ...

উত্তর:


31

থিমের functions.php

<?php
add_filter( 'posts_where', 'title_like_posts_where', 10, 2 );
function title_like_posts_where( $where, $wp_query ) {
    global $wpdb;
    if ( $post_title_like = $wp_query->get( 'post_title_like' ) ) {
        $where .= ' AND ' . $wpdb->posts . '.post_title LIKE \'%' . esc_sql( $wpdb->esc_like( $post_title_like ) ) . '%\'';
    }
    return $where;
}
?>

তারপর:

$args = array(
    'post_title_like' => $str
);
$res = new WP_Query($args);

দ্বিতীয় আর্গুমেন্ট (রেফারেন্সড $wp_query) বাদে দুর্দান্ত কাজ করে, যা ফিল্টার কলব্যাকের অংশ বলে মনে হয় না ( কোডেক্স.ওয়ার্ডপ্রেস.আর / প্লাগইন_এপিআই / ফিল্টার_প্রকাশ / স্থানগুলি দেখুন ) এবং ত্রুটি উত্পন্ন করবে।
মেরিসিডেড

1
প্রকৃতপক্ষে, কোডটি কমপক্ষে WP 4.1.1-তে সঠিক। এটি এমন কোডেক্স যা দ্বিতীয় যুক্তিটি বাদ দিচ্ছে, তাই আপনি add_filterউদাহরণ হিসাবে 2 টি যুক্তি ঘোষণা করলে এটি ঠিক কাজ করে। এই সমাধানটির আর একটি সুবিধা হ'ল এটি কাস্টম পোস্ট ধরণের জন্য কাজ করে।
ইয়িটওয়াইল

1
এটি উত্তর গ্রহণ করা উচিত কারণ এটি দেখায় যে এটি কীভাবে ওয়ার্ডপ্রেস অন্তর্নির্মিত ফাংশনগুলি ব্যবহার করে এবং কাস্টম এসকিউএল কোয়েরি ব্যবহার না করে।
সুদার

1
মনে হয়, %এখানে প্রথম মিস হয়েছে। ঠিক পরে LIKE \'। আমি এটি যুক্ত করেছি এবং এটি কাজ শুরু করেছে (
৪.২.৪

হ্যাঁ, প্রথমটি হারিয়ে %গেছে, খুব যুক্ত হয়েছে এবং কাজ করে :) (সম্ভবত উত্তরটি সম্পাদনা করা উচিত?)
টনি মিশেল কাবেট

3

এই পোস্টের সাহায্যে এই কাজটি শেষ পর্যন্ত পেয়েছে। চিয়ার্স ছেলেরা;

$finalArgs =  array (       
        'posts_per_page'=>5,
        'order' => 'ASC',
        'post_type' => 'school'                         
    );

    // Create a new instance
    $searchSchools = new WP_Query( $finalArgs );

    $mypostids = $wpdb->get_col("select ID from $wpdb->posts where post_title LIKE '".$str."%' ");

    $args = array(
        'post__in'=> $mypostids,
        'post_type'=>'school',
        'orderby'=>'title',
        'order'=>'asc'
    );

    $res = new WP_Query($args);

    while( $res->have_posts() ) : $res->the_post();

        global $post;

        $EstablishmentNumber = get_post_meta($post->ID,'EstablishmentNumber', true);

        $schl = array('id'=>$EstablishmentNumber, 'label'=>$post->post_title , 'value'=>$EstablishmentNumber );     
        $matchedSchools[] = $schl;


    endwhile;

3

অন্য লুপ থেকে শিরোনাম পান

$title = get_the_title();

এবং আপনি চাইলে $ শিরোনাম ভেরিয়েবলটি ব্যবহার করুন।

<?php

global $post, $current_post_id, $title;

function filter_where($where = ''){

    global $title;
    $where .= "AND post_title = '$title'";
    return $where;

}
add_filter('posts_where', 'filter_where');

$query = new WP_Query(array('post_type' => 'sessions') );
if ( have_posts() ) : while ( $query->have_posts() ) : $query->the_post();

    /* Loop here */

endwhile; endif; 

wp_reset_query(); ?>

এটি কাস্টম পোস্ট টাইপ এবং ওয়ার্ডপ্রেস 3.2.1
জাকির সাজিব

0

হ্যা এটা সম্ভব....

global $wpdb;

$mypostids = $wpdb->get_col("select ID from $wpdb->posts where post_title like '%$str%' ");

$args = array('post__in'=$mypostids);

$res = WP_Query($arg);

চিয়ার্স রাজীব - এটি চেষ্টা করেও এটি get_col এর পরে আটকে যায়। আমি উপরের
updated

0

এই উত্তরগুলি আমার কাছে ওয়ার্ডপ্রেস হ্যাক করার চেষ্টা বলে মনে হচ্ছে।

স্ট্যাক ওভারফ্লোতে একই প্রশ্নটি দেখুন:

/programming/25761593/wp-query-with-post-title-like-something-and-category

আপনি যদি শিরোনাম অনুসারে শিরোনাম অনুসারে অনুসন্ধান অনুসন্ধান করতে চান তবে এটি কাজ করে:

$the_query = new WP_Query( 
  array(
    'post_type' => 'watches',
    'posts_per_page' => 5,
    'orderby' => 'title',
    's' => 'my title'
  ) 
);

এই উদাহরণ কোয়েরিটি পোস্টের জন্য টাইপযুক্ত নামগুলির জন্য এবং 'গুলি' (অনুসন্ধান শব্দ) যেখানে আপনি কোয়েরিতে আপনার পোস্টের শিরোনাম সন্ধান করতে পারেন


1
এটি পাশাপাশি সামগ্রীটি অনুসন্ধান করবে
মার্ক কাপলুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.