كيف يمكنني إزالة هذه العلامات من صفحاتي في Drupal 7؟
<link rel="shortlink" href=" .... " />
<meta name="Generator" content="Drupal 7 (http://drupal.org)" />
<link rel="canonical" href="...." />
تحديث: لدي كود لـ template.php ، الذي يزيل العلامات المنشئة والعلامات الأساسية.
function program_html_head_alter(&$head_elements) {
unset($head_elements['system_meta_generator']);
foreach ($head_elements as $key => $element) {
if (isset($element['#attributes']['rel']) && $element['#attributes']['rel'] == 'canonical') {
unset($head_elements[$key]);
}
}
}
هل يمكن لأي شخص إضافة شيء ما لإزالة علامة الرابط المختصر؟
يتم عرض هذا في html.tpl.php في الرأس $ المتغير. تمت إضافة $ head إلى المتغيرات في template_process_html باستخدام drupal_get_html_head () . في هذه الوظيفة ، يمكنك أن ترى أن hook_html_head_alter () يسمى.
هناك يمكنك إزالة هذه.
ومع ذلك ، لاحظ أن هذه الروابط يمكن أن تكون مهمة لكبار المسئولين الاقتصاديين ، لتجنب أن يعتقد محرك البحث أن لديك محتوى مكرر على موقعك ، على سبيل المثال إذا كانت العقدة متاحة من خلال العقدة/nid والاسم المستعار.
أستخدم الوظيفة التالية في ملف template.php الخاص بي:
/**
* Used to remove certain elements from the $head output within html.tpl.php
*
* @see http://api.drupal.org/api/drupal/modules--system--system.api.php/function/hook_html_head_alter/7
* @param array $head_elements
*/
function YOUR_THEME_NAME_html_head_alter(&$head_elements) {
$remove = array(
'system_meta_generator',
'metatag_canonical',
'metatag_shortlink'
);
foreach ($remove as $key) {
if (isset($head_elements[$key])) {
unset($head_elements[$key]);
}
}
// Use this loop to find out which keys are available.
/* -- Delete this line to execute this loop
echo '<pre>';
foreach ($head_elements as $key => $element) {
echo $key ."\n";
}
echo '</pre>';
// */
}
لقد قمت أيضًا بحل رابط قصير ، modyfying التعليمات البرمجية الخاصة بك.
يمكن لشخص ما أن يرتبها بشكل صحيح ، لأنني لا أعرف كيفية وضعها بشكل صحيح ، ولا إذا كان لها آثار جانبية بهذه الطريقة أم لا. يجعل الروابط غير المرغوب فيها تختفي من الرأس ، على الرغم.
function nameof_mytheme_html_head_alter(&$head_elements) {
unset($head_elements['system_meta_generator']);
foreach ($head_elements as $key => $element) {
if (isset($element['#attributes']['rel']) && $element['#attributes']['rel'] == 'canonical') {
unset($head_elements[$key]);
}
if (isset($element['#attributes']['rel']) && $element['#attributes']['rel'] == 'shortlink') {
unset($head_elements[$key]);
}
}
}
نعم ، إنه موقف الجزار تجاه الروابط الأساسية ، ولكن حتى لا يظهر أي أفضل ، فإن هذا لا يزال أفضل.
هذا هو السبب: أنت بحاجة إلى روابط أساسية تظهر فقط على الصفحات المكررة ، تلك التي ليست الإصدار المفضل. يجب ترك الصفحات الأصلية بمفردها: يجب ألا تظهر أي صفحات أساسية هناك! لهذا السبب ما زلت أذبح.