Содержание

Пользовательские функции php. Задачи. — HTMLLab

Полярная крачка

Задачи по созданию пользовательских функций в PHP охватывают следующие вопросы: создание функций в PHP (описание функций), вызов функций, работа с аргументами функций в PHP, учёт области видимости. Хорошей практикой является одновременное знакомство с функциями реализованными в CMS (пусть не сразу все будет понятно, но можно будет сравнить код опытных разработчиков со своим).

Пользовательские функции php.

  1. Создать функцию в PHP — getPlus10(), которая будет принимать число и распечатывать сумму этого числа и 10.
  2. Изменить функцию из предыдущего задания: она должна возвращать сумму, а не сразу выводить.
  3. Напишите функцию pythagoras(), которая принимает значения двух катетов прямоугольного треугольника и возвращает размер гипотенузы этого прямоугольного треугольника. Примечание: может пригодиться встроенная PHP-функция pow().
  4. * Создать функцию, которая находит ипотечный платеж
  5. Создайте функцию col(), которая распечатает количество переданных аргументов. Например: col(12,6,123) должна распечатать число 3.
  6. Создайте функцию, которая посчитает среднее значение всех целочисленных аргументов
  7. * Напишите функцию, которая принимает неограниченное количество числовых аргументов и строит столбчатую диаграмму. На каждому столбце указываются величины из аргументов. Примечание: это задание сформулировано по аналогии с заданием по созданию функций в JavaScript http://htmllab.ru/zadachi-po-javascript-function/
  8. Напишите функцию op(), которая принимает три аргумента: $num1 и $num2 – числовые, $operator – символ, обозначающий операцию.
    Функция должна возвращать
    результат выполнения оператора $operator над $num1 и $num
  9. * Создайте две функции add() и sub(), которые принимают пару аргументов и возвращают сумму и разницу соответственно. Создайте функцию op2(), которая принимает два числовых аргумента $num1 и $num2, и третий строковый вызываемый аргумент (callable)
  10. Создайте функцию, которая при помощи статических переменных будет выполнять основную работу только один раз

Посмотреть другие задания по PHP

Запись опубликована в рубрике Курсы 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

Обратите внимание, насколько естественно это читается:

Если пользователь входит в группу с именем «admin» .

По мере масштабирования приложения вы можете сохранить этот единственный метод вместо того, чтобы определять несколько методов для проверки группы пользователя (isAdmin, isSubscriber, isPremium и т. Д.).

1

Amo 7 Сен 2015 в 13:23

Поскольку Auth::user() возвращает экземпляр модели

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, можно разделить на три широких лагеря:

  1. Plug and player: энтузиастов WordPress, которые, вероятно, не являются опытными дизайнерами веб-сайтов и ищут готовое решение.Они найдут тему, установят ее и, возможно, займутся созданием контента.
  2. Твикеров: Эти люди возьмут тему, которую, вероятно, можно было бы использовать прямо из коробки, и применит свои собственные настройки. Они, вероятно, будут использовать файлы custom.css и custom_functions.php (или аналогичные) для настройки своей темы. Они возьмут готовый вариант и возятся с ним, пока не получат что-то, что (а) соответствует их потребностям, и (б) выглядит уникально.
  3. Фреймворки: Обычно это разработчики, которые начинают с фреймворка темы, который предлагает очень немногое помимо, как вы уже догадались, фреймворка, на котором может располагаться контент. Через несколько часов или дней они создадут что-то по-настоящему уникальное и приспособленное к своим или конкретным потребностям клиента.

Если бы я догадался, я бы сказал, что самый большой лагерь из трех — это твикеры .

И давайте посмотрим правде в глаза: 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 вашего сайта, чтобы отслеживать посещения.

У вас есть три основных варианта добавления этого кода:

  1. Добавьте его вручную в файл header.php вашей темы
  2. Добавьте его вручную в свой functions.php (используя ловушку)
  3. Используйте плагин

Если вы используете первый или второй варианты, ваш код отслеживания исчезнет, ​​если вы измените тему, и 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 варианта:

  1. Добавьте его в functions.php дочерней темы
  2. Используйте плагин пользовательских функций WordPress
  3. Создайте свой собственный плагин

Давайте кратко рассмотрим каждый из этих вариантов:

Используйте свою дочернюю тему functions.php

Вы всегда должны использовать дочерние темы с WordPress. Особенно, если вы планируете вносить какие-либо изменения в свою тему.Таким образом, вы не потеряете ни один индивидуальный дизайн или модификации при обновлении основной (то есть родительской) темы вашего сайта.

Если вы хотите, например, перенести стиль из родительской темы в дочернюю, вам придется поместить его в очередь в файле functions.php вашей дочерней темы. Если в вашей дочерней теме его нет, вам нужно будет создать для нее файл functions.php.

Если вам необходимо использовать стержень, не жалейте дочернюю тему functions.php

Если вам нужно добавить код к функциям .php , сделайте это в functions.php вашей дочерней темы.

Обратите внимание, однако, что это не рекомендуемое решение и может привести к ошибкам. Есть альтернатива получше… используйте плагин!

Используйте плагин WordPress для Functions.php

Лучшим вариантом, чем добавление кода непосредственно в файл functions.php, является использование плагина пользовательских функций WordPress.

Плагин My ​​Custom Functions для WordPress

My 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:

 
 

Вот и все! Убедитесь, что ваш файл сохранен, и ваш новый плагин пользовательских функций 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 и не начать создавать свои собственные плагины и темы? Это весело, функционально и бесплатно!