- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем доброго времени суток! У меня возникла проблема с шаблоном на вордпресс. Решил обновить PHP5.6 на PHP7.2
Проверил совместимость плагином PHP Compatibility Checker, плагины все совместимы, вылезла ошибка только в шаблоне сайта, в файле functions.php
Ошибка в строке: 880 | ERROR | Using 'break' outside of a loop or switch structure is invalid and will throw a fatal error since PHP 7.0
Помогите исправить ошибку.
Код:
function theme_get_adjacent_image_link($prev = true, $size = 'thumbnail', $text = false) {
global $post;
$post = get_post($post);
$attachments = array_values(get_children(array('post_parent' => $post->post_parent, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID')));
foreach ($attachments as $k => $attachment)
if ($attachment->ID == $post->ID)
break;
$k = $prev ? $k - 1 : $k + 1;
if (isset($attachments[$k]))
return wp_get_attachment_link($attachments[$k]->ID, $size, true, false, $text);
}
Пронумерованный код:
873: function theme_get_adjacent_image_link($prev = true, $size = 'thumbnail', $text = false) {
874: global $post;
875: $post = get_post($post);
876: $attachments = array_values(get_children(array('post_parent' => $post->post_parent, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID')));
877:
878: foreach ($attachments as $k => $attachment)
879: if ($attachment->ID == $post->ID)
880: break;
881:
882: $k = $prev ? $k - 1 : $k + 1;
883:
884: if (isset($attachments[$k]))
885: return wp_get_attachment_link($attachments[$k]->ID, $size, true, false, $text);
886: }
foreach ($attachments as $k => $attachment)
if ($attachment->ID == $post->ID)
break;
на
foreach ($attachments as $k => $attachment){
if ($attachment->ID == $post->ID)
{
break;
}
}
Плагин глупый, читать не умеет.
Плагин глупый, читать не умеет.
Возможно, но за такой стиль написания, я бы руки отрывал 🤪
Вам дай волю - кругом одни венеры милосские ходили бы. 😂
То за тернарные операторы руки отрывали бы, то за пропуск фигурных скобок. А мне нравится, чего церемонии разводить:
PS: В 2 строчки, как у ТС, не нравится, но вот Битрикс весь так написан.
Возможно, но за такой стиль написания, я бы руки отрывал 🤪
😮🤪
---------- Добавлено 02.02.2019 в 02:15 ----------
foreach ($attachments as $k => $attachment)
if ($attachment->ID == $post->ID)
break;
на
foreach ($attachments as $k => $attachment){
if ($attachment->ID == $post->ID)
{
break;
}
}
Спасибо за помощь, ошибки, как и не бывало!
Только 3 предупреждения осталось одинаковых. Такого типа:
Строка: 128, 207,253 | WARNING | Use of deprecated PHP4 style class constructor is not supported since PHP 7.
------------------------------------------------------------------------------
Файл: widgets.php
class VMenuWidget extends WP_Widget {
128: function VMenuWidget() {
$widget_ops = array('classname' => 'vmenu', 'description' => __('Use this widget to add one of your custom menus as a widget.', THEME_NS));
parent::WP_Widget(false, __('Vertical Menu', THEME_NS), $widget_ops);
}
-------------------------------------------------------------------------------
Файл: widgets.php
class LoginWidget extends WP_Widget {
207: function LoginWidget() {
$widget_ops = array('classname' => 'login', 'description' => __('Login form', THEME_NS));
$this->WP_Widget(false, __('Login', THEME_NS), $widget_ops);
}
--------------------------------------------------------------------------------
Файл: navigation.php
class theme_MenuItem {
var $id;
var $active;
var $parent;
var $attr;
var $title;
253: function theme_MenuItem($args = '') {
$args = wp_parse_args($args, array(
'id' => '',
'active' => false,
'parent' => 0,
'attr' => '',
'title' => '',
)
);
$this->id = $args['id'];
$this->active = $args['active'];
$this->parent = $args['parent'];
$this->attr = $args['attr'];
$this->title = $args['title'];
}
function get_start($level) {
$class = theme_get_array_value($this->attr, 'class', '');
$class = 'menu-item-' . $this->id . (strlen($class) > 0 ? ' ' : '') . $class;
$this->attr['class'] = ($this->active ? 'active' : null);
$title = strip_tags(apply_filters('the_title', $this->title, $this->id));
if (theme_get_option('theme_menu_trim_title')) {
$title = theme_trim_long_str($title, theme_get_option($level == 0 ? 'theme_menu_trim_len' : 'theme_submenu_trim_len'));
}
return str_repeat("\t", $level + 1)
. '<li' . theme_prepare_attr(array('class' => $class)) . '>'
. '<a' . theme_prepare_attr($this->attr) . '>'
. $title
. '</a>' . "\n";
}
--------------------------------------------------------------------------------
Или на придуприждения можно внимания не обращать при переходе на PHP7.2?
---------- Добавлено 02.02.2019 в 02:45 ----------
Файл: widgets.php
----------------------------
А если вот так сделать?
class LoginWidget extends WP_Widget {
207: function LoginWidget() {
$widget_ops = array('classname' => 'login', 'description' => __('Login form', THEME_NS));
$this->WP_Widget(false, __('Login', THEME_NS), $widget_ops);
}
Поменять на:
class LoginWidget extends WP_Widget {
207: function __construct() {
$widget_ops = array('classname' => 'login', 'description' => __('Login form', THEME_NS));
$this->WP_Widget(false, __('Login', THEME_NS), $widget_ops);
}
Так правильно будит?
Вам дай волю - кругом одни венеры милосские ходили бы. 😂
То за тернарные операторы руки отрывали бы, то за пропуск фигурных скобок. А мне нравится, чего церемонии разводить:
PS: В 2 строчки, как у ТС, не нравится, но вот Битрикс весь так написан.
Всё просто. У меня ей свой стиль и мне с ним удобно, писать и анализировать код :)
p.s. Про битрикс не нужно мне, у меня жена периодически занимается связью 1с и битрикс... короче у меня есть верный помощник по обламыванию рук 😂
---------- Добавлено 02.02.2019 в 10:34 ----------
Да, должно т.к. нельзя называть класс и функцию одинаково.
А может вернуться к ранней версии пхп? если конечно плагины будут работать
Эт чё, в 7+ запретили такую удобную фичку, чтоб без скобок короткие выражения писать? Сцуки.
Эт чё, в 7+ запретили такую удобную фичку, чтоб без скобок короткие выражения писать? Сцуки.
Нет, это PHP Compatibility Checker не понимает такое 🍿
Нет, это PHP Compatibility Checker не понимает такое 🍿
Тьфу, отлегло.