কীভাবে_আরচিভ_টাইটেল () কাস্টমাইজ করবেন?


40

আমার শিশু থিমের ক্ষেত্রে archive.php, আমার সংরক্ষণাগার পৃষ্ঠাগুলির শিরোনামটি প্রদর্শনের জন্য আমার কাছে নিম্নলিখিত কোড রয়েছে:

    <?php
        the_archive_title( '<h1 class="page-title">', '</h1>' );
    ?>

তবে এটি আমার শিরোনামগুলি "শ্রেণীবদ্ধ: বিভাগের শিরোনাম " হিসাবে প্রিপেন্ড করা "বিভাগ:" ছাড়াই কেবল শিরোনামের পরিবর্তে প্রদর্শন করে।

আমার প্রথম প্রবৃত্তিটি ওভাররাইড get_the_archive_title()করা ছিল wp-includes/general-template। তবে আমি যা পড়েছি তা থেকে স্পষ্টতই আমি কোনও শিশু থিম থেকে ওভাররাইড দিয়েও ওয়ার্ডপ্রেস কোর স্টাফগুলিকে কখনও বদলানোর কথা বলছি না।

তাহলে এর আউটপুট নিয়ন্ত্রণের সর্বোত্তম অনুশীলনের উপায় the_archive_title()কী?


পৃথক উত্তর হিসাবে আপনার সমাধান পোস্ট করুন। আপনি আমারও গ্রহণ না করেও নিজের
পছন্দটি

ওহো, আমি ভেবেছিলাম এই সম্পাদনাটি মুছে ফেলেছি। আপনার পদ্ধতিটি আরও ভাল হওয়াতে শেষ হয়েছে, তাই আমি আমার মুছতে চাইছিলাম। আমি এখন এটি করব।
fildred13

উত্তর:


40

আপনি যদি উত্সের কোডটিget_the_archive_title() দেখুন , আপনি দেখতে পাবেন যে সরবরাহ করা একটি ফিল্টার রয়েছে, যাকে বলা হয় get_the_archive_title, যার মাধ্যমে আপনি ফাংশন থেকে আউটপুট ফিল্টার করতে পারেন।

বিভাগের পৃষ্ঠায় আউটপুট পরিবর্তন করতে আপনি নিম্নলিখিতটি ব্যবহার করতে পারেন

add_filter( 'get_the_archive_title', function ( $title ) {

    if( is_category() ) {

        $title = single_cat_title( '', false );

    }

    return $title;

});

6
এটি একটি আর্কাইভ পৃষ্ঠায় Archive: Books(যেখানে Booksএকটি কাস্টম পোস্টের ধরণ রয়েছে) শিরোনাম সহ কাজ করে না । single_cat_title()ফাংশন শুধুমাত্র পৃষ্ঠার একটি শিরোনাম ফেরৎ যদি ধরনের একটি হল বিভাগ বা ট্যাগ । সমস্ত বিষয়বস্তুর সাথে কাজ করে এমন একটি সমাধান অন্তর্ভুক্ত করতে আপনি কী নিজের উত্তরটি সংশোধন করতে পারেন?
কুইন কমেন্ডেন্ট

@ কুইনকোমেন্ডেন্ট উত্স কোডটি দেখুন, লাইনগুলি 1239 এবং 1240 :-)। যদি আপনার কোন সমস্যা থাকে তবে কেবল আপনার প্রশ্নের সাথে সম্পর্কিত একটি নতুন প্রশ্ন জিজ্ঞাসা করুন
পিটার গুজন

1
ডান, প্রতিটি শৈলী বা পোস্ট প্রকারের জন্য তাদের আলাদা আলাদা শিরোনাম চাইলে তাদের অবশ্যই একটি বিকল্প শিরোনাম ফিরিয়ে দিতে হবে। আমি একটি উত্তর পোস্ট করেছি যা সমস্ত ধরণের উপসর্গকে বাদ দেয়।
কুইন কমেন্ডেন্ট

28

