প্রয়োগ_ফিল্টারগুলি ('the_ কনটেন্ট', $ সামগ্রী) বনাম do_shortcode ($ সামগ্রী)


21

বলি আমার কাছে একটি থিম বিকল্প বা কাস্টম পোস্টমেটা পাঠ্য অঞ্চল রয়েছে। এখন আমি একাধিক শর্টকোড, সাধারণ পাঠ্য, চিত্র ইত্যাদি সম্পাদন করতে চাই

সেরা অনুশীলন কি হবে এবং কেন?

বিকল্প 1:

$content = //my text area data;
echo apply_filters('the_content', $content);

বিকল্প 2:

$content = //my text area data;
echo do_shortcode($content);

কোনটি সবচেয়ে ভাল অনুশীলন হবে এবং কেন তা দয়া করে আমাকে ব্যাখ্যা করুন।

সম্পাদনা

আমাকে দৃশ্যের বিবরণে বর্ণনা করতে দিন। আমি ক্লায়েন্টদের প্রয়োজনীয়তা সহ থিমগুলি বিকাশ করি। কখনও কখনও, আমি পোস্ট / পৃষ্ঠাগুলি / কাস্টম পোস্ট ধরণের পোস্ট মেটা যুক্ত করতে হবে, যাতে তারা শর্টকোডগুলি (স্লাইডার, যোগাযোগের ফর্ম ইত্যাদি) বা কেবল একটি সাধারণ পাঠ্য যুক্ত করতে পারে। এটি একটি লেখা দায়ের করা হয়েছে।

শর্টকোডটি কাজ করতে, আমি বিকল্প 1 ব্যবহার করি । এখন, আমি কারও কাছ থেকে শুনেছি যে এটি একটি ভুল উপায়, এবং আমার ব্যবহার করা উচিত do_shortcode। তবে কেন এটি ভুল উপায় তা সম্পর্কে তারা আমাকে কোনও ব্যাখ্যা দেননি। এজন্যই আমি জিজ্ঞাসা করছি।

এই পুরো প্রক্রিয়াটি ডব্লিউপি-র ডিফল্ট পাঠ্য সম্পাদকে করা যেতে পারে। তবে টেমপ্লেট নির্দিষ্ট ব্যবহারের জন্য আমাকে সেই বিকল্পগুলি তৈরি করতে হবে, এটি আমার ক্লায়েন্টরা চান।

উত্তর:


16

প্রশ্ন এবং উত্তর পুনরুদ্ধার করা হয়েছে

কখনও কখনও এই প্রশ্নগুলি থাকে যেগুলি আপনাকে কটূক্তি করে এবং আপনাকে পরবর্তী জীবনে আবার হান্ট করে দেয় এবং এটি এই জাতীয় একটি প্রশ্ন।

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

আমি আপনার পোস্টে যা আকর্ষণীয় পেয়েছি তা হ'ল আপনি অনিয়ম ব্যবহারকারীর ইনপুট থেকে কাস্টম সামগ্রী প্রদর্শন করতে কাস্টম ক্ষেত্র এবং মেটা বাক্স ব্যবহার করেছেন used তাই আমি বসে বসে এই কাজটি করার এবং কাস্টম ফিল্ড ডেটা এবং মেটা বক্স ডেটা সঠিকভাবে ব্যবহার করার সম্ভাব্য উপায় নিয়ে ভাবলাম

এটি আমার ধারণা:

স্কেনারিও:

দ্রষ্টব্য: যে কোনও প্রয়োজন অনুসারে এটি পরিবর্তন করা যেতে পারে

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

সম্ভাব্য সমাধান:

শর্টকোডগুলি এখানে কাজ করবে না, কারণ কাস্টম ক্ষেত্রে শর্টকোডগুলি কার্যকর করা যায় না। উভয়ই do_shortcodeকাজ করবে না , কারণ এটি গতিশীল নয় এবং হার্ডকোডযুক্ত, এমন কিছু যা আমরা চাই না। আপনার প্রশ্ন হিসাবে, আমরা একটি কাস্টম ক্ষেত্র ব্যবহার করতে যাচ্ছি। আবার আমি জোর দিয়েছি, কাস্টম ক্যোয়ারী বা শর্টকোডগুলি কার্যকর করতে কাস্টম ফিল্ডটি ব্যবহার করবেন না

পরিকল্পনা:

আমরা কাস্টম ক্ষেত্র ব্যবহার করবে শুধুমাত্র আমাদের প্রশ্নের সাথে আর্গুমেন্ট সংরক্ষণ, যে সব হয়। সুতরাং, আমরা যা করি তা হ'ল আমরা একটি কাস্টম ফিল্ড তৈরি করি custom_query_arguments। আপনার পোস্ট সম্পাদক পর্দায়, আপনি এখন ব্যবহারের জন্য প্রস্তুত, আপনার কাস্টম ক্ষেত্রটি দেখতে পাবেন

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

