ওয়ার্ডপ্রেস হুক / ফিল্টারগুলি সামগ্রীর আগে বা শিরোনামের পরে inোকান


29

আমার ফাংশন.এফপি-তে পোস্টের সামগ্রীর আগে সামগ্রী toোকানোর চেষ্টা করছি - আমি জানি নিয়মিত ডাব্লুপি হুকগুলি কীভাবে ব্যবহার করতে হয় তবে অন্যান্য অঞ্চলে কীভাবে sertোকানো যায় তা সম্পর্কে আমি নিশ্চিত নই।

এটি চেষ্টা করেছে, তবে এটি অন্য যে কোনও পোস্টের ধরণের বিষয়বস্তুকে হত্যা করে:

function property_slideshow( $content ) {
 if ( is_single() && 'property' == get_post_type() ) {
    $custom_content = '[portfolio_slideshow]';
    $custom_content .= $content;
    return $custom_content;
    } 
}
add_filter( 'the_content', 'property_slideshow' );

আমি এই শর্তটি কীভাবে করব?

উত্তর:


39

কেবল the_contentফিল্টারটি ব্যবহার করুন , যেমন:

<?php
function theme_slug_filter_the_content( $content ) {
    $custom_content = 'YOUR CONTENT GOES HERE';
    $custom_content .= $content;
    return $custom_content;
}
add_filter( 'the_content', 'theme_slug_filter_the_content' );
?>

মূলত, আপনি আপনার কাস্টম সামগ্রীর পরে পোস্ট সামগ্রী সংযুক্ত করুন, তারপরে ফলাফলটি ফিরিয়ে দিন।

সম্পাদন করা

ফ্রাঙ্কি @ বেল্টেজ তাঁর মন্তব্যে যেমন উল্লেখ করেছেন, পোস্টের শিরোনামের জন্য প্রক্রিয়াটি একই রকম; কেবল হুকটিতে একটি ফিল্টার যুক্ত করুন the_title:

<?php
function theme_slug_filter_the_title( $title ) {
    $custom_title = 'YOUR CONTENT GOES HERE';
    $title .= $custom_title;
    return $title;
}
add_filter( 'the_title', 'theme_slug_filter_the_title' );
?>

দ্রষ্টব্য, এই ক্ষেত্রে, আপনি শিরোনামের পরে আপনার কাস্টম সামগ্রী যুক্ত করুন end (এটি কোন ব্যাপার নয়; আমি আপনার প্রশ্নের মধ্যে যা নির্দিষ্ট করেছি তা দিয়েছিলাম))

সম্পাদনা 2

আপনার উদাহরণ কোডটি কাজ না করার কারণ হ'ল আপনি কেবল $contentতখনই ফিরে আসেন যখন আপনার শর্তসাপেক্ষ পূরণ হয় । আপনি ফিরে যাওয়ার প্রয়োজন $content, অপরিবর্তিত, একটি হিসাবে elseআপনার শর্তাধীন করতে। উদাহরণ:

function property_slideshow( $content ) {
    if ( is_single() && 'property' == get_post_type() ) {
        $custom_content = '[portfolio_slideshow]';
        $custom_content .= $content;
        return $custom_content;
    } else {
        return $content;
    }
}
add_filter( 'the_content', 'property_slideshow' );

এইভাবে, 'সম্পত্তি' পোস্ট-টাইপের নয় এমন পোস্টগুলির জন্য, $contentফিরে আসে, অ-সংশোধিত।


এছাড়াও শিরোনামের পরে সামগ্রী যুক্ত করা সম্ভব; ফিল্টার the_title ডান হুক।
24:58

@ শিপবেনেট প্রশ্ন - কেবলমাত্র একটি কাস্টম পোস্ট ধরণের জন্য যুক্তি দিয়ে এটি কীভাবে করা যায় - আমি এটিকে মোড়ানোর চেষ্টা করেছিলাম if ( is_single() && 'property' == get_post_type() ) {}কিন্তু এটি আমার পক্ষে কার্যকর হয়নি
জেসন

@ শিপবেনেট - আমি এটি আমার কাস্টম পোস্ট ধরণের উপর কাজ করতে পেরেছি, তবে সামগ্রীটি অন্য কোনও পোস্টের ধরণ থেকে অদৃশ্য হয়ে যায়। উপরে সম্পাদনা দেখুন।
জেসন 0

1
এর কারণ আপনি $contentনিজের পছন্দমতো পোস্টের ধরণের ব্যতীত অন্য কোনও পোস্টের জন্য ফিরে আসছেন না । আপডেট উত্তর দেখুন।
চিপ বেনেট

কেবল একটি নোট - আপনার আর}} ব্লক লাগবে না - কেবল ফ্যালব্যাক রিটার্ন। যদি শর্তটি পূরণ হয়, তবে ()) এর রিটার্ন আপনাকে ফাংশন থেকে বাইরে নিয়ে যায়, যদি আপনি এটি যদি () এর অতীত করে ফেলে থাকেন তবে ফলব্যাক রিটার্ন হিট হবে।
ফটসকাত

0
function property_slideshow( $content ) {
    if ( is_singular( 'property' ) ) {
        $custom_content = do_shortcode( '[portfolio_slideshow]' );
        $custom_content .= $content;
        }
        return $custom_content;
}
add_filter( 'the_content', 'property_slideshow' );

is_singularশর্তাধীন ট্যাগ চেক একটি একবচন পোস্টে প্রদর্শিত হয়ে থাকলে তা এবং $ post_types প্যারামিটার যা এই ক্ষেত্রে সম্পত্তি উল্লেখ করতে সক্ষম করে।

এছাড়াও, আপনি তাকান করতে পারেন do_shortcode


এখানে খেলতে দেরীতে, তবে আপনি যে_সেসুলার ('সম্পত্তি') মিথ্যা প্রত্যাবর্তন করে সেই ক্ষেত্রে খালি পরিবর্তনশীলটি ফিরিয়ে দিচ্ছেন। যদি আপনি সেখানে আপনার যুক্তিটি উল্টে দেন, এবং কেবল সেই ক্ষেত্রে $ সামগ্রী ফিরে পান তবে আপনি ক্লিনার, আরও পঠনযোগ্য কোড সহ শেষ করবেন।
ট্র্যাভিস ওয়েস্টন

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