আইডির মাধ্যমে অংশটি পান


31

এটি কেন এমন যে শিরোনাম এবং অন্যান্য উপাদানগুলির সাথে আইডি দ্বারা কেউ অংশটি পেতে পারে না।

যেমন। get_the_excerpt (আইডি)। আমি কীভাবে এটি $ post-> post_excerpt ফাংশন দিয়ে ব্যবহার করতে জানি তবে এটি কোনও অংশে প্রবেশ না করে যদি বিষয়টির কিছু অংশ ফিরে আসে না তবে এটি সহজ কিছু দেয় না।

সুতরাং আমি যা করার চেষ্টা করছি তা হল যদি কোনও উদ্ধৃতাংশ থাকে তবে আইডি দ্বারা উদ্ধৃত অংশটি পাওয়া যায়, এবং যদি সেই আইডির সাথে একটি অংশ না পাওয়া যায় তবে কিছু বিষয়বস্তু থাকে, পরিবর্তে কিছু সামগ্রী পেতে।

কেউ কিভাবে এটি করবে।

কোন ধারনা,

দুর্দান্ত ...

সম্পাদনা -

অনুরোধ হিসাবে লুপ উত্স কোড।

<?php $stories = get_posts('category_name=feedback&numberposts=4'); 
            foreach ($stories as $post) :
            $title = $post->post_title;
            $excerpt = get_the_excerpt_id($post->ID);
            $thumb = get_the_post_thumbnail($post->ID,array(60, 60, true));?>
              <div class="textstandard_white" style="font-size:14px; line-height:22px; padding-top:10px;"><b><a href="<?php echo get_permalink($post->ID);?>"><?php echo $title;?></a></b></div><div align="left" style="height:18px; width:82px; background:url(http://www.divethegap.com/update/z-images/structure/icons/stars.png) left top no-repeat;"><div id="stars<?php echo $post->ID;?>" align="left" style="height:18px; background:url(http://www.divethegap.com/update/z-images/structure/icons/stars_glow.png) left top no-repeat;">
                  </div>
                  </div>

                  <script type="text/javascript">
                var width<?php echo $post->ID;?> = ((<?php
$Rating = get_post_meta($post->ID, "Rating", true);
echo $Rating;
?> * 20) + '%')
                  $('#stars<?php echo $post->ID;?>').css('width', width<?php echo $post->ID;?>);

                 </script><div class="textstandard_white" style="padding-top:6px; font-size:10px; color:#BBB; padding-bottom:10px; border-bottom:1px dotted #BBB; min-height:70px;"><div style="float:left; padding-right:6px; padding-bottom:6px;"><div style="background:#FFF; border:1px solid #FFF;
border-radius: 4px; -moz-border-radius: 4px ; -webkit-border-radius: 4px; padding:4px;"><a href="<?php echo get_permalink($post->ID);?>"><?php echo $thumb;?></a></div></div>



<?php echo $excerpt;?></div>
              <?php endforeach;?>

সামগ্রীর "কিছু" ঠিক কী?
কায়সার

ওয়ার্ডপ্রেসের সংক্ষিপ্তসার ফাংশন একটি পোস্টের উদ্ধৃতি প্রদান করে returns পোস্টটির কোনও উদ্ধৃতি না থাকলে এটি '...' বা 'আরও পড়ুন' বা টেমপ্লেট যা কিছু সরবরাহ করে তার পরে নির্দিষ্ট সামগ্রীর অক্ষরগুলির একটি নির্দিষ্ট সংখ্যক ফিরিয়ে দেয়
রবিন আই নাইট

1
পিআইটিএ হতে হবে না তবে সম্প্রদায়ের বিধিগুলি স্বাক্ষর এবং মানক বন্ধের অনুমতি দেয় না। সুতরাং নিয়মগুলি মেনে চলতে এবং জেফ আতউড আপনার সমস্ত প্রশ্ন সম্পাদনার পরে আপনাকে একটি কঠোর বার্তা প্রেরণ করা এড়াতে দয়া করে ক্লোজিং হিসাবে "দুর্দান্ত" ব্যবহার বন্ধ করুন। (এবং দয়া করে মেসেঞ্জারটিকে গুলি করবেন না)
মাইকচিনকেলে

উত্তর:


20

হাই @ রবিন আই নাইট:

