বডি_ক্লাস থেকে ক্লাসগুলি সরান


17

এই ধরণের ক্লাসগুলির পুরো গণ্ডগোলের আমার দরকার নেই ...

<body class="page page-id-829 page-template page-template-page-template-portfolio-php portfolio">

আমি এরকম কিছু চাই ...

<body class="portfolio">

কোথাও কোনও ফিল্টার স্নিপেট রয়েছে যাতে সমস্ত ক্লাসের একটি তালিকা রয়েছে এবং আমি তখন কেবল দেহ শ্রেণিতে দেখতে চাই না এমন জিনিসগুলি uncomment করতে পারি।

ধন্যবাদ।


আসল প্রশ্ন আপনি কেন এটি করতে চান? এই অতিরিক্ত ক্লাসগুলি থাকা জিনিসগুলির দুর্দান্ত স্কিমের জন্য কোনও বিষয় নয় এবং আপনি যদি পরে সেগুলি উল্লেখ করতে চান তবে স্টাইলিংয়ের জন্য এগুলি রাখা ভাল।
অটো

3
@ অটো - আমি তাকে / তাকে পুরোপুরি বুঝতে পারি। আপনি যদি ক্লাস যুক্ত করে প্রায় খেলতে যাচ্ছেন যেমন। ফায়ারব্যাগ, তাহলে এটি পরিচালনা করা সত্যিই কঠিন। এফএফ প্রায়শই বগি হয় এবং আপনি যে শ্রেণীর নামটি ভিউপোর্টের বাইরে লিখছেন। আমি নিজে ডেভ করার সময় প্রচুর পোস্ট- এবং বডি ক্লাস বন্ধ করে দিয়েছি - এটি জীবনকে আরও সহজ করে তোলে।
কায়সার

আহ, হ্যাঁ, আমি ফায়ারব্যাগ ব্যবহার করি না। এর ইন্টারফেসটি শোচনীয়।
অটো

উত্তর:


31

$whitelistঅন্যান্য সমস্ত অযাচিত ক্লাসগুলি ফিল্টার করার জন্য আপনি এই ফাংশনে অ্যারেটি কনফিগার করতে পারেন ।

add_filter( 'body_class', 'wpse15850_body_class', 10, 2 );

function wpse15850_body_class( $wp_classes, $extra_classes ) {

    // List of the only WP generated classes allowed
    $whitelist = array( 'portfolio', 'home', 'error404' );

    // Filter the body classes
    $wp_classes = array_intersect( $wp_classes, $whitelist );

    // Add the extra classes back untouched
    return array_merge( $wp_classes, (array) $extra_classes );
}

15

@ জিয়ার্ট উত্তরে কেবল একটি সংযোজন (একটি ব্ল্যাকলিস্টও যুক্ত হয়েছে) :)

@ জিয়ার্টের উত্তরটিকে সমাধান হিসাবে চিহ্নিত করার জন্য দয়া করে খুব সুন্দর হোন (এটির নয়)।

function wpse15850_body_class( $wp_classes, $extra_classes )
{
    // List of the only WP generated classes allowed
    $whitelist = array( 'home', 'blog', 'archive', 'single', 'category', 'tag', 'error404', 'logged-in', 'admin-bar' );

    // List of the only WP generated classes that are not allowed
    $blacklist = array( 'home', 'blog', 'archive', 'single', 'category', 'tag', 'error404', 'logged-in', 'admin-bar' );

    // Filter the body classes
    // Whitelist result: (comment if you want to blacklist classes)
    $wp_classes = array_intersect( $wp_classes, $whitelist );
    // Blacklist result: (uncomment if you want to blacklist classes)
    # $wp_classes = array_diff( $wp_classes, $blacklist );

    // Add the extra classes back untouched
    return array_merge( $wp_classes, (array) $extra_classes );
}
add_filter( 'body_class', 'wpse15850_body_class', 10, 2 );

যদিও খুব ভাল কাজের সমাধান, তবে আমি এখনও খুঁজে পাই যে 'নো-
জেএস

1
নো-জেএস ক্লাস সম্পর্কে - আমি মনে করি এটি একটি বডিপ্রেস জিনিস হতে পারে। আমি তদন্ত করব!
হেনরিয়াইট

1
no-jsঅথবা jsতেমনিভাবে জাভাস্ক্রিপ্ট / জ্যাকুয়ারি ব্যবহারের সাথে মোকাবিলা করা হয়, সুতরাং আমি অনুমান করছি এটি একটি স্ক্রিপ্ট যা আপনার প্রাপ্য হওয়া দরকার
ব্রায়ান উইলিস

no-jsসার্ভার দ্বারা যুক্ত করা হবে, তবে জাভাস্ক্রিপ্ট ব্রাউজারে চালানোর অনুমতি দেওয়া থাকলে একটি স্ক্রিপ্টের সাহায্যে সরানো হবে।
ডেভি