'posts_per_page=3&cat=1&orderby=title'

এটি এখন আপনার কাস্টম ক্ষেত্রে প্রবেশ করা উচিত। একবার প্রবেশ করার পরে, আপনার কাস্টম ক্ষেত্রের মান সংরক্ষণ করুন

পরবর্তীটি আপনার একক.এফপি-তে কাস্টম ক্যোয়ারী তৈরি করা হবে। এখানে কী প্রয়োজন, আমাদের কাস্টম ক্ষেত্র থেকে আমাদের মূল্য পেতে হবে যা আসলে আমাদের ক্যোয়ারের যুক্তি, এবং WP_Queryপোস্টগুলি পুনরুদ্ধার করার জন্য এটি একটি নতুন উদাহরণে ফিড করা উচিত । আমাদের সেই কাস্টম ক্ষেত্রের আসলে মূল্য আছে কিনা তাও আমাদের দেখতে হবে, যদি কাস্টম ক্ষেত্রটি খালি থাকে তবে কিছুই দেখায় না

কোড:

আপনি একক পোস্টের ঠিক পরে সিঙ্গল.এফপিতে এরকম কিছু চেষ্টা করতে পারেন।

$args = get_post_meta( get_queried_object_id(), 'custom_query_arguments', true );
// check if the custom field has a value
if( ! empty( $args ) ) {

    $q = new WP_Query( $args );

    if( $q->have_posts() ) {
        while( $q->have_posts() ) {
            $q->the_post();

            the_title();

        }
        wp_reset_postdata();
    }

} 

ব্যবহারকারী যদি কাস্টম ক্যোয়ারীটি সরাতে চান, তবে তিনি কেবলমাত্র কাস্টম ফিল্ডের মান মুছতে পারেন এবং কাস্টম ক্ষেত্রটি ফাঁকা ছেড়ে দিতে পারেন। যদি তাকে একই কোয়েরিটি দেখাতে হয় তবে 10 এবং মোট 5 টি পোস্ট থেকে, তিনি কেবলমাত্র নিম্নলিখিত মানগুলি দিয়ে প্রতিস্থাপন করতে পারেন

'posts_per_page=5&cat=10&orderby=title'

কয়েকটি নোট:

এই কাস্টম ক্ষেত্র এবং মেটা বাক্সগুলিতে তথ্য প্রবেশের সময় সঠিক সিনটেক্স এবং ফর্ম্যাটটি ব্যবহার করা গুরুত্বপূর্ণ। সিনট্যাক্স ত্রুটি বা ভুল তথ্য অনাকাঙ্ক্ষিত আউটপুট বা এমনকি মারাত্মক ত্রুটির দিকে পরিচালিত করবে। আপনার ক্লায়েন্টদের এ জাতীয় তথ্য জানানো গুরুত্বপূর্ণ

মূল উত্তর

আপনি কী অর্জন করতে চাইছেন তা আমি বুঝতে পারি না তবে আমি আপনাকে যা বলতে পারি তা থেকে এগুলি দুটি পৃথক বিষয়

বিকল্প 1

apply_filters('the_content', $content);কাঁচা ছাপানো পোস্টের সামগ্রীতে ফিল্টার প্রয়োগ করতে ব্যবহৃত হয়, যা সাধারণত ব্যবহার থেকে আসে $post->post_content। এই ফিল্টারগুলিতে বিখ্যাত ফিল্টার অন্তর্ভুক্ত wp_autopযা p ট্যাগ যুক্ত করেthe_content()

apply_filters('the_content', $content); সাধারণত কনজাকশনে ব্যবহৃত হয় get_postsযেখানে কেউ সরাসরি WP_Postব্যবহার না করে অবজেক্টগুলির সাথে কাজ করে setup_postdata( $post )যা টেমপ্লেট ট্যাগগুলি the_content() ব্যবহারের জন্য উপলভ্য করে

বিকল্প 2

do_shortcode পৃষ্ঠার সম্পাদক পর্দার পিছনের প্রান্তে পাঠ্য সম্পাদকের বাইরে টেম্পলেট ফাইলগুলির যে কোনও জায়গায় একটি শর্টকোড যুক্ত করতে ব্যবহৃত হয়, মূলত তাদের হুকের মাধ্যমে শর্টকোড ফিল্টার করে।

সঠিক ব্যবহারটি নিম্নরূপ

উদাহরণ: একটি টেমপ্লেট ফাইলে গ্যালারী শর্টকোড যুক্ত করা

echo do_shortcode( '[gallery]' )

সম্পাদনা 1

আপনার মন্তব্যগুলি থেকে, আমি তখনও কোনও শর্টকোড ব্যবহার করব না।

আপনি যদি টেক্সট সম্পাদকের মাধ্যমে একটি শর্টকোড যুক্ত করতে যাচ্ছেন না এবং এটি do_shortcodeকোনও টেমপ্লেট ফাইলের মাধ্যমে সরাসরি (হার্ডকোড) যুক্ত করতে যাচ্ছেন , আমি বরং কেবলমাত্র টেমপ্লেটে ফাংশনটি যুক্ত করব

