ورڈپریس: اپنی مرضی کے مطابق پوسٹ کی قسم کے مواد میں کسٹم فیلڈ کے ساتھ ٹیکسٹ کو کیسے پیش کریں۔
ورڈپریس میں، add_filter()
ایک فنکشن ہے جو کسی کسٹم فنکشن یا موجودہ ورڈپریس فنکشن کو کسی مخصوص فلٹر ایکشن سے منسلک کرنے کے لیے استعمال ہوتا ہے۔ فلٹرز دو قسم کے ہکس میں سے ایک ہیں، دوسرے ایکشن ہیں۔ وہ فنکشنز کو دوسرے فنکشنز کے ڈیٹا میں ترمیم کرنے کا راستہ فراہم کرتے ہیں اور ورڈپریس کے پلگ ان کی فعالیت کا سنگ بنیاد ہیں۔
یہاں کا بنیادی نحو ہے۔ add_filter()
:
add_filter( string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1 )
مواد کے انتظام کے نظام کے طور پر (CMS)، ورڈپریس کو کسی دوسرے پلیٹ فارم کے طور پر ڈیزائن کیا گیا تھا… چاہے وہ صفحہ ہو، پوسٹ ہو، یا یہاں تک کہ ایک حسب ضرورت پوسٹ جس کا عنوان اور مواد ہو۔ لیکن تمام مواد ان دو اختیارات تک محدود نہیں ہے۔ ایک مثال یہ ہے۔ مخفف لائبریری جس پر میں نے تیار کیا ہے۔ Martech Zone. مخفف کے تین عناصر ہوتے ہیں… مخفف خود، تعریف اس سے پتہ چلتا ہے کہ مخفف کا کیا مطلب ہے، اور اس کی وضاحت۔
میں استعمال کرتے ہوئے تعریف کے لئے آسانی سے ایک کسٹم فیلڈ شامل کرنے کے قابل تھا۔ میٹا باکس، لیکن وہ کسٹم فیلڈ پوری سائٹ پر شائع نہیں ہوا ہے۔ ایسا کرنے کا ایک ذریعہ آرکائیو اور سنگل مخفف صفحہ کے لیے ایک حسب ضرورت ٹیمپلیٹ بنانا ہے جہاں میں کسٹم فیلڈ کو نکال سکتا ہوں۔ تاہم، اس کے لیے کافی کام کی ضرورت ہوتی ہے اور جہاں میں وہ معلومات چاہتا ہوں اسے کرنا پڑتا ہے – آرکائیو میں، واحد پوسٹ، اقتباس، اور حسب ضرورت پوسٹ کی قسم کی فیڈ۔
ایک متبادل یہ ہے کہ آپ اپنے تھیم کو استعمال کریں اور اس معلومات کو مواد میں ہی پیش کریں۔ اس معاملے میں، میں صرف ایک مختصر جملہ پیش کرنا چاہتا ہوں: {title} {definition} کا مخفف ہے۔ چونکہ میں کوڈز کے لیے مخفف لائبریری بھی استعمال کرتا ہوں، اس لیے اگر کوڈ عددی ہے تو میں پہلے سے منسلک متن میں بھی ترمیم کرنا چاہتا ہوں: {title} {definition} کا کوڈ ہے۔ یہاں مثالیں ہیں:
0p زیرو پارٹی کا مخفف ہے۔ اور 404 Not Found کا کوڈ ہے۔.
ایسا کرنے کے لیے، میں تصور، اقتباس، فیڈ، اور آر ایس ایس کے لیے add_filter کا استعمال کر سکتا ہوں تاکہ مناسب متن کو آگے بڑھایا جا سکے۔ مزید برآں، میں یہ دیکھنے کے لیے چیک کرتا ہوں کہ آیا مخفف عددی ہے… جس صورت میں یہ ممکنہ طور پر ایک کوڈ ہے۔ (مجھے احساس ہے کہ میں اسے مزید بڑھا سکتا ہوں، لیکن ابھی یہ ٹھیک ہے)۔ کے اندر functions.php میری فائل
بچہ تھیممیں صرف مندرجہ ذیل فنکشن کو شامل کرتا ہوں اور پھر اسے پوری سائٹ پر لاگو کرنے کے لیے مناسب فلٹرز کو کال کرتا ہوں:// Prepend text to the content of 'acronym' posts
add_filter('the_content', 'prepend_text_to_acronym');
add_filter('the_excerpt', 'prepend_text_to_acronym');
add_filter('the_content_feed', 'prepend_text_to_acronym');
add_filter('the_excerpt_rss', 'prepend_text_to_acronym');
function prepend_text_to_acronym($content) {
global $post;
// Check if it's an 'acronym' post
if($post->post_type == 'acronym') {
// Get the post title and the 'acronym_definition' field
$title = get_the_title($post->ID);
$definition = get_post_meta($post->ID, 'acronym_definition', true);
if (is_numeric($title)) {
$new_content = "<p>$title is the code for $definition.</p>";
} else {
$new_content = "<p>$title is the acronym for $definition.</p>";
}
// Prepend the new content to the original content
$content = $new_content . $content;
}
return $content;
}
اب، جب آپ میری دیکھیں مخفف آرکائیو، آپ دیکھیں گے کہ ہر ایک اندراج میں وہ جملہ اقتباس میں شامل ہے۔ اور یہ واحد پوسٹس کے صفحے پر ایک اسٹینڈ پیراگراف ہے۔