4

আমি কেবলমাত্র <?php body_class(); ?>টেম্পলেট ট্যাগ বাদ দেওয়ার প্রস্তাব দিচ্ছি , যদি আপনার এর আউটপুটটির কোনও প্রয়োজন না থাকে।

কেবল ট্যাগে class="portfolio"হার্ড-কোডেড প্রয়োগ করুন <body>


যদি আপনি wp.org রেপোতে আপনার থিমটি হোস্ট করতে চান, তবে আপনার কাছে এই চয়েস নেই (কেবলমাত্র একটি সাইডেনোট)।
কায়সার

1
এলওএল, আমি জানি ... আমি ডাব্লুএপজিজি সংগ্রহস্থলের জন্য এক বা দুটি থিম পর্যালোচনা করেছি। :) আমি প্রশ্ন থেকে ধরে নিয়েছি, যদিও এই থিমটি সাধারণ ব্যবহারের পরিবর্তে ব্যক্তিগত ব্যবহারের জন্য, পাবলিক বিতরণের জন্য।
চিপ বেনেট

2

আপনার সিএসএসের ক্লাসগুলি কেবলমাত্র $ শ্রেণি_পদে মুছে ফেলার জন্য রাখুন

add_filter( 'body_class', 'wpse15850_body_class', 10, 2 );

function wpse15850_body_class( $wp_classes, $extra_classes ) {

    # List tag to delete
    $class_delete = array('tag');

    # Verify if exist the class of WP in $class_delete
    foreach ($wp_classes as $class_css_key => $class_css) {
        if (in_array($class_css, $class_delete)) {
            unset($wp_classes[$class_css_key]);
        }
    }

    // Add the extra classes back untouched
    return array_merge( $wp_classes, (array) $extra_classes );
}

1

এটি প্রতিটি পৃষ্ঠাকে কেবল 'পোর্টফোলিও' এর বডি ক্লাস দেবে। প্রথম যুক্তি হ'ল উত্পন্ন শরীরের শ্রেণীর অ্যারে যা সাধারণত প্রদর্শিত হবে। দ্বিতীয় যুক্তি হ'ল বডি ক্লাস ফাংশনে পাস করা ক্লাসগুলির একটি অ্যারে (উদাহরণস্বরূপ body_class('portfolio');এই ফাংশনে দ্বিতীয় যুক্তিটি তৈরি করবে array( 'portfolio' ))।

function wpse15850_body_classes( $classes, $class ){
    return array( 'portfolio' );
}

add_filter( 'body_class', 'wpse15850_body_classes', 10, 2 );

1
Try the following...

function var_template_include( $t ){
    $basename = basename($t);
    $templatename = substr($basename, 0,strrpos($basename,'.')); 
    $GLOBALS['current_theme_template'] = $templatename;

    return $t;
}
add_filter( 'template_include', 'var_template_include', 1000 );


function current_template( $echo = false ) {
    if( !isset( $GLOBALS['current_theme_template'] ) ) {
        return false;
    } if( $echo ) {
        echo $GLOBALS['current_theme_template'];
    } else {
        return  $GLOBALS['current_theme_template'];
    }   
}

function body_template_as_class() {
echo 'class="'.current_template().'"';
}

1
function alpha_remove_class($wp_classes){
  unset( $wp_classes[ array_search( "first_class", $wp_classes ) ] );

  return $wp_classes;
}
add_filter( 'body_class', 'alpha_remove_class' );

ওয়ার্ডপ্রেস স্ট্যাক এক্সচেঞ্জে আপনাকে স্বাগতম! আপনি কি দয়া করে উপরের সম্পাদনা লিঙ্কটি ব্যবহার করে আপনার উত্তরটি সম্পাদনা করতে পারবেন এবং এই কোডটি কী করবে, আপনি এই কোডটি কোথায় রাখবেন এবং পূর্ববর্তী পোস্ট করা উত্তরগুলির চেয়ে কীভাবে এটি আলাদা বা ভাল তা ব্যাখ্যা করতে পারেন? কোডের উত্তরগুলি সাধারণত কোনও ব্যাখ্যা ছাড়াই নিরুৎসাহিত করা হয়।
হাওডি_এমসিজি

0

আপনি যদি কেবল বডি ট্যাগ থেকে নির্দিষ্ট শ্রেণিটি সরাতে চান তবে আপনার এটি করা উচিত:

add_filter ('বডি_ক্লাস', 'অপসারণ_দেহী_ক্লাস', 20, 2);

ফাংশন সরান_দেহী_ক্লাস ($ ডাব্লুপিপি_ক্লাস) {
    foreach ($ কী => $ মান হিসাবে $ wp_class)
        {
            যদি ($ মান == 'পোর্টফোলিও') সেট না করে ($ wp_class [$ কী]); // "পোর্টফোলিও" প্রতিস্থাপন করে এবং এটি সরিয়ে দেয়
        }

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