উদাহরণ:

আপনার যদি নিম্নলিখিত শর্টকোড ফাংশন থাকে

function footag_func( $atts ) {
    return "foo = {$atts['foo']}";
}
add_shortcode( 'footag', 'footag_func' );

আপনি পছন্দ মতো কোনও টেমপ্লেটে সরাসরি ফাংশনটি কল করতে পারেন

echo footag_func();

শর্টকোডটি বিশ্লেষণ করার প্রয়োজন না হওয়ায় এটি আরও দ্রুত

সম্পাদনা 2

এখানে সত্য বলতে, আপনি নিজের সম্পাদনা থেকে সম্পূর্ণ ভুলটি করছেন। এজন্য আমি আপনার প্রাথমিক প্রশ্নটি বুঝতে পারি না

কখনও কখনও, আমি পোস্ট / পৃষ্ঠাগুলি / কাস্টম পোস্ট ধরণের পোস্ট মেটা যুক্ত করতে হবে, যাতে তারা শর্টকোডগুলি (স্লাইডার, যোগাযোগের ফর্ম ইত্যাদি) বা কেবল একটি সাধারণ পাঠ্য যুক্ত করতে পারে। এটি একটি লেখা দায়ের করা হয়েছে।

শর্টকোডকে কাজ করতে, আমি বিকল্প 1 ব্যবহার করি .....

কাস্টম ক্ষেত্র হয় না টেক্সট ক্ষেত্র এবং নিশ্চয় শর্টকাট চালানো এবং যে বিষয়টি স্লাইডার বা যোগাযোগ রূপের জন্য ব্যবহার করা বোঝানো হয় না। পোস্ট এবং পৃষ্ঠাগুলিতে পাঠ্য সম্পাদককে প্রতিস্থাপন করতে কাস্টম ক্ষেত্রগুলি কখনও ব্যবহার করা উচিত নয়।

যেমনটি আমি আগেই বলেছি, apply_filters('the_content', $content);কাঁচা পোস্ট সামগ্রীতে বিন্যাস প্রয়োগ করতে ব্যবহার করা।

আপনার এখানে দুটি পছন্দ আছে

  • do_shortcodeটেমপ্লেট ফাইলগুলিতে সরাসরি ব্যবহার করুন , যা শর্টকোড পার্স করার দরকার নেই বলে ফাংশনটি দ্রুত ব্যবহার করার কারণে আমি সুপারিশ করব না

  • নির্দিষ্ট পৃষ্ঠা / পোস্টের জন্য সরাসরি পাঠ্য সম্পাদকের শর্টকোডটি ব্যবহার করুন

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

আমার প্রস্তাবটি হ'ল কাস্টম উইজেট বা এমন একটি সিস্টেম যা আপনি কাস্টম ক্ষেত্রগুলির সাথে ব্যবহার করতে পারেন তা সন্ধান করা হবে


1
পিটার ব্যাখ্যা জন্য ধন্যবাদ। আমি এটা ইতিমধ্যে জানি। তবে আমি জিজ্ঞাসা করছিলাম, লক্ষ্যটি কেবল পোস্ট মেটা / থিম বিকল্পগুলির পাঠ্যক্রমের শর্টকোডগুলি আউটপুট দেওয়ার ক্ষেত্রে যদি আরও সঠিক হয় accurate ফিল্টার করা সামগ্রী পেতে আমি বিকল্প 1 ব্যবহার করছি এবং এটি আমার অভ্যাসে পরিণত হয়েছে। এবং 1 বিকল্প এমনকি একটি পাঠ্য ফাইল থেকে শর্টকোড মুদ্রণ করতে ব্যবহার। তাই জিজ্ঞাসা ছিল।
fi সুফি

আমি সম্পাদনা দেখেছি। আমি তোমার ক্থা বুঝেছি. তবে আমার পরিস্থিতি আলাদা is এটি এর মতো, এখানে একটি পাঠ্য ফাইল / অঞ্চল এবং কয়েকটি শর্টকোড রয়েছে। এখন ব্যবহারকারীরা সেই অঞ্চলে যে কোনও শর্টকোড / গুলি রাখতে পারেন। সুতরাং আমি সরাসরি কোনও ফাংশন ব্যবহার করতে পারি না। আমার সেই অংশটি গতিশীল রাখা দরকার।
29 সুফি

সেই পাঠ্য ক্ষেত্রটি কোথায়, এটি কি শেষ পৃষ্ঠার সম্পাদক স্ক্রিনের মতোই রয়েছে
পিটার গুজন

এটি একটি পোস্ট মেটা হতে পারে। অথবা এটি একটি থিম বিকল্প হতে পারে। আমি উভয়ের জন্য the_ কনটেন্ট ফিল্টার ব্যবহার করি।
fi সুফি

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