আমি get_the_excerpt()উত্তরাধিকার নকশা সহ একটি ফাংশন হিসাবে দেখতে । ওয়ার্ডপ্রেস ব্যবহার বাড়ার সাথে সাথে অনেকগুলি নতুন ব্যবহারের ক্ষেত্রে এটি মাপসই হয় না তবে যেখানে বিভিন্ন ডেটা পাওয়ার জন্য নতুন ফাংশনগুলি করা হয়। একটি উদাহরণ হ'ল $argsফাংশন বিকল্পগুলির একটি অ্যারের এখন ঘন ঘন ব্যবহার ।

তবে এটি আপনার প্রয়োজনের জন্য ঠিক করা সহজ। এখানে আপনার বিকল্প ফাংশনটি ব্যবহার করতে পারেন যা আপনি আপনার থিমের functions.phpফাইলের যে কোনও জায়গায় রাখতে পারেন :

function robins_get_the_excerpt($post_id) {
  global $post;  
  $save_post = $post;
  $post = get_post($post_id);
  $output = get_the_excerpt();
  $post = $save_post;
  return $output;
}

আমি এটি পরীক্ষা করিনি তবে বেশ নিশ্চিত যে আমি এটি সঠিকভাবে পেয়েছি। এটি যদি আপনার চাহিদা মেটাতে না পারে তবে দয়া করে বিশদভাবে বর্ণনা করুন এবং সম্ভবত আমি অন্যান্য পরামর্শও দিতে পারি।


এটা কাজ করে। প্রকার, রকম. খুব বিজোড় ফলাফল। এটি অবশ্যই এর কার্য সম্পাদন করছে তবে ফলাফলগুলি বিজোড়। আমি এটি GET_Posts এর সাথে একযোগে ব্যবহার করছি এবং কোনও কারণে শীর্ষ 2 টি পোস্ট পেতে সর্বদা একই থাকে। এখানে একটি লিঙ্ক এবং আপনি কী বলতে চাইছেন তা আপনি দেখতে পাবেন। ডানদিকে 4 টি পোস্ট দেখুন। divethegap.com/update/commune/feedback/2010/06/steve-riches
রবিন আই নাইট

@ রবিন আই নাইট: দয়া করে আপনার লুপ সোর্স কোডটি আপনার প্রশ্নের আপডেট হিসাবে পোস্ট করুন; কোড না দেখে কোডটি ডিবাগ করা খুব কঠিন। এটি সম্ভবত একটি প্লাগইন যা সমস্যা তৈরি করছে; একবারে তাদের অক্ষম করার চেষ্টা করুন।
মাইকস্কিঙ্কেল

উপরের প্রশ্নে লুপ উত্স কোড ^^
রবিন আই নাইট

বিটিডাব্লু আমি ফাংশনটির নামটি get_the_excerpt_id ($ post_id)
রবিন আই নাইট

@ রবিন আই নাইট - আমি আপনার লুপটিতে কিছুই দেখতে পাচ্ছি না, তবে আপনি setup_postdata($post)@ লাস্ট এর পরামর্শ অনুসারে আপনার লুপের শুরুতে কল করার চেষ্টা করতে পারেন । যদি এটি কাজ না করে তবে এটি আপনার অক্ষম করতে হবে এমন একটি প্লাগইন হতে পারে; তুমি কি চেষ্টা করেছ? এবং আপনি সম্ভবত এটি কল করতে চান না get_the_excerpt_id()কারণ ভবিষ্যতে ওয়ার্ডপ্রেস সেই ফাংশনটি যুক্ত করতে পারে এবং আপনার সাইটটি ভেঙে দিতে পারে। এবং আপনি সম্ভবত foreach($stories as $story): global $post; $post = $story;পরিবর্তে ব্যবহার করে আপনার লুপে ফাংশন ছাড়াই করতে পারেন ।
মাইকচিন্কেল

16

অংশগুলির যান্ত্রিকগুলি অত্যন্ত বিভ্রান্তিকর। এটি আপনার প্রশ্নের সুনির্দিষ্ট উত্তর নয় তবে সাধারণভাবে যদি আপনাকে লুপের সাথে নির্দিষ্ট, টেমপ্লেট ট্যাগগুলি তৈরি করার দরকার হয় তবে আপনি যে অ্যারে দিয়ে ফিরে এসেছেন get_posts()সেগুলি দিয়ে আপনি লুপটি অনুকরণ করতে পারেন:

$stories = get_posts(); 

foreach ($stories as $post) {

    setup_postdata($post);

    // stuff
}
wp_reset_postdata();