গৃহীত উত্তর Category:বিভাগ আর্কাইভ শিরোনাম থেকে উপসর্গটি সরাতে কাজ করে , তবে অন্যান্য শ্রেণিবদ্ধ বা পোস্টের ধরণের নয়। অন্যান্য উপসর্গগুলি বাদ দিতে দুটি বিকল্প রয়েছে:

  1. মূল get_the_archive_title()ফাংশনে ব্যবহৃত সমস্ত রূপগুলির জন্য শিরোনামটি পুনর্নির্মাণ করুন :

    // Return an alternate title, without prefix, for every type used in the get_the_archive_title().
    add_filter('get_the_archive_title', function ($title) {
        if ( is_category() ) {
            $title = single_cat_title( '', false );
        } elseif ( is_tag() ) {
            $title = single_tag_title( '', false );
        } elseif ( is_author() ) {
            $title = '<span class="vcard">' . get_the_author() . '</span>';
        } elseif ( is_year() ) {
            $title = get_the_date( _x( 'Y', 'yearly archives date format' ) );
        } elseif ( is_month() ) {
            $title = get_the_date( _x( 'F Y', 'monthly archives date format' ) );
        } elseif ( is_day() ) {
            $title = get_the_date( _x( 'F j, Y', 'daily archives date format' ) );
        } elseif ( is_tax( 'post_format' ) ) {
            if ( is_tax( 'post_format', 'post-format-aside' ) ) {
                $title = _x( 'Asides', 'post format archive title' );
            } elseif ( is_tax( 'post_format', 'post-format-gallery' ) ) {
                $title = _x( 'Galleries', 'post format archive title' );
            } elseif ( is_tax( 'post_format', 'post-format-image' ) ) {
                $title = _x( 'Images', 'post format archive title' );
            } elseif ( is_tax( 'post_format', 'post-format-video' ) ) {
                $title = _x( 'Videos', 'post format archive title' );
            } elseif ( is_tax( 'post_format', 'post-format-quote' ) ) {
                $title = _x( 'Quotes', 'post format archive title' );
            } elseif ( is_tax( 'post_format', 'post-format-link' ) ) {
                $title = _x( 'Links', 'post format archive title' );
            } elseif ( is_tax( 'post_format', 'post-format-status' ) ) {
                $title = _x( 'Statuses', 'post format archive title' );
            } elseif ( is_tax( 'post_format', 'post-format-audio' ) ) {
                $title = _x( 'Audio', 'post format archive title' );
            } elseif ( is_tax( 'post_format', 'post-format-chat' ) ) {
                $title = _x( 'Chats', 'post format archive title' );
            }
        } elseif ( is_post_type_archive() ) {
            $title = post_type_archive_title( '', false );
        } elseif ( is_tax() ) {
            $title = single_term_title( '', false );
        } else {
            $title = __( 'Archives' );
        }
        return $title;
    });
  2. অথবা, কেবল শিরোনাম উপসর্গের মতো দেখতে এমন কোনও কিছু ফেলা (যা প্রকৃত শিরোনামগুলিতে পরিবর্তিত হতে পারে যেখানে কোলন চরিত্রের পরে একটি শব্দ রয়েছে):

    // Simply remove anything that looks like an archive title prefix ("Archive:", "Foo:", "Bar:").
    add_filter('get_the_archive_title', function ($title) {
        return preg_replace('/^\w+: /', '', $title);
    });

6

আপনি ব্যবহার করতে পারেন

echo '<h1 class="page-title">' . single_cat_title( '', false ) . '</h1>';

এটি সংরক্ষণাগার: বইগুলির শিরোনাম সহ কোনও সংরক্ষণাগার পৃষ্ঠায় কাজ করে না (বই যেখানে কাস্টম পোস্টের ধরণ)।
ব্রাজিলিয়ান গাই

@ থ্যাট ব্রাজিলিয়ান গুয় অভ্যন্তরীণভাবে single_cat_titleব্যবহার single_term_titleকরে, যা কর বিভাগেও কাজ করে। আপনার থিমের নীচের কোন একটি টেমপ্লেট সংজ্ঞায়িত না রয়েছে তা নিশ্চিত করুন: taxonomy-book.phpবা taxonomy.php, কারণ এগুলির নজরে রয়েছে archive.php। এছাড়াও, অন্যান্য উত্তরের যে কোনও পদ্ধতি পরীক্ষা করার বিষয়টি বিবেচনা করুন। এই উত্তরটি বেশ পুরানো, আমি পোস্ট করার সময় এটি ঠিকঠাক কাজ করেছিল, তবে আমি আর ওয়ার্ডপ্রেসের জন্য বিকাশ করছি না।
আন্দ্রেই গিওরঝিউ

6

আরেকটি বিকল্প হ'ল:

<?php echo str_replace('Brand: ','',get_the_archive_title()); ?>

ব্র্যান্ড প্রতিস্থাপন করুন: আপনি যে কোনও পাঠ্য থেকে মুক্তি পেতে চাইছেন তা দিয়ে।

Get_the_archive_title () এবং the_archive_title () the_archive_title () এর মধ্যে পার্থক্য সন্ধান করে এটি একটি অ্যারে get_the_archive_title () প্রদান করে


the_archive_title () শিরোনাম প্রতিধ্বনিত হয় এবং get_the_archive_title () দেয় না, তাই তারা মূলত একই রকম। আপনার যদি সামগ্রীটি পরিবর্তন করতে হয় তবে আপনি পান ব্যবহার করুন।
রবার্ট

1

বেন গিলবাঙ্কসের একটি দুর্দান্ত সমাধান রয়েছে যা সমস্ত পোস্টের ধরণ এবং শুল্কগুলি পরিচালনা করে:

function hap_hide_the_archive_title( $title ) {
// Skip if the site isn't LTR, this is visual, not functional.
// Should try to work out an elegant solution that works for both directions.
if ( is_rtl() ) {
    return $title;
}
// Split the title into parts so we can wrap them with spans.
$title_parts = explode( ': ', $title, 2 );
// Glue it back together again.
if ( ! empty( $title_parts[1] ) ) {
    $title = wp_kses(
        $title_parts[1],
        array(
            'span' => array(
                'class' => array(),
            ),
        )
    );
    $title = '<span class="screen-reader-text">' . esc_html( $title_parts[0] ) . ': </span>' . $title;
}
return $title;
}
add_filter( 'get_the_archive_title', 'hap_hide_the_archive_title' );

0

আপনি post_type_archive_title()"সংরক্ষণাগার:" পাঠ্য ছাড়াই একটি সংরক্ষণাগারটির শিরোনাম পেতে ব্যবহার করতে পারেন ।

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