Добрый день ув. Форумчане, прошу помощи с задачей. Думаю для вас не сложная будет, а я голову сломал просто.
И так :
Изначально требуется убрать канонические ссылки - нашел.
<?phpfunction Имя темы_html_head_alter(&$head_elements) {
foreach ($head_elements as $key => $element) {
if (isset($element['#attributes']['rel']) && $element['#attributes']['rel'] == 'shortlink') {
unset($head_elements[$key]);
}
}
}
?>
Но ссылки нужно убрать не со всех страниц , а с определенных. Сделал вывод что требуется составить некое условия с проверками на "node/nid" либо некий аргумент в выражение if внути цилка. В этом и заключается вся беда.
Что то вроде такаого (просто наглядный вариант что бы все поняли)
<?php
if ($node->nid == 1 && $node->nid == 2 && $node->nid == 1542) {
//Если айди ноды равно 1
unset($head_elements[$key]);
}?>
Вот, заранее спасибо большое.
Комментарии
Спасибо, но совсем не приближает к ответу. Как я тоьлко не подставлял . У меня просто знаний не хватет. Можете пожалуйсто хотябы пример условия дать? Совсем простое. Спасибо. Потому что я находил только
<?php if (arg(0) == 'node' && is_numeric(arg(1))) {
}
?>Но как только не подставлял, толку 0
Используй девел и dpm проследи все что тебе нужно. Так очень сложно тебе подсказать. Может ты условие не туда вставляешь или еще чего. У тебя получилось убрать ссылки без условий? Может у тебя вообще в этом контексте нет переменной node.
Вопрос почти снят. Результат:
<?php
function bootstrap_html_head_alter(&$head_elements) {
foreach ($head_elements as $key => $element) {
if (isset($element['#attributes']['rel']) && $element['#attributes']['rel'] == 'shortlink' && arg(1) == '3' || isset($element['#attributes']['rel']) && $element['#attributes']['rel'] == 'shortlink' && arg(1) == '1') {
unset($head_elements[$key]);
}
}
}
?>
Осталось только укоротить
<?php
if ((arg(1) == '1' || arg(1) == '3') && isset($element['#attributes']['rel']) && $element['#attributes']['rel'] == 'shortlink')
?>
Спасибо огромнейшое