wp_reset_query () সম্পর্কে কি; ?
সিডব্লিউডি

1
@cwd যদি কেবলমাত্র setup_postdata()বিশ্বব্যাপী ক্যোয়ারী ব্যবহার করা প্রভাবিত না হয় এবং কেবল পোস্ট ডেটা পুনরায় সেট করা প্রয়োজন।
রাস্ট

এই সমাধানটি পোস্টটিকে অন্য ভ্যারিয়ায় সংরক্ষণের চেয়ে আরও বেশি ক্লিনার এবং এটি বিশ্বব্যাপী পাওয়ার জন্য অন্য পোস্টের প্রয়োজনের চেয়ে বেশি। +1
ব্যারি কুইজ

ধন্যবাদ @ রর্স্ট যা আমাকে সাহায্য করেছিল। সেটআপ_পোস্টডেটা ($ পোস্ট) যুক্ত করা হচ্ছে; আমার সমস্যাগুলি সমাধান করুন
সাইমন

8

৩.৩.০ থেকে একটি নতুন ফাংশন রয়েছে: wp_trim_words

আমি এটি লুপের বাইরে ব্যবহার করছি:

 <?php if ( $post_id ) {
 $post = get_post( $post_id );
 if ( $post ) { ?>
     <h2><?php echo $post->post_title; ?></h2>
     <p><em><?php echo wp_trim_words( $post->post_content ); ?></em></p>
     <p><strong>This article can only be read by subscribers.</strong></p>
 <?php } } ?>

এটি wp_trim_excerpt এর সাথে বিভ্রান্ত হওয়ার দরকার নেই যা দৃশ্যত কেবল লুপের মধ্যে কাজ করে, যেহেতু এটি অভ্যন্তরীণভাবে _ কনটেন্টকে () বলে calls


6

কেবল মাইকচিনকেলের জবাব যুক্ত করতে, যা কোনও কারণে আমার পক্ষে কার্যকর হয় না। এটি কাজ করতে আমাকে সেটআপ_পোস্টটাটা লাইন যুক্ত করতে হয়েছিল।

function get_the_excerpt( $post_id ){

  global $post;  
  $save_post = $post;
  $post = get_post($post_id);
  setup_postdata( $post ); // hello
  $output = get_the_excerpt();
  $post = $save_post;
  return $output;

}

আমি ধরে নিচ্ছি আপনি যদি এটি লুপের বাইরে ব্যবহার করছেন তবে এটির অন্যান্য সেটআপ_পোস্টডেটাতে হস্তক্ষেপ করা উচিত নয়।

চিয়ার্স


আমি মাইকচিনকেলের উত্তর চেষ্টা করেছি এবং এটি আমার পক্ষে কার্যকর হয়নি। পোস্ট ডেটা সেট আপ করণীয়। আমার ক্ষেত্রে 'সেটআপ_পোস্টডেটা' ছাড়াই ফাংশনটি প্যারেন্ট পোস্টের + শিরোনামটি ফিরিয়ে দিয়েছে।
টার্জিফার

2

@ ম্যাক্সিমের উত্তরে বিল্ডিং, এটি কি কাজ করবে?

$post = get_post( $id );

$excerpt = ( $post->post_excerpt ) ? $post->post_excerpt : $post->post_content;

এটি আমার কাছে সরাসরি এগিয়ে যথেষ্ট বলে মনে হচ্ছে তবে আমি কিছু ভাবছি কিনা তা ভাবছি।


1

যদি আপনার সমস্ত পোস্টে <!--more-->ট্যাগ থাকে তবে আপনি উপরের কোড সহ নিম্নলিখিতটি ব্যবহার করতে পারেন:

$sjc_excerpt = explode( '<!--more-->', $post->post_content); 
echo wpautop( $sjc_excerpt[0] );

অবশ্যই আপনার যদি এমন কোনও পোস্ট থাকে যার <!--more-->ট্যাগ নেই তবে সেগুলি সম্পূর্ণরূপে প্রদর্শিত হবে। আমার পরিস্থিতিতে কাজ করে তবে সবার জন্য নয় ...


1

আমি get_the_excerpt()উত্তরাধিকার নকশা সহ একটি ফাংশন হিসাবে দেখতে । ওয়ার্ডপ্রেস ব্যবহার বাড়ার সাথে সাথে অনেকগুলি নতুন ব্যবহারের ক্ষেত্রে এটি মাপসই হয় না তবে যেখানে বিভিন্ন ডেটা পাওয়ার জন্য নতুন ফাংশনগুলি করা হয়। একটি উদাহরণ হ'ল $argsফাংশন বিকল্পগুলির একটি অ্যারের এখন ঘন ঘন ব্যবহার ।

