পোস্ট এবং পৃষ্ঠা লোড জন্য হুক


17

যখন কোনও নির্দিষ্ট পোস্ট বা পৃষ্ঠা লোড হয় তখন আমার একটি ফাংশন চালানো দরকার। এমন কোনও হুক আছে যা আমাকে পৃষ্ঠা লোডের সময় কোনও পোস্ট প্রদর্শিত হচ্ছে কিনা তা পরীক্ষা করতে দেয়?


পাবলিক না অ্যাডমিন সাইড / ফেসিং?
কায়সার

সামনের প্রান্তের জন্য। মূলত আমি চাই যখন এটি কোনও নির্দিষ্ট একক কাস্টম পোস্ট প্রকার প্রদর্শিত হয় কেবল তখনই এটি ট্রিগার হয়।
পৌলমি নাগ

উত্তর:


24

আপনি wpহুক ব্যবহার করতে পারেন এবং global $wp_queryঅবজেক্ট বা কোনও শর্তসাপেক্ষে পরীক্ষা করতে পারেন ।

add_action( 'wp', 'wpse69369_special_thingy' );
function wpse69369_special_thingy()
{
    if (
        'special_cpt' === get_post_type()
        AND is_singular()
    )
        return print "Yo World!";

    return printf(
        '<p>Nothing to see here! Check the object!<br /></p><pre>%s</pre>',
        var_export( $GLOBALS['wp_query'], true )
    );
}

দেখুন: wpকোডেক্স.ওয়ার্ডপ্রেস.আর.গু এবং wpডেভেলপার.ওয়ার্ডপ্রেস.আর.গিতে


দয়া করে আমাকে বলতে পারেন 'ডাব্লুপি' হুক কখন চালায়?
পৌলমি নাগ

ক) এটি আগে চলে after_setup_themeএবং setup_themeতাই এটি কেবল প্লাগইন বি এর জন্য অ্যাক্সেসযোগ্য) অভ্যন্তরীণ WP :: main(), যা ডাব্লুপি-সেটিংস.এফপি থেকে বলা হয়।
কায়সার

1
@ কাইজার wpহুকের পরে কি হুক আগুন জ্বলে না তাই থিম পাশাপাশি প্লাগইনগুলি অ্যাক্সেসযোগ্য after_setup_themeকরার আগে ? (কেবল স্পষ্ট করার জন্য?)template_redirectwp
আদম

13

ব্যবহারের template_redirectযা কর্ম হুক যে টেমপ্লেট রেন্ডারিং আগে দাবানল;

add_action('template_redirect', 'hooker');
function hooker(){
    //I load just before selecting and rendering the template to screen
}

@ পৌলমিনাগ কোনও সমস্যা নেই, খুশি হলেন আপনি উপরে আপনার উত্তরটি পেয়েছেন। যদিও আমি মনে করি যে একটি ছোট নোট হুকের wpপরে চলে after_theme_setup, সুতরাং এটি কেবল প্লাগইনগুলির দ্বারা অ্যাক্সেসযোগ্য নয়, এটি থিমগুলিতে ব্যবহার করা নিরাপদ করে।
আদম

আমি ঠিক পরীক্ষা করেছি এবং হ্যাঁ; wpপরে চালায় after_theme_setup। তবে আমার প্লাগিনটির জন্য আমার এটি দরকার। সুতরাং wpসেইসাথে template_redirectআমার জন্য উভয় কাজ জরিমানা। আমি যদি এখানে দুটি উত্তর গ্রহণ করতে পারি! :)
পৌলমি নাগ

এটি ঠিক আছে, উভয়কেই গ্রহণ করার প্রয়োজন নেই, কেবল তারা যে আদেশে গুলি চালিয়েছে তা পরিষ্কার করতে চেয়েছিল। নিশ্চিত হয়ে যে আমি পাগল হয়ে যাচ্ছি না আপনি জানেন। আপনার প্লাগইনটির জন্য শুভকামনা ...
আদম

1

পৃষ্ঠাগুলিতে কাস্টম মেটা বক্সগুলি লোড করার জন্য আমি প্রায়শই নীচেরটি ব্যবহার করেছি (কাস্টম পোস্টের চেয়ে)।

    add_action('admin_init','how_we_do_it_meta');

    function how_we_do_it_meta() {

        if ( $_SERVER['SCRIPT_NAME'] == '/wp-admin/post.php' ) {

            $post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'];
            $template_file = get_post_meta($post_id,'_wp_page_template',TRUE);

            if ($template_file == 'page-how-we-do-it.php') {

                add_meta_box('how_we_do_it_who-meta', 'Who we work with...', 'how_we_do_it_who', 'page', 'normal', 'high');

                add_action('save_post', 'save_how_we_do_it_meta');

            }
        }
    }

ধন্যবাদ দারনজ তবে পৃষ্ঠার লোডের সময় সামনের প্রান্তে কাজ করার জন্য আমার কিছু হুক দরকার। কোন ধারনা?
পৌলমি নাগ

যদি আপনি উপরেরটি পরিবর্তন করে থাকেন to add_action('init', // etc)তবে এটি কেবল অ্যাডমিন বিভাগের পরিবর্তে পৃষ্ঠা লোডে কাজ করবে।
darronz

2
@darronz এবং তারপরে আপনাকে ! is_admin()ভিতরে যাচাই করা দরকার , কারণ initহুক দুটি পাশ দিয়ে চলে।
কায়সার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.