বর্তমান পোস্টের পিতামাত্রী বিভাগের স্লাগ কীভাবে পাবেন


12

আমার থিমের নিম্নলিখিত কোডগুলি ব্যবহার করে বিভাগ অনুসারে স্টাইলিং রয়েছে যা বর্তমান বিভাগের স্লাগকে সিএসএস শ্রেণি হিসাবে সন্নিবেশ করায়।

<div class="CategorySpecificStyle 
    <?php $category = get_the_category(); echo $category[0]->slug; ?>">
        <?php echo $category[0]->cat_name; ?>
</div> 

এখন আমি প্রচুর সংখ্যক নতুন উপ-বিভাগ যুক্ত করতে চলেছি, এবং সিএসএসে এগুলি যুক্ত করা বোকামি মনে হয় যখন আমার কেবলমাত্র বর্তমান পোস্টের পিতামাত্রী বিভাগটি নির্বাচন করতে এবং এতে স্টাইল প্রয়োগ করতে সক্ষম হওয়া উচিত।

আমি মূল বিভাগের নাম পেতে সক্ষম হয়েছি:

$parentcat = get_cat_name($category[0]->category_parent);

তবে স্পেস (এবং মূলধন) একটি সমস্যা ... এবং আমি পিতামাতার বিভাগের স্লাগ পেতে পারি না।

আমি জানি আমি সম্ভবত কোথাও একটি সাধারণ পদক্ষেপ মিস করছি তবে কোনও অন্তর্দৃষ্টি প্রশংসিত হবে।

উত্তর:


18

আপনাকে ফিরে দেওয়া ID মানটি ব্যবহার করতে হবে $category[0]->category_parentএবং এটি দিয়ে যেতে হবে get_term()। উদাহরণ:

$category = get_the_category(); 
$category_parent_id = $category[0]->category_parent;
if ( $category_parent_id != 0 ) {
    $category_parent = get_term( $category_parent_id, 'category' );
    $css_slug = $category_parent->slug;
} else {
    $css_slug = $category[0]->slug;
}

5

মূল বিভাগের ডেটাগুলির জন্য আপনাকে জিজ্ঞাসা করতে হবে। get_categoryএটি করার জন্য বেশ নির্মিত।

$category = get_the_category(); 
$parent = get_category($category[0]->category_parent);
echo $parent->slug;

এটি বিভাগের তাত্ক্ষণিক পিতামাতাকে ফিরিয়ে দেবে। এই বিভাগে এই সেট দেওয়া হয়:

  • কার্টুন
    • কুকুর
      • Scooby ডাক

উপরের কোডটি "কুকুর" ফিরিয়ে দেবে যদি আপনি "স্কুবি" এর আইডি দেন। আপনি যদি শীর্ষস্থানীয় পিতৃ বিভাগটি চান - "কার্টুন" - নীড় যত গভীর হয় তা এই জাতীয় কিছু ব্যবহার করুন:

$category = get_the_category(); 
$parent = get_ancestors($category[0]->term_id,'category');
if (empty($parent)) {
  $parent[] = array($category[0]->term_id);
}
$parent = array_pop($parent);
$parent = get_category($parent); 
if (!is_wp_error($parent)) {
  var_dump($parent);
} else {
  echo $parent->get_error_message();
}

এতে অপেক্ষাকৃত ঝরঝরে ত্রুটি পরিচালনার সুবিধাও রয়েছে।


উত্তরের জন্য ধন্যবাদ, এবং আমি সম্ভবত ভবিষ্যতে একটি অনুরূপ স্নিপেট ব্যবহার করব, তবে পোস্টটি উপশ্রেণীশৃঙ্খলা ব্যতীত পিতামহীন বিভাগ / বিভাগে পোস্ট করলে এটি ত্রুটিও ছুঁড়ে দেয়।
ডিএলআর

@ ডিএলআর: হ্যাঁ, আমি জানি। উত্তরটি শেষ করার আগে আমাকে চলে যেতে হয়েছিল। আমি আরও জটিল এবং আরও শক্তিশালী কিছু নিয়ে কাজ করছিলাম। সম্পাদনা দেখুন।
s_ha_dum

0

আমি @s_ha_dum এর পূর্ববর্তী উত্তরটি পছন্দ করি, তবে গভীরতা নির্বিশেষে শীর্ষ-স্তরের বিভাগ পাওয়ার জন্য, আমি যেটাকে সহজ সমাধান হিসাবে বিবেচনা করি তা ব্যবহার করেছি:

$cats = get_the_category();
foreach ( $cats as $cat ) {
    if ( $cat->category_parent == 0 ) {
        return $cat->name; // ...or whatever other attribute/processing you want
    }
}
return ''; // This was from a shortcode; adjust the return value to taste

0

যদি আপনি কাউকে ... বাচ্চাদের বিড়াল বা পিতামাতার পেতে সাহায্য করতে পারেন তবে তার উপর নির্ভর করে আপনি 0বা 1আপনার উপর চাপিয়েছেন$category

$category = get_the_category();
$parent = get_cat_name( $category[0]->category_parent );
if( ! function_exists('get_cat_slug') )
{
    function get_cat_slug($cat_id) {
        $cat_id = (int) $cat_id;
        $category = &get_category($cat_id);
        return $category->slug;
    }
}
if ( !empty($parent) ) {
    $output .= '<H2>' . esc_html( $category[1]->name ) . '</H2>';                               
} else {
    $output .= '<H2>' . esc_html( $category[0]->name ) . '</H2';
}

0

আপনি এটি এর মতো সরল করতে পারেন:

  $category   = get_the_category();
  $cat_parent = $category[0]->category_parent;
  $category   = $cat_parent != 0 ? get_term($cat_parent, 'category')->slug : $category[0]->slug;

0

নীচের ফাংশনটি মূল বিভাগে ফিরে আসার জন্য অভিযোজিত :

function get_root_category($category = null) {
  if (!$category) $category = get_the_category()[0];
  $ancestors = get_ancestors($category->term_id, 'category');
  if (empty($ancestors)) return $category;
  $root = get_category(array_pop($ancestors)); 
  return $root;
}

ব্যবহার: get_root_category()->slug

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