it-swarm.asia

كيفية إزالة بعض العلامات الوصفية؟

كيف يمكنني إزالة هذه العلامات من صفحاتي في 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]); 
    }
  }
}

هل يمكن لأي شخص إضافة شيء ما لإزالة علامة الرابط المختصر؟

17
user332

يتم عرض هذا في html.tpl.php في الرأس $ المتغير. تمت إضافة $ head إلى المتغيرات في template_process_html باستخدام drupal_get_html_head () . في هذه الوظيفة ، يمكنك أن ترى أن hook_html_head_alter () يسمى.

هناك يمكنك إزالة هذه.

ومع ذلك ، لاحظ أن هذه الروابط يمكن أن تكون مهمة لكبار المسئولين الاقتصاديين ، لتجنب أن يعتقد محرك البحث أن لديك محتوى مكرر على موقعك ، على سبيل المثال إذا كانت العقدة متاحة من خلال العقدة/nid والاسم المستعار.

11
Berdir

أستخدم الوظيفة التالية في ملف 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>';
    // */
}
5
Fleshgrinder

لقد قمت أيضًا بحل رابط قصير ، 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]);
    }
  }
}

نعم ، إنه موقف الجزار تجاه الروابط الأساسية ، ولكن حتى لا يظهر أي أفضل ، فإن هذا لا يزال أفضل.

هذا هو السبب: أنت بحاجة إلى روابط أساسية تظهر فقط على الصفحات المكررة ، تلك التي ليست الإصدار المفضل. يجب ترك الصفحات الأصلية بمفردها: يجب ألا تظهر أي صفحات أساسية هناك! لهذا السبب ما زلت أذبح.

4
Levente