متا تگ برای قالب خاص

شما اینجا هستید

7 پست / 0 جدید
آخرین ارسال

وضعیت: آفلاین
  • تعداد ارسال: ۱۸۸
  • تاریخ عضویت: ۲۰۱۴/۰۷/۲۶
  • آخرین حضور: ۲۰۱۹/۱۲/۰۵
  • سمت: کاربر عضو
  • موقعیت: نامشخص

سلام، چطور میتونم بدون استفاده از ماژول، یک متاتگ خاص رو در قالب خاص قرار بدم؟
بطور مثال متاتگ:
<meta name="description" content="<?php print $title; ?>">
رو صفحه کامل محتوا یا در قالب page.tpl.php قرار بدم
تشکر


وضعیت: آفلاین
  • نسخه دروپال: 7.99
  • تعداد ارسال: ۲۸۶
  • تاریخ عضویت: ۲۰۱۰/۰۷/۲۴
  • آخرین حضور: ۲۰۱۹/۰۵/۳۱
  • سمت: کاربر عضو
  • موقعیت: اصفهان

html.tpl.php توی قالب


وضعیت: آفلاین
  • تعداد ارسال: ۱۸۸
  • تاریخ عضویت: ۲۰۱۴/۰۷/۲۶
  • آخرین حضور: ۲۰۱۹/۱۲/۰۵
  • سمت: کاربر عضو
  • موقعیت: نامشخص

از این لحاظ مشکلی نیست، اما چطور میتونم برای صفحه خاص قرار بدم؟
مثلا این متاتگ رو میخوام برای محتوای کامل قرار بدم:
<meta name="description" content="<?php print $title; ?>">
با چه دستوری بگم که فقط در محتوای کامل نمایش داده شود؟

از این روش استفاده میکنم ولی فکر میکنم صحیح نیست:
<?php if ($page && $display_submitted): ?>
<meta name="description" content="<?php print $title; ?>">
<?php endif; ?>

این متغیرها در قالب html.tpl.php کارایی ندارند یا من اشتباه میکنم


وضعیت: آفلاین
  • تعداد ارسال: ۸۷۸
  • تاریخ عضویت: ۲۰۰۹/۱۱/۰۱
  • آخرین حضور: ۲۰۲۰/۱۲/۰۴
  • سمت: مدیر کل
  • موقعیت: تهران

در صورتی که منظور شما از محتوای کامل ، صفحه نمایش نودهای دروپالی است میتوانید با دستور شرطی زیر ، در فایل html.tpl.php یا هرجای دیگر در دروپال اینکار را انجام دهید:
<?PHP
if (arg(0) == 'node' && is_numeric(arg(1))) {
// کدهای مورد نظر شما
}
?>


وضعیت: آفلاین
  • تعداد ارسال: ۱۸۸
  • تاریخ عضویت: ۲۰۱۴/۰۷/۲۶
  • آخرین حضور: ۲۰۱۹/۱۲/۰۵
  • سمت: کاربر عضو
  • موقعیت: نامشخص

تشکر بخاطر کدها
اما کدها رو که در قالب مربوطه قرار میدم، صفحه سفید و خطاه میده.
و باید دستور شرطی رو به اینصورت بنویسم:
<?php if (arg(0) == 'node' && is_numeric(arg(1))): ?>
// کدهای مورد نظر شما
<?php endif; ?>

اگر ممکنه دلیلش رو بگید چون قبلآ هم با دستور شرطی به اونصورت مشکل داشتم

و سوال دوم اینکه: مگر متغییر title$ کارش چاپ کردن تیتر صفحه نیست؟ پس چرا وقتی که به اینصورت مینویسم جواب نمیده؟
<?php if (arg(0) == 'node' && is_numeric(arg(1))): ?>
<meta name="description" content="<?php print $title; ?>">
<?php endif; ?>

قصدم اینکه یکسری متاتگها رو برای صفحه اصلی و یکسری رو برای نمایش کامل نودها قرار بدم
تشکر


وضعیت: آفلاین
  • تعداد ارسال: ۱۸۸
  • تاریخ عضویت: ۲۰۱۴/۰۷/۲۶
  • آخرین حضور: ۲۰۱۹/۱۲/۰۵
  • سمت: کاربر عضو
  • موقعیت: نامشخص

در مورد سوال اول اشکال از من بود
باید کدها رو بین "تک کوتیشن" قرار میدادم که به اشتباه بین "دبل کوتیشن" قرار میدادم

فقط سوال دوم رو محبت بفرمایید
تشکر


وضعیت: آفلاین
  • تعداد ارسال: ۸۷۸
  • تاریخ عضویت: ۲۰۰۹/۱۱/۰۱
  • آخرین حضور: ۲۰۲۰/۱۲/۰۴
  • سمت: مدیر کل
  • موقعیت: تهران

مقدار title$ فقط در فایل page.tpl.php دارای مقدار عنوان صفحه و در فایل node.tpl.php دارای عنوان محتوا است و اگر بخواهید آنرا در مکان دیگری استفاده کنید ، نیاز دارید از توابع دروپال مقدار موجود در این متغیر را فراخوانی کنید. بطور مثال اگر title$ همان عنوان محتوای دروپال باشد بصورت زیر عمل کنید:
<?php if (arg(0) == 'node' && is_numeric(arg(1))): ?>
<?PHP
$node = node_load(arg(1));
$title = $node->title;
?>
<meta name="description" content="<?php print $title; ?>">
<?php endif; ?>