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

وضعیت: آفلاین
- تعداد ارسال: ۱۸۸
- تاریخ عضویت: ۲۰۱۴/۰۷/۲۶
- آخرین حضور: ۲۰۱۹/۱۲/۰۵
- سمت: کاربر عضو
- موقعیت: نامشخص
وضعیت: آفلاین
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; ?>