Вот опять двадцать пять 😀 Ничего уже не помню, а ведь даже сделал несколько плагинов.
Не могу понять хоть убейте, как происходит инициализация плагина при нажатии на кнопку "активировать".
Что меня интересует имеено?
Вот возьмём кусок самого начала моего плага
// добавляем опции
j_extred_ops();
function j_extred_ops() {
$all_opt = array(
'jex_excerpt' => TRUE,
'jex_content' => TRUE,
'jex_comment' => TRUE,
...
add_option('plugin_j_extred', $all_opt, '(J)ExR Options');
}
Так вот я что-то не пойму, получается, что каждый раз и постоянно пихаются опции. И это круговой процесс, при активированном плагине? Или я чего-то не догоню.
полазив, нашёл:
register_activation_hook(__FILE__,'jal_install');
Но это используется только при создании таблиц в БД. А почему с опциями этот хук не используется? Я поглядел, ни в одном плагине не используется для опций. Получается он постоянно вызывает add_option и так сказать маслает по кругу? А как же update_option? Ведь update_option всегда идёт с каким-то условием, а add_option тупо висит вверху и постоянно запускается.
Растолкуйте, не пойму…
register_activation_hook выполняется при активации плагина, раньше по моему его небыло, рекоммендую использовать его, и update_option чтобы не плодить однотипные даннык.
Ну дык а почему же если рекомендуется использоваться этот хук, то во всех плагинах просто стоит запуск функции в которой add_option
Потому что:
A safe way of adding a named option/value pair to the options database table. It does nothing if the option already exists. After the option is saved, it can be accessed with get_option(), changed with update_option(), and deleted with delete_option().
И вот тут про активацию http://codex.wordpress.org/Plugin_API/Action_Reference/activate_(plugin_file_name)
Чтиво в тему http://habrahabr.ru/blogs/wordpress/48998/
Вот спасибо за ссылку на хабр… очень познавательно было. Только я так и не понял в очередной раз, нафига классы нужны. Зачем создавать класс из которого будут использоваться всего пару функций, да ещё и потом создавать его копию, да и смысл, если функции можно просто так запустить.
p.s. просто я часто встречаю, когда люди создают классы и как (пускай не важный, но однако же) кодер, я хочу понять, зачем они нужны. Я даже могу понять, что есть объет во Flash к примеру или на C++, но зачем на PHP создавать самому себе геморой в виде класса, когда можно просто использоваться функцию и всё, я так и не могу понять.
p.s.2. 🙁 но ведь зачем-то их используют
Хм… Либо Вас неправильно учили, либо давно, либо Вы вообще самоучка 😀 ООП – это круто! И всё тут.
IMHO совать ООП в каждую дырку – глупость. А на PHP – дважды глупость, если учесть, что у php4 и php5 разные объектные модели. Хотя действительно бывают случаи, когда объектная модель себя оправдывает.