Пользовательские функции php. Задачи. — HTMLLab
Полярная крачка
Задачи по созданию пользовательских функций в PHP охватывают следующие вопросы: создание функций в PHP (описание функций), вызов функций, работа с аргументами функций в PHP, учёт области видимости. Хорошей практикой является одновременное знакомство с функциями реализованными в CMS (пусть не сразу все будет понятно, но можно будет сравнить код опытных разработчиков со своим).
Пользовательские функции php.
- Создать функцию в PHP — getPlus10(), которая будет принимать число и распечатывать сумму этого числа и 10.
- Изменить функцию из предыдущего задания: она должна возвращать сумму, а не сразу выводить.
- Напишите функцию pythagoras(), которая принимает значения двух катетов прямоугольного треугольника и возвращает размер гипотенузы этого прямоугольного треугольника. Примечание: может пригодиться встроенная PHP-функция pow().
- * Создать функцию, которая находит ипотечный платеж
- Создайте функцию col(), которая распечатает количество переданных аргументов. Например: col(12,6,123) должна распечатать число 3.
- Создайте функцию, которая посчитает среднее значение всех целочисленных аргументов
- * Напишите функцию, которая принимает неограниченное количество числовых аргументов и строит столбчатую диаграмму. На каждому столбце указываются величины из аргументов. Примечание: это задание сформулировано по аналогии с заданием по созданию функций в JavaScript http://htmllab.ru/zadachi-po-javascript-function/
- Напишите функцию op(), которая принимает три аргумента: $num1 и $num2 – числовые, $operator – символ, обозначающий операцию.
Функция должна возвращать результат выполнения оператора $operator над $num1 и $num - * Создайте две функции add() и sub(), которые принимают пару аргументов и возвращают сумму и разницу соответственно. Создайте функцию op2(), которая принимает два числовых аргумента $num1 и $num2, и третий строковый вызываемый аргумент (callable)
- Создайте функцию, которая при помощи статических переменных будет выполнять основную работу только один раз
Посмотреть другие задания по PHP
Урок 19. Функции в языке программирования php
Именно функция в php является ключом к эффективному программированию. Благодаря функциям код веб-приложений становится структурированным и пригодным для многократного использования. В любом среднем или большом проекте используются пользовательские php функции. Всего в php существует 2 вида функций: встроенные и пользовательские. В последующих уроках мы рассмотрим их различия, а также такие вопросы как: что такое функция, как создать функцию, как вызвать функцию, как переменной присвоить результат функции, области видимости, рекурсия, статические переменные, встроенные функции, создание и работа с библиотеками функций.
Итак, что такое функция?
Функция – это что-то вроде черного ящика, в который разработчик отправляет определенные данные и получает на выходе нужный результат. Такой черный ящик можно использовать много раз, главное – чтобы он отвечал нужным требованиям. Функция представляет собой независимый фрагмент скрипта, у которого уникальное имя, и который решает конкретные задачи. Понятие функции в php находиться очень близко к понятию подпрограммы в некоторых языках программирования.
Представим ситуацию, когда у нас есть необходимость 10 раз осуществить однотипные вычисления. Конечно можно 10 раз повторить в программе код, выполняющий эти вычисления, но гораздо более удобным будет выделение этого скрипта в отдельную именованную часть программы и обращение к ней при необходимости. Таким образом мы сэкономим место, и наше время, так как изменения в программу можно будет вносить более оперативно.
Характерные свойства функции в php:
1. Имя: функциям присваиваются уникальные имена в соответствии с правилами именования идентификаторов в языке программирования php.
2. Аргументы: это определенные величины (строк, числа…), которые передаются в функции для обработки как исходные данные. Без аргументов функции не были бы такими мощными инструментами (они работали бы только с фиксированными значениями). Аргументы используются не во всех функциях, некоторые могут работать без входных данных.
3. Обособленность: функция в php – это черный ящик, который существует отдельно от основного скрипта и вызывается в случае необходимости.
4. Конкретное назначение: хорошей, как правило, является функция, которая решает конкретную задачу. Неэффективной в большинстве случаев будет функция, решающая несколько задач.
5. Возвращение значения: данное свойство встречается не во всех функциях. После обработки данных функция может вернуть результат, а может выполнить определенное действие, например, вывести на экран какую-то фразу.
php — Пользовательские пользовательские функции Laravel
Что и как было бы лучшим способом создания пользовательских функций для использования в представлениях? Я новичок в Laravel, и я не мог понять даже после долгих поисков.
Вот как я сейчас проверяю, является ли пользователь администратором в моем представлении, например:
@if (Auth::user()->group === "admin")
<p>You're an admin</p>
@endif
Что мне нужно сделать, чтобы сделать это функцией, чтобы я мог сделать что-то вроде этого?
@if (Auth::user()->isAdmin) <p>You're an admin</p> @endif
0
user5203771 7 Сен 2015 в 14:17
2 ответа
Лучший ответ
В вашей модели User
добавьте следующий метод:
public function inGroup($name)
{
return $this->group == $name;
}
Теперь в ваших шаблонах вы можете:
@if(Auth::user()->inGroup('admin'))
<!-- User is in the 'admin' group -->
@endif
Обратите внимание, насколько естественно это читается:
По мере масштабирования приложения вы можете сохранить этот единственный метод вместо того, чтобы определять несколько методов для проверки группы пользователя (isAdmin, isSubscriber, isPremium и т. Д.).
1
Amo 7 Сен 2015 в 13:23
Поскольку Auth::user()
возвращает экземпляр модели
, вы можете просто добавить туда метод:
// this is in the User class
public function isAdmin()
{
return $this->group == "admin";
}
А потом назовите это так:
@if (Auth::user()->isAdmin())
<p>You're an admin</p>
@endif
1
Joel Hinz 7 Сен 2015 в 11:24
Пользовательские функции в VBA для Excel
Функция представляет собой группу повторно используемого кода , который может быть вызван в любом месте в вашей программе.
Помимо встроенных функций, VBA также позволяет писать пользовательские функции. В этой статье вы узнаете, как писать свои собственные функции в VBA.
Определение функции
Функция VBA может иметь необязательный оператор return. Это необходимо, если вы хотите вернуть значение из функции.
Например, вы можете передать два числа в функции, а затем вы можете ожидать от функции возврата своего умножения в вашу вызывающую программу.
Примечание . Функция может возвращать несколько значений, разделенных запятой, как массив, назначенный самому имени функции.
Прежде чем использовать функцию, нам нужно определить эту конкретную функцию. Наиболее распространенным способом определения функции в VBA является использование ключевого слова Function , за которым следует уникальное имя функции, и оно может содержать или не содержать список параметров и оператор с ключевым словом End Function , который указывает конец функции. Ниже приведен базовый синтаксис.
Синтаксис
Добавьте кнопку и добавьте следующую функцию.
Function Functionname(parameter-list) statement 1 statement 2 statement 3 ....... statement n End Function
Пример
Добавьте следующую функцию, которая возвращает область. Обратите внимание, что значение / значения могут быть возвращены с именем самой функции.
Function find_area(Length As Double, Optional Width As Variant) If IsMissing(Width) Then find_area = Length * Length Else find_area = Length * Width End If End Function
Вызов функции
Чтобы вызвать функцию, вызовите функцию, используя имя функции, как показано на следующем снимке экрана.
Вывод области, как показано ниже, будет отображаться пользователю.
С уважением, авторы сайта Компьютерапия
Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!
Функции для работы с массивами | Руководство по PHP
Содержание
- array_change_key_case — Меняет регистр всех ключей в массиве
- array_chunk — Разбивает массив на части
- array_column — Return the values from a single column in the input array
- array_combine — Создает новый массив, используя один массив в качестве ключей, а другой в качестве соответствующих значений
- array_count_values — Подсчитывает количество всех значений массива
- array_diff_assoc — Вычисляет расхождение массивов с дополнительной проверкой индекса
- array_diff_key — Вычисляет расхождение массивов, сравнивая ключи
- array_diff_uassoc — Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
- array_diff_ukey — Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей
- array_diff — Вычислить расхождение массивов
- array_fill_keys — Создает массив и заполняет его значениями, с определенными ключами
- array_fill — Заполняет массив значениями
- array_filter — Фильтрует элементы массива с помощью callback-функции
- array_flip — Меняет местами ключи с их значениями в массиве
- array_intersect_assoc — Вычисляет схождение массивов с дополнительной проверкой индекса
- array_intersect_key — Вычислить пересечение массивов, сравнивая ключи
- array_intersect_uassoc — Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
- array_intersect_ukey — Вычисляет схождение массивов, используя callback-функцию для сравнения ключей
- array_intersect — Вычисляет схождение массивов
- array_key_exists — Проверяет, присутствует ли в массиве указанный ключ или индекс
- array_keys — Возвращает все или некоторое подмножество ключей массива
- array_map — Применяет callback-функцию ко всем элементам указанных массивов
- array_merge_recursive — Рекурсивное слияние двух или более массивов
- array_merge — Сливает один или большее количество массивов
- array_multisort — Сортирует несколько массивов или многомерные массивы
- array_pad — Дополнить размер массива определенным значением до заданной величины
- array_pop — Извлекает последний элемент массива
- array_product — Вычислить произведение значений массива
- array_push — Добавляет один или несколько элементов в конец массива
- array_rand — Выбирает одно или несколько случайных значений из массива
- array_reduce — Итеративно уменьшает массив к единственному значению, используя callback-функцию
- array_replace_recursive — Рекурсивно заменяет элементы первого массива элементами переданных массивов
- array_replace — Замена элементов массива элементами других переданных массивов
- array_reverse — Возвращает массив с элементами в обратном порядке
- array_search — Осуществляет поиск данного значения в массиве и возвращает соответствующий ключ в случае удачи
- array_shift — Извлекает первый элемент массива
- array_slice — Выбирает срез массива
- array_splice — Удаляет часть массива и заменяет её чем-нибудь ещё
- array_sum — Вычисляет сумму значений массива
- array_udiff_assoc — Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
- array_udiff_uassoc — Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
- array_udiff — Вычисляет расхождение массивов, используя для сравнения callback-функцию
- array_uintersect_assoc — Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
- array_uintersect_uassoc — Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений callback-функцию
- array_uintersect — Вычисляет пересечение массивов, используя для сравнения значений callback-функцию
- array_unique — Убирает повторяющиеся значения из массива
- array_unshift — Добавляет один или несколько элементов в начало массива
- array_values — Выбирает все значения массива
- array_walk_recursive — Рекурсивно применяет пользовательскую функцию к каждому элементу массива
- array_walk — Применяет заданную пользователем функцию к каждому элементу массива
- array — Создает массив
- arsort — Сортирует массив в обратном порядке, сохраняя ключи
- asort — Сортирует массив, сохраняя ключи
- compact — Создает массив, содержащий названия переменных и их значения
- count — Подсчитывает количество элементов массива или что-то в объекте
- current — Возвращает текущий элемент массива
- each — Возвращает текущую пару ключ/значение из массива и смещает его указатель
- end — Устанавливает внутренний указатель массива на его последний элемент
- extract — Импортирует переменные из массива в текущую таблицу символов
- in_array — Проверяет, присутствует ли в массиве значение
- key_exists — Псевдоним array_key_exists
- key — Выбирает ключ из массива
- krsort — Сортирует массив по ключам в обратном порядке
- ksort — Сортирует массив по ключам
- list — Присваивает переменным из списка значения подобно массиву
- natcasesort — Сортирует массив, используя алгоритм «natural order» без учета регистра символов
- natsort — Сортирует массив, используя алгоритм «natural order»
- next — Передвигает внутренний указатель массива на одну позицию вперёд
- pos — Псевдоним current
- prev — Передвигает внутренний указатель массива на одну позицию назад
- range — Создает массив, содержащий диапазон элементов
- reset — Устанавливает внутренний указатель массива на его первый элемент
- rsort — Сортирует массив в обратном порядке
- shuffle — Перемешивает массив
- sizeof — Псевдоним count
- sort — Сортирует массив
- uasort — Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей
- uksort — Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей
- usort — Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов
Вернуться к: Массивы
Глобальные, локальные, статические переменные PHP
Глобальные переменные — это переменные, которые доступны всей программе, включая подпрограммы (пользовательские функции).
Локальные переменные — переменные, определенные внутри подпрограммы (пользовательской функции). Они доступны только внутри функции, в которой они определены.
Для PHP все объявленные функции изначально являются локальными, то есть, по умолчанию нет возможности изменить значение глобальной переменной в теле функции.
Если в теле пользовательской функции использовать переменную, которая совпадает с именем глобальной переменной(находящейся вне пользовательской функции), то ничего общего она не будет иметь с этой глобальной переменной. В данной ситуации в пользовательской функции будет создана локальная переменная, совпадающая с именем глобальной переменной, но доступна данная локальная переменная будет только внутри этой пользовательской функции.
Рассмотрим на примере:
<?php $a = 100; function funct() { $a = 70; echo "<h5>$a</h5>"; } funct(); echo "<h3>$a</h3>"; ?>
Сценарий сначала выведет 70, а потом 100.
Чтобы избавиться от данной проблемы, в PHP существует специальная инструкция global
. Она позволяет пользовательской функции работать с глобальными переменными. Ниже приведёт пример:
<?php $a = 1; $b = 2; function Sum() { global $a, $b; $b = $a + $b; } Sum(); echo $b; ?>
Скрипт выведет «3». После определения $a и $b внутри функции как global все ссылки на любую из этих переменных будут указывать на их глобальную версию. Не существует никаких ограничений на количество глобальных переменных, которые могут обрабатываться пользовательскими функциями.
Второй способ доступа к переменным глобальной области видимости — использование специального, определяемого PHP массива $GLOBALS. Предыдущий пример может быть переписан так (использование $GLOBALS вместо global):
<?php $a = 1; $b = 2; function Sum() { $GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"]; } Sum(); echo $b; ?>
$GLOBALS — это ассоциативный массив, ключом которого является имя, а значением — содержимое глобальной переменной. Обратите внимание, что $GLOBALS существует в любой области видимости, это объясняется тем, что этот массив является суперглобальным. Ниже приведен пример, демонстрирующий возможности суперглобальных переменных:
function test_global() { // Большинство предопределенных переменных не являются // "супер" и чтобы быть доступными в локальной области // видимости функции требуют указания 'global'. global $HTTP_POST_VARS; echo $HTTP_POST_VARS['name']; // Суперглобальные переменные доступны в любой области // видимости и не требуют указания 'global'. // Суперглобальные переменные доступны, начиная с PHP 4.1.0 echo $_POST['name']; } ?>
Переменная, объявленная внутри пользовательской функции, считается локальной; другими словами, на нее можно ссылаться только в этой функции. Любое присваивание вне функции не имеет ничего общего с переменной, объявленной внутри функции. При выходе из пользовательской функции, в которой была объявлена локальная переменная, эта переменная и ее значение уничтожаются.
Основное достоинство локальных переменных — отсутствие непредвиденных ситуаций, связанных со случайной или намеренной модификацией глобальной переменной. Рассмотрим следующий пример:
<?php $a = 1; /* глобальная область видимости */ function Test() { echo $a; /* ссылка на переменную локальной области видимости */ } Test(); ?>
Этот скрипт не сгенерирует никакого вывода, поскольку выражение echo указывает на локальную переменную $a, а в пределах локальной области видимости ей не не было присвоено значение.
Подход к области видимости в PHP отличается от языка C в том, что глобальные переменные в C автоматически доступны функциям, если только они не были перезаписаны локальным определением. В PHP, если глобальная переменная будет использоваться внутри функции, она должна быть объявлена глобальной внутри нее:
<?php $a = 1; /* глобальная область видимости */ function Test() { global $a; /* Объявляем переменную $a глобальной */ echo $a; /* ссылка на переменную локальной области видимости */ } Test(); ?>
В результате работы скрипта функция test() возвратит «1», поскольку мы объявили переменную $a глобальной, то есть, сделали переменную $a доступной для всей программы (скрипта).
Кроме глобальных и локальных переменных, в PHO существует ещё один тип переменных — статические переменные.
Статическая переменная существует только в локальной области видимости функции, но не теряет своего значения, когда выполнение программы выходит из этой области видимости.
Рассмотрим примеры объявления статических переменных:
<?php function funct(){ static $int = 0; // верно static $int = 1+2; // неверно (поскольку это выражение) static $int = sqrt(121); // неверно (поскольку это тоже выражение) $int++; echo $int; } ?>
Пример работы пользовательской функции, содержащей статические переменные:
<?php function funct() { static $a; $a++; echo "$a"; } for ($i = 0; $i++<10;) funct(); ?>
Данный сценарий выводит строку:
1 2 3 4 5 6 7 8 9 10
Если мы удалим инструкцию static, будет выведена строка:
1 1 1 1 1 1 1 1 1 1
Это связано с тем, что переменная $a будет удаляться при завершении работы функции и обнуляться при каждом ее вызове. Переменная $a инкрементируется сразу после обнуления, а только потом выводится.
Почему не следует использовать functions.php (и что следует делать вместо этого)
Вы встречали руководства по WordPress, в которых вас просили добавить код в файл functions.php , чтобы что-то сделать? Не делай этого! Прочтите ниже и узнайте, почему…
Я считаю, что людей, использующих WordPress, можно разделить на три широких лагеря:
- Plug and player: энтузиастов WordPress, которые, вероятно, не являются опытными дизайнерами веб-сайтов и ищут готовое решение.Они найдут тему, установят ее и, возможно, займутся созданием контента.
- Твикеров: Эти люди возьмут тему, которую, вероятно, можно было бы использовать прямо из коробки, и применит свои собственные настройки. Они, вероятно, будут использовать файлы custom.css и custom_functions.php (или аналогичные) для настройки своей темы. Они возьмут готовый вариант и возятся с ним, пока не получат что-то, что (а) соответствует их потребностям, и (б) выглядит уникально.
- Фреймворки: Обычно это разработчики, которые начинают с фреймворка темы, который предлагает очень немногое помимо, как вы уже догадались, фреймворка, на котором может располагаться контент. Через несколько часов или дней они создадут что-то по-настоящему уникальное и приспособленное к своим или конкретным потребностям клиента.
Если бы я догадался, я бы сказал, что самый большой лагерь из трех — это твикеры .
И давайте посмотрим правде в глаза: WordPress — рай для твикеров .Вооруженный не чем иным, как поиском Google и файлом functions.php , WordPress позволяет относительно легко добавлять разнообразные функции на ваш сайт.
Проблема только в том, что многие твикеры играют с огнем. Использование functions.php для добавления функциональности на ваш сайт может быть случайностью, ожидающей своего часа (по нескольким причинам). В этой статье я объясню почему и предложу вам несколько более эффективных альтернатив.
Добавьте функциональность на свой сайт WordPress, но не с помощью своих функций.php файл.Как работает WordPress
В основе WordPress лежит простой принцип: дизайн и функциональность должны (по возможности) быть четко разделены.
Вот почему у нас есть темы и плагины; якобы темы несут единоличную ответственность за дизайн, а плагины несут единоличную ответственность за функциональность. Следует иметь возможность переключать темы, не влияя на функциональность, и можно отключать плагины, не влияя на дизайн.
Это не всегда (некоторые из причин, о которых я вскоре расскажу), но разделение дизайна и функциональности — идеал, к которому должен стремиться любой достойный разработчик WordPress.
PHP против functions.php
Новички WordPress часто путаются и задают такие вопросы, как:
- Где функции PHP в WordPress?
- Что делает PHP в WordPress?
- Как добавить функцию к функции PHP в WordPress?
- Требуется ли PHP-файл функций в каждой теме?
Во-первых, PHP можно встретить в WordPress повсюду, поскольку это основной язык, на котором построен WordPress. В этом посте мы не рассматриваем, что делает PHP в WordPress, но вы можете прочитать все об этом в нашей серии руководств по изучению PHP для начинающих разработчиков WordPress.
functions.php — это файл для конкретной темы, я имею в виду, что он существует в каталоге темы WordPress и относится только к этой теме. Каждая тема должна иметь файл functions.php , расположенный внутри папки темы.
Для каждой темы WordPress требуется файл functions.php, который находится внутри каталога темы.Вы можете узнать больше о файле functions.php, о том, что он делает и как добавлять функции, в нашем полном руководстве по функциям WordPress.php файл.
Итак, где же здесь functions.php?
Как можно догадаться по названию, functions.php содержит функции, относящиеся к теме, примеры которых:
- Использование избранных изображений
- Объем отрывков
- Виджетизированные площади
Эти типы функций являются исключениями, которые подтверждают правило разделения дизайна и функциональности WordPress. Хотя они являются элементами функциональности , они актуальны только для своей родительской темы и могут не подходить при применении к другой теме.Таким образом, они принадлежат functions.php и должны оставаться там.
Например, отрывок из 200 слов может выглядеть фантастически по одной теме, но ужасно по другой. Хотя технически мы играем с «функциональностью» сайта, регулируя длину выдержки, включая необходимый код в functions.php, — это то, что нужно сделать.
Я не собираюсь вдаваться в подробности эффективного использования functions.php в этой статье, но сейчас стоит упомянуть, что если вы собираетесь включить в свой сайт множество специфичных для темы функций, вам следует подумать о создании каталога inc внутри вашей темы (или использования уже существующего каталога, если он уже существует), чтобы обеспечить некоторую организацию среди функций вашей темы.Вот отличное чтение от разработчика WordPress Тома МакФарлина на эту тему, если вы хотите пойти дальше по этому пути.
Моя последняя точка зрения такова: functions.php не враг . Это ценный винтик в движке темы; необходимо для всех, кроме самых простых дизайнов.
Однако неправильное использование functions.php широко распространено и должно быть остановлено.
Когда вам
не следует Используйте functions.phpПростой ответ на вопрос, когда следует использовать функций.php — «почти никогда».
Чуть более сложный ответ — «используй свою башку».
Если вы понимаете, для чего предназначен functions.php (функциональность, строго связанная с определенной темой), вы сможете понять, для чего он не .
Простые примеры можно найти в каталоге плагинов вашего сайта WordPress. Плагины (в идеале) представляют собой логически организованные «пакеты» кода, разделенные по их предполагаемой функциональности.
Одним из лучших (и более значительных) примеров разделения функциональности и дизайна в WordPress является код отслеживания Google Analytics, который выглядит так:
Этот код необходимо добавить в раздел head вашего сайта, чтобы отслеживать посещения.
У вас есть три основных варианта добавления этого кода:
- Добавьте его вручную в файл header.php вашей темы
- Добавьте его вручную в свой functions.php (используя ловушку)
- Используйте плагин
Если вы используете первый или второй варианты, ваш код отслеживания исчезнет, если вы измените тему, и Google больше не будет учитывать посетителей. (Он также может исчезнуть при следующем обновлении вашей темы.) Но если вы используете третий вариант (я рекомендую использовать собственный Google Analytics + WPMU DEV), вы золотые.Если у вас не будет старшего момента и вы не отключите плагин, который вы используете, этот код отслеживания никуда не денется.
Мой простой совет: Если есть сомнения, используйте плагин . Они популярны не зря.
Почему не следует использовать functions.php
Объясняя «когда» выше, я также пошел справедливым путем, объяснив «почему»: Не используйте functions.php , потому что изменение вашей темы изменит функциональность вашего сайта, а это все виды неправильно .
Тем не менее, есть еще пара важных моментов, которые я должен сделать, чтобы еще больше усилить причины, по которым следует максимально избегать functions.php .
Во-первых, ужасный «белый экран смерти». Откровенно говоря, если вы никогда не сталкивались с этим, когда возились с WordPress, вы не жили. Или, по крайней мере, вы были гораздо осторожнее меня, когда впервые начали возиться с WordPress.
Я чувствую, что на данном этапе нам нужен снимок экрана, чтобы прояснить, как на самом деле выглядит этот белый экран смерти:
Ага … «Белый экран смерти» WordPress отображает полностью пустой экран.Страшно. Но что это значит?
Что ж, говоря по-английски королевы, человек сталкивается с белым экраном смерти, когда поднимает PHP.
Другими словами, вы облажались.
Другими словами, синтаксические ошибки в коде PHP, вставленном в functions.php , могут «сломать» ваш сайт, в результате чего вы не увидите ничего, кроме белого экрана. (Не спрашивайте меня, где здесь «смерть». Насколько я знаю, никто не пострадает.)
Когда вы столкнетесь с белым экраном смерти, лучше, если вы редактируете свой сайт через FTP или онлайн-среду IDE (например, ShiftEdit), а не через серверную часть WordPress, иначе у вас возникнут проблемы с возвращением на свой сайт.Кроме того, вы получите от меня пощечину за использование серверной части WordPress. Непослушный.
Но я отвлекся. Я подхожу к следующему: размещение вашего PHP-кода в плагине может предотвратить появление белого экрана смерти . Вместо этого WordPress может деактивировать нарушающий плагин, не оказывая отрицательного воздействия на продолжающуюся работу сайта в целом.
Во-вторых, использование functions.php просто беспорядочно, если вы планируете вставить больше, чем горстку кода; особенно, если тема, которую вы используете, уже имеет существующие функции.
В-третьих, и как я уже упоминал выше, код в functions.php зависит от темы (т.е. не будет перемещаться при изменении темы) и может быть перезаписан обновлениями темы.
Все это нехорошо и должно убедить вас, что functions.php — не то место, где вы хотите разместить свой код в большинстве случаев. Конечно; оставьте все, что есть по умолчанию, как есть (при условии, что разработчик темы включил только функции, специфичные для темы), но любой новый код, который вы добавляете, скорее всего, будет честной игрой.
Так что же вы делаете вместо этого?
Ну, как оказалось, у вас есть 3 варианта:
- Добавьте его в functions.php дочерней темы
- Используйте плагин пользовательских функций WordPress
- Создайте свой собственный плагин
Давайте кратко рассмотрим каждый из этих вариантов:
Используйте свою дочернюю тему functions.php
Вы всегда должны использовать дочерние темы с WordPress. Особенно, если вы планируете вносить какие-либо изменения в свою тему.Таким образом, вы не потеряете ни один индивидуальный дизайн или модификации при обновлении основной (то есть родительской) темы вашего сайта.
Если вы хотите, например, перенести стиль из родительской темы в дочернюю, вам придется поместить его в очередь в файле functions.php вашей дочерней темы. Если в вашей дочерней теме его нет, вам нужно будет создать для нее файл functions.php.
Если вам необходимо использовать стержень, не жалейте дочернюю тему functions.phpЕсли вам нужно добавить код к функциям .php , сделайте это в functions.php вашей дочерней темы.
Обратите внимание, однако, что это не рекомендуемое решение и может привести к ошибкам. Есть альтернатива получше… используйте плагин!
Используйте плагин WordPress для Functions.php
Лучшим вариантом, чем добавление кода непосредственно в файл functions.php, является использование плагина пользовательских функций WordPress.
Плагин My Custom Functions для WordPressMy Custom Functions — отличный бесплатный плагин для функциональных возможностей WordPress, который позволяет легко добавлять пользовательский код PHP на ваш веб-сайт WordPress, не редактируя функции .php вашей темы или любого из ваших файлов плагинов.
Чтобы установить плагин, перейдите в Plugins> Add New в меню панели инструментов, введите «мои пользовательские функции» в поле поиска по ключевым словам, найдите плагин «My Custom Functions» от Space X-Chimp и нажмите Установить сейчас , затем Активировать …
Установите и активируйте плагин WordPress My Custom Functions.После активации плагина в меню настроек WordPress появляется новый пункт.Чтобы добавить пользовательские функции в WordPress, выберите PHP Inserter в меню «Настройки».
Мои пользовательские функции Меню WordPressПоявляется экран «Мои пользовательские функции». Просто добавьте свой собственный PHP-код в поле, нажмите «Сохранить» и включите функцию, и плагин автоматически добавит ваш PHP-код на ваш сайт, не изменяя ни один из файлов вашей темы и не замедляя работу вашего сайта.
Добавляйте пользовательские функции в WordPress с помощью плагина My Custom Functions.
Этот плагин работает независимо от установленной вами темы, поэтому вы можете использовать его с любой темой, даже если в теме нет файла functions.php .
Преимущество этого метода заключается в том, что любой код, который вы добавляете на свой сайт WordPress с помощью этого плагина, останется неизменным, если вы измените содержимое файла functions.php темы или даже если вы измените свою тему. Это также работает для плагинов, поэтому ваш собственный PHP-код не будет перезаписан, даже если вы обновите или переключите темы или плагины.
Есть еще один вариант добавления кода на ваш сайт WordPress, не затрагивая файл functions.php вашей темы.
Прекрасная альтернатива: создайте свой собственный плагин
Если вы занимаетесь настройкой WordPress и никогда раньше не создавали собственный плагин, вас простят за то, что вы подумаете, что это связано с каким-то сложным и загадочным процессом. Возможно, потребуется какое-то заклинание.
К счастью, это не так. Если вы знаете, как редактировать файл functions.php (через FTP или онлайн-среду IDE), у вас уже есть необходимые навыки для создания плагина для всего кода, который вы в противном случае поместили бы в functions.php.
Итак, приступим.
Во-первых, перейдите в корневую папку вашего веб-сайта WordPress через FTP (или через файловый менеджер панели хостинга, или через онлайн-среду IDE). Оттуда вы должны перейти к wp-content / plugins :
Папки каталога WordPress
Папки, которые вы видите в каталоге плагинов, — это (как вы можете себе представить) плагины, установленные в настоящее время на вашем сайте.Чтобы создать свой собственный плагин, просто создайте новую папку. Я назову его tme-custom-functions :
.Папка плагинов пользовательских функций WordPress
(«TME» — мои инициалы, и я добавляю их к имени плагина, чтобы случайно не использовать имя существующего плагина.)
Затем создайте файл PHP с тем же именем в папке вашего плагина:
Используйте этот плагин пользовательских функций WordPress, чтобы добавить код к функциям.php
Наконец, вставьте следующий код в ваш новый файл PHP:
Php / ** * Название плагина: плагин пользовательских функций * Описание: Этот плагин содержит все мои потрясающие пользовательские функции. * Автор: Том Эвер * Версия: 0.1 * / / * Ваш код находится ниже. * / / * Ваш код находится здесь выше. * / ?>
Вот и все! Убедитесь, что ваш файл сохранен, и ваш новый плагин пользовательских функций WordPress теперь появится в вашем списке плагинов WordPress:
Ваш новый плагин пользовательских функций WordPress… готов к активации и использованию.Конечно, ваш плагин еще не выполняет , но теперь вы можете свободно вставлять любые пользовательские функции, которые ранее находились в вашем файле functions.php , и они продолжат работать в обычном режиме.
Шаг вперед: создание «обязательного» подключаемого модуля
Обычный плагин — это хорошо, но что, если вы хотите, чтобы выбранные вами функции работали на вашем сайте при любых обстоятельствах? Что делать, если вы не хотите, чтобы ваш новый настраиваемый плагин загромождал ваш список плагинов?
Похоже, вам нужно сделать его «обязательным» плагином, который представляет собой плагины, которые всегда активны на вашем сайте (и не могут быть деактивированы).Они даже не появятся в списке плагинов WordPress, если вы не нажмете на ссылку «Must-Use» в таблице плагинов.
Чтобы сделать ваш плагин «обязательным для использования», просто создайте папку с именем mu-plugins в каталоге wp-content вашего сайта WordPress, а затем переместите в нее PHP-файл вашего плагина (, а не всю папку).
Эй, готово! Плагин исчезнет из вашего списка и снова появится в новом разделе, обязательном к использованию:
. Сделайте свой плагин функций WordPress обязательным для использования.Давайте вернем веселье в functions.php
Надеюсь, теперь вы знаете, для чего вам следует и чего не следует использовать файл functions.php , и что есть лучшие альтернативы для добавления кода в WordPress, такие как использование плагина пользовательских функций WordPress, создание собственного плагина или даже использование ваша дочерняя тема файл functions.php .
Создание собственного плагина для добавления пользовательских функций в WordPress — это всегда вариант. По крайней мере, это может заставить вас выглядеть как умный разработчик WordPress, создав плагин, который будет отображаться в серверной части WordPress ваших клиентов, или, по крайней мере, заставить вас чувствовать себя в кодировании намного лучше, чем вы есть на самом деле (по крайней мере, так это делает меня чувствую!)
Для получения дополнительной полезной информации о том, что вам следует знать об использовании функций .php , ознакомьтесь с нашим полным руководством по файлу WordPress functions.php. Или, если вы действительно хотите произвести впечатление на сообщество WordPress, почему бы не изучить PHP и не начать создавать свои собственные плагины и темы? Это весело, функционально и бесплатно!
Бесплатное видео Почему 100 НЕ является идеальным показателем скорости загрузки страницы в Google (* 5 минут просмотра) Узнайте, как использовать Google PageSpeed Insights, чтобы ставить реалистичные цели, повышать скорость сайта и почему стремиться к 100 баллам — НЕПРАВИЛЬНАЯ цель.
Теги:Как использовать функции темы.php
Одним из способов внесения изменений в ваш сайт с помощью фрагментов кода является использование файла темы functions.php . Из Кодекса WordPress:
Примечание: Мы не можем предоставить поддержку для настроек в соответствии с нашей Политикой поддержки.Если вам нужна помощь с инструкциями на этой странице или в разрешении потенциальных конфликтов, свяжитесь с WooExpert.Файл функций ведет себя как плагин WordPress, добавляя функции и возможности на сайт WordPress. Вы можете использовать его для вызова функций как PHP, так и встроенного WordPress, а также для определения ваших собственных функций.
Большинство тем включают файл functions.php в основном каталоге, например, тема Twenty-Twelve имеет один файл в каталоге wp-content / themes / Twelve / functions.php
.
Поскольку этот файл должен содержать код PHP, он должен начинаться с открывающего тега PHP:
Php
Любые пользовательские функции могут быть размещены ниже этого, но убедитесь, что нет лишних тегов Php
, когда вы вставляете свой фрагмент!
Мы рекомендуем никогда не использовать редактор в WP Admin для редактирования функций.php. Если вы допустили ошибку, возможно, вы не сможете ее исправить, если админка не может загрузиться из-за ошибки. Вместо этого используйте FTP-клиент или файловый менеджер вашего хоста.
- Загрузите файл темы functions.php на свой компьютер из каталога темы с помощью FTP-клиента.
- Внесите изменения с помощью простого текстового редактора, например Блокнота или редактора кода.
- Загрузите измененный файл обратно в каталог темы с помощью FTP-клиента.
Чтобы устранить любые ошибки после добавления кода, вы можете временно включить режим WP_DEBUG, чтобы увидеть, что пошло не так, и исправить ошибки.
Чтобы защитить изменения от обновлений темы, рекомендуется создавать дочернюю тему с ее собственным functions.php вместо редактирования родительской темы. У поставщика темы могут быть дополнительные инструкции о том, как это сделать, в документации.
Мои пользовательские функции PRO
«My Custom Functions PRO» - это плагин премиум-класса для WordPress, который дает вам возможность легко и безопасно добавлять собственный PHP-код на ваш сайт WordPress прямо из области администрирования WordPress, без необходимости использования внешнего редактора.Это «ПРО» версия плагина «Мои пользовательские функции». Больше возможностей, больше мощности. Неограниченное количество полей для функций, отдельная активация и деактивация функций, а также автоматическое резервное копирование функций в файл. Еще одно преимущество - возможность настройки редактора кода. Вы можете выбрать одну из множества цветовых схем для выделения синтаксиса, указать, показывать ли номера строк или нет, и многое другое.
Это простой и идеальный инструмент для использования в качестве расширения функциональности вашего веб-сайта.Это обязательный инструмент для авторов и владельцев веб-сайтов. Его цель - предоставить пользователям WordPress знакомый опыт. Больше не нужно редактировать файл functions.php вашей темы или какие-либо файлы плагина для добавления собственного кода PHP. Просто добавьте свой собственный PHP-код в поле на странице плагина, и этот плагин сделает все остальное за вас. Он автоматически добавит ваш PHP-код на ваш сайт, без изменения каких-либо файлов вашей темы и без замедления вашего сайта.
Плагин работает полностью независимо от темы, поэтому вы можете использовать его с любой темой и независимо от того, имеет ли тема файл functions.php или нет. Код, который вы разместите на странице плагина, не изменится, если вы отредактируете содержимое файла functions.php темы или даже полностью измените тему. Это действительно полезно в случае обновления темы или плагинов, потому что ваш собственный PHP-код никогда не будет перезаписан. Ваш собственный PHP-код будет продолжать работать независимо от того, сколько раз вы обновляете или переключаете тему и плагины.
На странице плагина вы найдете редактор кода на базе CodeMirror. Этот редактор кода имеет такие параметры, как выделение синтаксиса, нумерация строк и многое другое. Кроме того, вы можете легко настроить его, просто выбрав нужные параметры. А если вам нужны дополнительные возможности, дайте нам знать, и мы будем рады их добавить.
функций - повторно используемые блоки кода - изучение веб-разработки
Еще одна важная концепция в кодировании - это функций , которые позволяют хранить фрагмент кода, который выполняет одну задачу внутри определенного блока, а затем вызывать этот код всякий раз, когда он вам нужен, с помощью одной короткой команды - вместо того, чтобы вводить один и тот же код несколько раз.В этой статье мы исследуем фундаментальные концепции функций, такие как базовый синтаксис, их вызов и определение, область видимости и параметры.
Предварительные требования: | Базовая компьютерная грамотность, базовое понимание HTML и CSS, первые шаги в JavaScript. |
---|---|
Цель: | Чтобы понять фундаментальные концепции функций JavaScript. |
В JavaScript вы найдете функции везде.Фактически, до сих пор мы использовали функции на протяжении всего курса; мы просто не особо о них говорили. Однако пора нам начать подробно говорить о функциях и по-настоящему изучить их синтаксис.
Практически всегда, когда вы используете структуру JavaScript с парой круглых скобок - ()
- и вы , а не , используете общую встроенную языковую структуру, такую как цикл for, while или do ... while цикл или оператор if ... else, вы используете функцию.
В этом курсе мы много использовали встроенные в браузер функции. Каждый раз, когда мы манипулировали текстовой строкой, например:
let myText = 'Я строка';
let newString = myText.replace ('строка', 'колбаса');
console.log (newString);
Или каждый раз, когда мы манипулировали массивом:
let myArray = ['я', 'любовь', 'шоколад', 'лягушки'];
пусть madeAString = myArray.join ('');
console.log (madeAString);
Или каждый раз, когда мы генерировали случайное число:
пусть myNumber = Math.случайный();
... мы использовали функцию!
Примечание : Не стесняйтесь вводить эти строки в консоль JavaScript вашего браузера, чтобы при необходимости повторно ознакомиться с их функциями.
Язык JavaScript имеет множество встроенных функций, позволяющих делать полезные вещи без необходимости писать весь этот код самостоятельно. Фактически, часть кода, который вы вызываете, когда вызывает (причудливое слово для запуска или выполнения), встроенная функция браузера не может быть написана на JavaScript - многие из этих функций вызывают части кода фонового браузера. , который написан в основном на системных языках низкого уровня, таких как C ++, а не на веб-языках, таких как JavaScript.
Имейте в виду, что некоторые встроенные функции браузера не являются частью основного языка JavaScript - некоторые определены как часть API-интерфейсов браузера, которые построены на основе языка по умолчанию для обеспечения еще большей функциональности (см. Этот ранний раздел нашего конечно для дополнительных описаний). Мы рассмотрим использование API-интерфейсов браузера более подробно в следующем модуле.
Программисты вызывают функций , которые являются частью объектов методов . Вам пока не нужно изучать внутреннюю работу структурированных объектов JavaScript - вы можете дождаться нашего более позднего модуля, который научит вас всему внутреннему устройству объектов и как создавать свои собственные.На данный момент мы просто хотели прояснить любую возможную путаницу между методом и функцией - вы, вероятно, встретите оба термина, когда будете просматривать доступные связанные ресурсы в Интернете.
Встроенный код, который мы использовали до сих пор, имеет обе формы: функций, и методов. Вы можете проверить полный список встроенных функций, а также встроенных объектов и соответствующих им методов здесь.
Вы также видели много пользовательских функций в этом курсе - функции, определенные в вашем коде, а не в браузере.Каждый раз, когда вы видели собственное имя со скобками сразу после него, вы использовали настраиваемую функцию. В нашем примере random-canvas-circle.html (см. Также полный исходный код) из нашей статьи о циклах мы включили пользовательскую функцию draw ()
, которая выглядела так:
function draw () {
ctx.clearRect (0,0, ШИРИНА, ВЫСОТА);
for (let i = 0; i <100; i ++) {
ctx.beginPath ();
ctx.fillStyle = 'rgba (255,0,0,0.5)';
ctx.arc (random (WIDTH), random (HEIGHT), random (50), 0, 2 * Math.ПИ);
ctx.fill ();
}
}
Эта функция рисует 100 случайных кругов внутри элемента . Каждый раз, когда мы хотим это сделать, мы можем просто вызвать функцию с помощью этого:
вместо того, чтобы писать весь этот код заново каждый раз, когда мы хотим его повторить. А функции могут содержать любой код, который вам нравится - вы даже можете вызывать другие функции изнутри функций. Вышеупомянутая функция, например, трижды вызывает функцию random ()
, которая определяется следующим кодом:
функция случайная (число) {
вернуть Math.этаж (Math.random () * число);
}
Эта функция нам нужна, потому что встроенная в браузер функция Math.random () генерирует только случайное десятичное число от 0 до 1. Нам нужно случайное целое число от 0 до указанного числа.
Вы, вероятно, уже поняли это, но на всякий случай ... чтобы действительно использовать функцию после того, как она была определена, вы должны запустить - или вызвать - ее. Это делается путем включения в код где-нибудь имени функции с последующими круглыми скобками.
function myFunction () {
предупреждение ('привет');
}
myFunction ();
Эта форма создания функции также известна как объявление функции . Он всегда поднят, поэтому вы можете вызвать функцию над определением функции, и она будет работать нормально.
Вы можете увидеть, что функции определены и вызываются по-разному. Пока что мы только что создали такую функцию:
function myFunction () {
предупреждение ('привет');
}
Но вы также можете создать функцию, у которой нет имени:
function () {
предупреждение ('привет');
}
Это называется анонимной функцией - у нее нет имени! Он также ничего не сделает сам по себе.Обычно вы используете анонимную функцию вместе с обработчиком событий, например, следующий код будет запускать код внутри функции при каждом нажатии связанной кнопки:
const myButton = document.querySelector ('кнопка');
myButton.onclick = function () {
предупреждение ('привет');
}
В приведенном выше примере требуется, чтобы на странице был доступен элемент
, который можно выбрать и щелкнуть. Вы уже видели эту структуру несколько раз на протяжении всего курса, и вы узнаете о ней больше и увидите ее использование в следующей статье.
Вы также можете назначить анонимную функцию значением переменной, например:
const myGreeting = function () {
предупреждение ('привет');
}
Эта форма создания функции также известна как функциональное выражение . В отличие от объявления функции, выражения функции не поднимаются.
Эту функцию теперь можно вызвать с помощью:
Это фактически дает функции имя; вы также можете присвоить функции значение нескольких переменных, например:
let anotherGreeting = myGreeting;
Эта функция теперь может быть вызвана с помощью любого из:
myGreeting ();
anotherGreeting ();
Но это может сбить с толку, так что не делайте этого! При создании функций лучше просто придерживаться такой формы:
function myGreeting () {
предупреждение ('привет');
}
Вы будете в основном использовать анонимные функции, чтобы просто запустить загрузку кода в ответ на запуск события - например, нажатие кнопки - с использованием обработчика событий.Опять же, это выглядит примерно так:
myButton.onclick = function () {
предупреждение ('привет');
}
Некоторые функции требуют, чтобы при их вызове было указано параметров - это значения, которые необходимо включить в скобки функции, которые необходимы для правильного выполнения своей работы.
Примечание : Параметры иногда называют аргументами, свойствами или даже атрибутами.
Например, встроенный в браузер Math.Функция random () не требует никаких параметров. При вызове всегда возвращает случайное число от 0 до 1:
. пусть myNumber = Math.random ();
Встроенная в браузер функция replace () требует двух параметров - подстроки, которую нужно найти в основной строке, и подстроки для замены этой строки на:
let myText = 'Я строка';
let newString = myText.replace ('строка', 'колбаса');
Примечание : Если вам нужно указать несколько параметров, они разделяются запятыми.
Также следует отметить, что иногда параметры необязательны - указывать их необязательно. Если вы этого не сделаете, функция обычно примет какое-то поведение по умолчанию. Например, параметр функции array join () является необязательным:
let myArray = ['я', 'любовь', 'шоколад', 'лягушки'];
пусть madeAString = myArray.join ('');
пусть madeAString = myArray.join ();
Если не указан параметр для указания символа соединения / разделения, по умолчанию используется запятая.
Давайте немного поговорим об области видимости - очень важном понятии при работе с функциями. Когда вы создаете функцию, переменные и другие вещи, определенные внутри функции, находятся внутри их собственной отдельной области , что означает, что они заблокированы в своих собственных отдельных отсеках, недоступных для кода вне функций.
Верхний уровень за пределами всех ваших функций называется глобальной областью действия . Значения, определенные в глобальной области видимости, доступны из любой точки кода.
JavaScript настроен таким образом по разным причинам - но в основном из-за безопасности и организации. Иногда вы не хотите, чтобы переменные были доступны из любого места в коде - внешние скрипты, которые вы вызываете из другого места, могут начать испортить ваш код и вызвать проблемы, потому что они случайно используют те же имена переменных, что и другие части кода. , вызывая конфликты. Это могло быть сделано злонамеренно или случайно.
Например, предположим, что у вас есть файл HTML, который вызывает два внешних файла JavaScript, и в обоих из них определены переменная и функция, которые используют одно и то же имя:
<сценарий>
приветствие();
пусть name = 'Крис';
function welcome () {
alert ('Привет' + имя + ': добро пожаловать в нашу компанию.');
}
пусть name = 'Zaptec';
function welcome () {
alert ('Наша компания называется' + name + '.');
}
Обе функции, которые вы хотите вызвать, называются приветствие ()
, но вы можете сначала получить доступ только к .js
файл welcome ()
(второй игнорируется). Кроме того, попытка объявить переменную name
второй раз с ключевым словом let
в файле second.js
приводит к ошибке.
Хранение частей вашего кода заблокированными в функциях позволяет избежать таких проблем и считается лучшей практикой.
Это немного похоже на зоопарк. Львы, зебры, тигры и пингвины содержатся в своих вольерах и имеют доступ только к вещам внутри своих вольеров - так же, как и функциональные области.Если бы они смогли попасть в другие корпуса, возникли бы проблемы. В лучшем случае разные животные будут чувствовать себя действительно неуютно в незнакомой среде обитания - лев или тигр будут чувствовать себя ужасно в водной ледяной владении пингвинов. В худшем случае львы и тигры могут попытаться съесть пингвинов!
Хранитель зоопарка похож на глобальный прицел - у него есть ключи для доступа к каждому вольеру, для пополнения запасов пищи, ухода за больными животными и т. Д.
Активное обучение: игра с прицелом
Давайте посмотрим на реальный пример, чтобы продемонстрировать определение объема.
- Сначала создайте локальную копию нашего примера function-scope.html. Он содержит две функции, называемые
a ()
иb ()
, и три переменные -x
,y
иz
- две из которых определены внутри функций, а одна - в глобальной области. Он также содержит третью функцию, называемуюoutput ()
, которая принимает единственный параметр и выводит его в абзаце на странице. - Откройте пример в браузере и в текстовом редакторе.
- Откройте консоль JavaScript в инструментах разработчика вашего браузера. В консоли JavaScript введите следующую команду:
Вы должны увидеть значение переменной
x
, напечатанное в окне просмотра браузера. - Теперь попробуйте ввести в консоль следующее:
Оба они должны вызвать ошибку в консоли в строке «ReferenceError: y is not defined». Это почему? Из-за области действия функции -
y
иz
заблокированы внутри функцийa ()
иb ()
, поэтомуoutput ()
не может получить к ним доступ при вызове из глобальной области. - Но что насчет того, когда он вызывается изнутри другой функции? Попробуйте отредактировать
a ()
иb ()
, чтобы они выглядели так:function a () { пусть y = 2; output (y); } function b () { пусть z = 3; выход (z); }
a ()
иb ()
из консоли JavaScript: Вы должны увидеть значенияy
иz
, напечатанные в окне просмотра браузера.Это прекрасно работает, поскольку функцияoutput ()
вызывается внутри других функций - в той же области, что и печатаемые переменные, в каждом случае.output () Сам
доступен из любого места, как это определено в глобальной области. - Теперь попробуйте обновить свой код следующим образом:
function a () { пусть y = 2; output (x); } function b () { пусть z = 3; output (x); }
- Сохраните, перезагрузите еще раз и попробуйте еще раз в консоли JavaScript:
Оба вызова
a ()
иb ()
должны выводить значение x в область просмотра браузера.Они работают нормально, потому что даже несмотря на то, что вызовыoutput ()
не находятся в той же области, в которой определеноx
,x
- это глобальная переменная, поэтому она доступна внутри всего кода и везде. - Наконец, попробуйте обновить свой код следующим образом:
function a () { пусть y = 2; выход (z); } function b () { пусть z = 3; output (y); }
- Сохраните, перезагрузите еще раз и попробуйте еще раз в консоли JavaScript:
На этот раз вызовы
a ()
иb ()
вызовут эту раздражающую ошибку ReferenceError: имя переменной не определено в консоли - это потому, чтоoutput () вызывает
и переменные, которые они пытаются изменить. print не находятся в одной и той же области действия - переменные фактически невидимы для этих вызовов функций.
Примечание : одни и те же правила области видимости не применяются к циклам (например, for () {...}
) и условным блокам (например, if () {...}
) - они выглядят очень похоже, но это не одно и то же! Постарайтесь не запутать их.
Примечание : Ошибка ReferenceError: «x» не определена. Это одна из наиболее частых ошибок, с которыми вы можете столкнуться. Если вы получили эту ошибку и уверены, что определили переменную, о которой идет речь, проверьте, в какой области она находится.
Функции внутри функций
Имейте в виду, что вы можете вызывать функцию из любого места, даже внутри другой функции. Это часто используется как способ поддерживать порядок в коде - если у вас есть большая сложная функция, ее легче понять, если разбить ее на несколько подфункций:
function myBigFunction () {
let myValue;
subFunction1 ();
subFunction2 ();
subFunction3 ();
}
function subFunction1 () {
console.log (myValue);
}
function subFunction2 () {
приставка.журнал (myValue);
}
function subFunction3 () {
console.log (myValue);
}
Просто убедитесь, что значения, используемые внутри функции, правильно находятся в области видимости. В приведенном выше примере возникает ошибка ReferenceError: myValue is not defined
, потому что, хотя переменная myValue
определена в той же области, что и вызовы функций, она не определена внутри определений функций - фактический код, который запускается, когда функции вызываются. Чтобы это сработало, вам нужно передать значение функции в качестве параметра, например:
function myBigFunction () {
пусть myValue = 1;
subFunction1 (myValue);
subFunction2 (myValue);
subFunction3 (myValue);
}
function subFunction1 (значение) {
приставка.журнал (значение);
}
function subFunction2 (значение) {
console.log (значение);
}
function subFunction3 (значение) {
console.log (значение);
}
Вы дошли до конца этой статьи, но можете ли вы вспомнить самую важную информацию? Вы можете найти дополнительные тесты, чтобы убедиться, что вы сохранили эту информацию, прежде чем двигаться дальше - см. Проверка своих навыков: функции. Эти тесты требуют навыков, которые рассматриваются в следующих двух статьях, поэтому вы можете сначала прочитать их, прежде чем пробовать.
В этой статье были исследованы фундаментальные концепции функций, и мы подготовили почву для следующей статьи, в которой мы будем практиковаться и проведем вас через шаги по созданию вашей собственной пользовательской функции.
Как добавить собственный PHP-код на сайты WordPress (2 простых шага)
Иногда вам нужно добавить собственный PHP-код на сайты WordPress. Чтобы быть более конкретным, вы должны добавить функции, хуки или собственный PHP-код в файл function.php ваших сайтов WordPress. Итак, как это сделать? Что ж, есть несколько способов добавить PHP-код на сайты WordPress. Но любая нежелательная ошибка сломает ваш сайт. Вот почему всегда рекомендуется следовать подробным рекомендациям.
В этом уроке сегодня мы покажем вам самые простые способы добавления собственного кода PHP на сайты WordPress.Фактически, мы покажем вам несколько способов, чтобы вы могли следовать простому и безопасному для своего сайта.
Итак, без дальнейших промедлений, приступим прямо сейчас.
Как вручную добавить собственный PHP-код на сайты WordPress.
Добавить функции, хуки или любой другой настраиваемый PHP-код на сайт WordPress очень просто. В WordPress есть редактор по умолчанию для изменения кода ваших тем и плагинов. И вы также можете добавить PHP-код с помощью плагина. Начнем с ручной системы.
Войдите на свой сайт WordPress, перейдите в раздел Appearance > Theme Editor . Первоначально он предупреждает вас, потому что вы напрямую редактируете файл темы. Щелкните Я понимаю , и вы попадете в редактор тем.
Выберите файл function.php слева и поместите код PHP внизу. Наконец, нажмите « Update File » и добавьте код в файл function.php. Таким образом, вы можете редактировать и другие файлы темы.
Примечание : WordPress не рекомендует редактировать файлы в редакторе по умолчанию таким образом. Вы можете столкнуться с ошибками и в конечном итоге сломать свой сайт. И каждый раз, когда вы обновляете свою тему, любые изменения, внесенные вами в эти файлы, будут удалены. Вам нужно снова добавлять код после каждого обновления.
Как добавить собственный PHP-код на сайты WordPress с помощью плагина
Вы также можете добавлять функции, хуки или другой пользовательский код PHP на сайты WordPress с помощью плагина. И это самый безопасный способ.Потому что в этом случае вы добавите PHP-код без редактирования файлов. И вам не нужно делать это снова и снова после каждого обновления. Сделаем это с помощью плагина My Custom Functions WordPress.
Шаг 1 : Установите и активируйте плагин «Мои пользовательские функции»Когда вы вошли в систему, Плагины > Добавьте новый на вашу панель инструментов. Найдите Мои пользовательские функции в поиске и нажмите Установить и Активировать впоследствии.
Шаг 2 : Добавьте собственный PHP-код на свой сайт WordPressПосле того, как вы установили и активировали плагин My Custom Functions.Вам нужно перейти в Settings > PHP Inserter на вашей панели инструментов.
Разместите свой код в разделе «Функции (код PHP)» и включите переключатель слева. Нажмите Сохранить изменения , чтобы ваш код заработал.
Примечание : Не заключайте свой собственный PHP-код в HTML-теги, такие как Php…?>. Если в вашем коде нет ошибок, он должен работать безупречно. А в случае сбоя сайта следуйте указаниям автора.
Предупреждение : Даже отсутствие одной точки с запятой в конце кода может нарушить работу вашего сайта.Будьте осторожны при написании кода. Лучше всего попробовать свой код на сайте WordPress, установленном на вашем локальном компьютере, и убедиться, что он дает желаемый результат. Затем добавьте свой код на действующий сайт. Опять же, будьте осторожны.
Хотя в этом руководстве мы описали 2 подробных метода, мы рекомендуем вам добавить собственный PHP-код на сайты WordPress с помощью плагина. Это потому, что WordPress не рекомендует пользователям напрямую редактировать файлы сайта WordPress. И даже если вы это сделаете, вам нужно будет добавлять код после каждого обновления вашей темы.Это постоянные хлопоты, о которых иногда можно забыть. Лучшим решением будет второй метод. Посетите Virfice, чтобы получить больше таких руководств. Удачи.
Правильный способ добавления пользовательских функций на ваш сайт WordPress
WordPress по праву славится огромным набором плагинов и тем, которые он делает доступными для владельцев сайтов. Если вы хотите добавить функцию на свой сайт WordPress, вы почти наверняка найдете плагин, который сделает эту работу.
Но иногда вам может потребоваться небольшая настройка или часть специальной функциональности, которая недоступна в виде плагина.Решение состоит в том, чтобы добавить на сайт фрагмент собственного кода. WordPress - это приложение PHP, а плагины и темы WordPress написаны на языке программирования PHP. Как клиент хостинга WordPress, вы имеете доступ к тем же хукам и инструментам, которые используют разработчики WordPress.
Для этого вам даже не нужно быть экспертом по PHP. В сети есть тысячи готовых сниппетов, которые вы можете адаптировать для своих целей.Однако будьте осторожны, добавление кода на ваш сайт может быть связано с безопасностью, а плохо написанный код может вообще помешать вашему сайту WordPress работать. Убедитесь, что вы знаете, что делает функция и что она совместима с вашей версией WordPress, прежде чем добавлять ее на свой сайт.
Когда вы обнаружили необходимость в функции и написали ее с нуля или адаптировали заранее написанную функцию, куда вы должны ее поместить?
Есть неправильный и правильный способ сделать это. Если вы сделаете это «неправильно», ваша функция может изначально работать, но, скорее всего, перестанет работать, когда вы обновите свой сайт.
Двумя наиболее распространенными «плохими» способами добавления функций являются редактирование существующего плагина или редактирование файла functions.php.
Не редактируйте файлы плагинов. Если ваш фрагмент изменяет функциональность плагина, может показаться разумным добавить новый код непосредственно в плагин. Но когда вы обновляете плагин, файлы, которые вы изменили, будут перезаписаны, и ваш код исчезнет.
Функции .php файл не является универсальной свалкой для пользовательского кода . Файл functions.php принадлежит вашей теме. Если код, который вы хотите добавить, зависит от темы, то functions.php - хорошее место для его размещения. Но при переключении тем в новой теме не будет настраиваемого кода. Избегайте размещения пользовательского кода общего назначения в файле functions.php .
Есть несколько способов добавить пользовательские функции, которые будут работать после следующего обновления или переключения темы.
Плагин Code SnippetsПлагин Code Snippets разработан именно для этой цели. Он предоставляет графический интерфейс для добавления фрагментов кода на сайт WordPress. Вы можете добавить столько фрагментов, сколько захотите, легко включать и отключать их, а также экспортировать в формате, который можно импортировать на другие сайты WordPress с помощью плагина Code Snippets.
Создание собственного подключаемого модуля Идея может показаться сложной, но создать собственный плагин, который можно будет установить на сайте WordPress вместе со сторонними плагинами, несложно.
Базовая структура минимального плагина выглядит так:
- Папка с тем же именем, что и ваш плагин, например мой-плагин . Это не обязательно, но полезно, если вы захотите добавить больше файлов в будущем.
- Файл PHP внутри этой папки с именем my-plugin.php
В файле my-plugin.php добавьте следующий текст:
Php / * Имя плагина: Пример плагина * /
По сути, это все, что вам нужно для создания плагина, хотя он пока ничего не делает.Чтобы сделать его полезным, вам нужно добавить свою пользовательскую функцию в файл PHP, а затем загрузить папку в каталог плагинов вашего сайта WordPress, обычно wp-content / plugins / .
Если вам нужно добавить новые функции, вы можете просто перезаписать старую версию своими изменениями.
Для получения дополнительной информации о создании настраиваемых плагинов WordPress ознакомьтесь с руководством «Написание плагинов» в постоянно полезном кодексе WordPress.
Нравится то, что вы видите? Хотите узнать больше? Начните с нами чат или зарегистрируйтесь и приступайте к работе!
Основанная 20 лет назад управляемые платформы Nexcess всегда давали агентствам возможность предоставлять услуги, которые ожидают их клиенты.Наши решения, основанные на четырех принципах: скорость, безопасность, масштабируемость и сервис, призваны помочь вашему веб-сайту реализовать свой потенциал. Посетите Nexcess.net сегодня и узнайте, чем мы можем помочь.
ArthurGareginyan / my-custom-functions: простой в использовании, с интуитивно понятным интерфейсом, плагин WordPress, который дает вам возможность легко и безопасно добавлять свой собственный PHP-код на ваш сайт WordPress, прямо из области администратора WordPress, без необходимости. иметь внешнего редактора.
Бесплатный плагин WordPress
Простой в использовании плагин WordPress с интуитивно понятным интерфейсом, который дает вам возможность легко и безопасно добавлять свой собственный PHP-код на ваш сайт WordPress прямо из области администрирования WordPress, без необходимости иметь внешний редактор.
Это простой и идеальный инструмент для использования в качестве расширения функциональности вашего веб-сайта. Это обязательный инструмент для авторов и владельцев веб-сайтов. Его цель - предоставить пользователям WordPress знакомый опыт. Больше не нужно редактировать файл functions.php вашей темы или какие-либо файлы плагина для добавления собственного кода PHP. Просто добавьте свой собственный PHP-код в поле на странице плагина, и этот плагин сделает все остальное за вас. Он автоматически добавит ваш PHP-код на ваш сайт, без изменения каких-либо файлов вашей темы и без замедления вашего сайта.
Плагин работает полностью независимо от темы, поэтому вы можете использовать его с любой темой и независимо от того, имеет ли тема файл functions.php или нет. Код, который вы разместите на странице плагина, не изменится, если вы отредактируете содержимое файла functions.php темы или даже полностью измените тему. Это действительно полезно в случае обновления темы или плагинов, потому что ваш собственный PHP-код никогда не будет перезаписан. Ваш собственный PHP-код будет продолжать работать независимо от того, сколько раз вы обновляете или переключаете тему и плагины.
На странице плагина вы найдете редактор кода на базе CodeMirror. Этот редактор кода имеет такие параметры, как выделение синтаксиса, нумерация строк и многое другое. А если вам нужны дополнительные возможности, дайте нам знать, и мы будем рады их добавить.
Характеристики
- Легкий и быстрый
- Безопасный код с использованием четких стандартов кодирования
- Интуитивно понятный интерфейс
- Кроссбраузерная совместимость (работает в любом современном браузере)
- Совместимость со всеми темами WordPress
- RTL-совместимый (справа налево)
- Готово к переводу
- Опубликовано на WordPess.org
Ключевые особенности включают
- Вставить собственный PHP-код на сайт
- Проверяет введенный код на наличие фатальных ошибок
- Простая опция отключения для WSOD
- Возможность временно отключить весь пользовательский код PHP
- Подсветка синтаксиса кода
- Нумерация строк
- Активная подсветка строки Редактор
- позволяет использовать отступы табуляции
- И многое, многое другое!
PRO функции включают
- Возможность легко настроить редактор кода, выбрав нужные настройки
- 56 тем для подсветки синтаксиса
- Неограниченное количество полей для функций
- Автоматическое резервное копирование всех функций в загружаемый текстовый файл
- Отдельное включение и выключение функций
- Возможность свернуть / развернуть определенные поля с кодом
- Хорошо документировано
Получите PRO версию прямо сейчас!
Поддерживаемые языки
Перевод
Этот плагин готов к переводу и уже переведен на несколько языков.Но если ваш язык недоступен, вы можете сделать его. Также возможно, что не все существующие переводы актуальны или верны, поэтому вы можете вносить исправления. Многие пользователи плагина будут рады, если вы поделитесь своим переводом с сообществом. Спасибо за ваш вклад!
- Английский (по умолчанию)
- Русский (перевод Милены Киселевой)
- Немецкий (перевод Михаэля)
- Китайско-Тайваньский (перевод Гордона Ю)
- Испанский (перевод Рамиро Гарсеса и Патрисио Толедо)
- Французский (перевод Теофила Вефиля)
- Голландский (перевод Питера Лендерса)
Если вы хотите помочь с переводом этого плагина, посетите страницу перевода.
Минимальные системные требования:
- PHP версии 5.2 или выше.
- MySQL версии 5.0 или выше.
Рекомендуемые системные требования:
- PHP версии 7.0 или выше.
- MySQL версии 5.6 или выше.
Вклад
Разработка плагинов - долгая и утомительная работа. Если вам нравится этот плагин, пожалуйста, найдите время:
Содействие
Добро пожаловать и спасибо! Я признателен вам за инициативу внести свой вклад в этот проект.
Содействие не ограничивается только кодом. Я призываю вас внести свой вклад в соответствии с вашими способностями, написав учебные пособия, сделав перевод на ваш родной язык, проведя демонстрацию на вашем местном собрании, помогая другим пользователям с их вопросами поддержки или пересматривая документацию для этого проекта.
Пожалуйста, найдите время, чтобы прочитать инструкции на CONTRIBUTING.md. Следование им помогает показать, что вы уважаете время других участников проекта.В свою очередь, они сделают все возможное, чтобы ответить вам взаимностью, работая с вами в разных часовых поясах и по всему миру.
Уязвимости в системе безопасности
Если вы обнаружите уязвимость безопасности в этом подключаемом модуле, отправьте мне электронное письмо. Все уязвимости безопасности будут незамедлительно устранены.
Лицензия
Этот плагин представляет собой программное обеспечение с открытым исходным кодом под лицензией GNU General Public License, версия 3 (GPLv3) и распространяется бесплатно.
Коммерческое лицензирование (e.грамм. для проектов, которые не могут использовать лицензию с открытым исходным кодом) предоставляется по запросу.
Кредиты
- Значок плагина является защищенным авторским правом изображением, созданным Артуром Гарегиняном. (C) Все права защищены.
- Баннер плагина является защищенным авторским правом изображением, созданным Артуром Гарегиняном. (C) Все права защищены.
Автор
Артур Гарегинян