তবে এটি আপনার প্রয়োজনের জন্য ঠিক করা সহজ। এখানে আপনার বিকল্প ফাংশনটি ব্যবহার করতে পারেন যা আপনি আপনার থিমের functions.phpফাইলের যে কোনও জায়গায় রাখতে পারেন :

function robins_get_the_excerpt($post_id) {
   global $post;  
   $save_post = $post;
   $post = get_post($post_id);
   $output = get_the_excerpt();
   $post = $save_post;
   return $output;
}

কেবল মাইকচিনকেলের জবাব যুক্ত করতে, যা কোনও কারণে আমার পক্ষে কার্যকর হয় না। এটি কাজ করতে আমাকে সেটআপ_পোস্টটাটা লাইন যুক্ত করতে হয়েছিল।


এই কি wp_reset_post_data()লুপ ভিতরে কাজ করা প্রয়োজন ?
ক্রিস পিঙ্ক

স্পষ্টতই (এই বিশেষ বাড়িটি ঘুরে দেখার পরে) এটি এখন মূল অংশ।
ক্রিস পিঙ্ক

0

এটি সামান্য দ্বি-লাইনার আমি wp_trim_words ব্যবহার করে প্রচুর ব্যবহার করি । আমি ক্রমাগত নিজেকে সংক্ষিপ্ততার প্রয়োজন খুঁজে পাই এবং লুপের বাইরে আরও কার্যকারিতা পড়ি। অন্য কারও কাছে এটি দরকারী মনে হতে পারে। সুতরাং এটি আমি যা ব্যবহার করি:

  1. পোষ্ট আইডির মাধ্যমে অংশটি পান
  2. কোনও সামগ্রী সেট না করা থাকলে পোস্ট সামগ্রী পান,
  3. অংশের শব্দের দৈর্ঘ্য নির্ধারণ করুন
  4. আরও পড়ার জন্য লিঙ্কটি চয়ন করুন (লিঙ্ক / পাঠ্য)

আমি সম্পাদনা করছি এমন কাস্টম টেম্পলেটে আমি এই ইনলাইনটি রেখেছি।

    //Get Post Object
    $dapost = get_post(POST_ID);              
    //Get the Execerpt
    $my_excerpt = wp_trim_words( apply_filters( "the_excerpt", get_the_excerpt($dapost) ? get_the_excerpt($dapost) : $dapost->post_content  ), "20", "<a href='$dapost->guid'> ".__('Get More Stuff', 'translation')."</a>" );

ব্রেক ডাউন

1.অংশগ্রন্থ সামগ্রী

পোস্ট আইডির মাধ্যমে অংশটি পান তবে, কোনও উদ্ধৃতি সেট না করা থাকলে পোস্ট সামগ্রী পান।

আমি যদি / অন্য পিএইচপি শর্টহ্যান্ড ব্যবহার করছি

    $dapost = get_post(POST_ID);    
    apply_filters( "the_excerpt", get_the_excerpt($dapost) ? get_the_excerpt($dapost) : $dapost->post_content

2. শব্দ দৈর্ঘ্য

সংখ্যার শব্দের পরিমাণ 20 এ সেট করুন

    "20"

৩. রিডমোর সামগ্রী (লিঙ্ক / পাঠ্য) চয়ন করুন

   "<a href='$dapost->guid'> ".__('Get More Stuff', 'translation')."</a>"

আমি $dapost->guidইউআরএলটি পেয়েছিলাম, কারণ আমার বন্ধুত্বপূর্ণ ইউআরএলগুলির প্রয়োজন ছিল না, এবং ডিবিতে আর একটি কল এড়াতে চেয়েছিলাম। আপনি সর্বদা get_the_permalink ব্যবহার করতে পারেন।

ওয়ার্ডপ্রেস ডকুমেন্টেশনে wp_trim_words দেখুন ।




-2

এটি দ্রুত:

global $post;
return get_post($post_id)->post_excerpt;

1
অংশটি খালি থাকার সময় নয় ... প্রশ্নে উল্লিখিত হিসাবে।
ফুসিয়া

প্রকৃতপক্ষে যখন কোনও বাদে স্বয়ংক্রিয়ভাবে উত্পন্ন হয়
জোশক

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