WP actions hooks and filter hooks

There are two types of hooks: Actions and Filters.

Actions allow you to add data or change how WordPress operates.

Filters give you the ability to change data during the execution of WordPress Core, plugins, and themes.

function add_action( $hook_name, $callback, $priority = 10, $accepted_args = 1 ) {
    return add_filter( $hook_name, $callback, $priority, $accepted_args );
}

function has_action( $hook_name, $callback = false ) {
	return has_filter( $hook_name, $callback );
}
public function has_filters() {
    foreach ($this->callbacks as $callbacks) {
        if ($callbacks) {
            return true;
        }
    }

    return false;
}

#php #wordpress #why


telegram english version

2025.11.27 12:17

Шорткаты терминала

В терминале можно неплохо удалять. Например, если у вас есть строка и курсор в центре:

xxx xxx █ xxx xxx

То вы можете:
CTRL+W чтобы удалить слово слева
ALT+D чтобы удалить слово справа

Почему?

#linux #why #wtf #cursed


telegram english version

2025.11.10 23:17

Трифолд

Появился складной телефон с тройным коэффициентом экрана — трифолд.

Значит ли это что остальные телефоны стали бифолдами и монофолдами?

Или новый трифолд на самом деле бифолд, а фолды — монофолды?

#deep #why


telegram

2025.10.29 14:50

Мёд или кленовый сироп

А что вам больше нравится: мёд или кленовый сироп?

Напишите в комментариях, интересно посмотреть какая у меня аудитория!

#deep #why #poll

2025.10.21 19:36

arch & pacman & etc-update

# pacman -Sy
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 multilib is up to date
error: failed retrieving file 'core.db' from mirrors.nic.cz : The requested URL returned error: 404
error: failed retrieving file 'extra.db' from mirrors.nic.cz : The requested URL returned error: 404
error: failed retrieving file 'multilib.db' from mirrors.nic.cz : The requested URL returned error: 404
warning: too many errors from mirrors.nic.cz, skipping for the remainder of this transaction

оказывается, если pacman при установке пакета видит конфликты в конфигурационных файлах, то он создаёт рядом файл с апдейтом mirrorlist.pacnew и его потом можно смержить с используемым при помощи гентовской утилиты etc-update

КОГДА ТЫ ДУМАЕШЬ ЧТО ЭТО ДНО, НО СНИЗУ ПОСТУЧАЛА ГЕНТА

Вообще, конечно, странно в этом арче. Гента при каждом вызове emerge будет тебе рассказывать что у тебя есть новые конфигурационные файлы и с ними надо что-то сделать. А pacman просто падает вместо того чтобы смержить /etc/pacman.d/mirrorlist. Пришлось несколько раз дакдакгоить только чтобы узнать что надо проверить mirrorlist чтобы подакдакгоить что делать с этим mirrorlist.pacnew.

#linux #arch #gentoo #why

2025.10.19 22:42

Дважды полураспад

Дважды полураспад это четверть-распад или три-четверти-распад?

#deep #why

2025.10.14 15:57

cli params и Racket lang

Очень нужно сильно захотелось написать простой маленький консольный бинарничичек. Конечно же не на пхп ведь мы же не монстры, правда?

Немедленно открываем документацию к racket чтобы узнать как это делать:

(command-line optional-name-expr optional-argv-expr
              flag-clause ...
              finish-clause)

optional-name-expr =
                   | #:program name-expr

optional-argv-expr =
                   | #:argv argv-expr

       flag-clause = #:multi flag-spec ...
                   | #:once-each flag-spec ...
                   | #:once-any flag-spec ...
                   | #:final flag-spec ...
                   | #:usage-help string ...
                   | #:help-labels string ...
                   | #:ps string ...

         flag-spec = (flags id ... help-spec body ...+)
                   | (flags => handler-expr help-expr)

             flags = flag-string
                   | (flag-string ...+)

         help-spec = string
                   | (string-expr ...+)

     finish-clause =
                   | #:args arg-formals body ...+
                   | #:handlers handlers-exprs

       arg-formals = rest-id
                   | (arg ...)
                   | (arg ...+ . rest-id)

               arg = id
                   | [id default-expr]

    handlers-exprs = finish-expr arg-strings-expr
                   | finish-expr arg-strings-expr help-expr
                   | finish-expr arg-strings-expr help-expr
                     unknown-expr

Пожалукйста, потратьте минутку и насладитесь этим шедевром форматирования.

Спасибо, больше не надо этого делать. Если вы не поняли как это работает, то вот вам настоящий пример от человека который понял:

(define parser
  (command-line
   #:usage-help
   "Here you can write a general description of your program"
   "You can have multiple strings to make multiple lines"

   #:once-each
   [("-m" "--my-parameter") MY-PARAMETER-NAME
    "write a short description of what setting MY-PARAMETER-NAME does"
    (my-parameter (string->number MY-PARAMETER-NAME))]
   [("-a" "--another-parameter") ANOTHER-PARAM
    "a little description of ANOTHER-PARAM"
    (another-parameter (string=? "true" ANOTHER-PARAM))]
   [("-s" "--string") A-STRING
    "what is A-STRING?"
    (a-string A-STRING)]

   #:args () (void)))

Очень мне нравится как в они в этом racket’е любят использовать магические строки типа #:once-each которые непонятно что делают и никак не автодополняются официальной IDE.

Очень, очень захватывающе. Пожалуй, на этом с racket я закончу.

#racket #why #wtf #theway #deep


english version

2025.01.26 14:54

Помогите понять как это работает потому что оно не работает

Invalid formula - Operator "=" doesn't support TEXT = NUMBER. Operator "=" supports ANY = ANY.

А почему `TEXT = NUMBER` это не `ANY = ANY`??????77

#why #wtf

2024.06.28 10:22

Gentoo & binary packages

Разработчики проекта Gentoo объявили о введении в строй отдельного репозитория с бинарными пакетами, собранными с поддержкой третьей версии микроархитектуры x86-64 (x86-64-v3), применяемой в процессорах Intel примерно с 2015 года

Новый репозиторий позволяет добиться более высокой производительности на современных процессорах, благодаря задействованию в программах расширенных инструкций.

Приятно видеть что мейнтейнеры генты не предают идеи генты!

#gentoo #linux #why #wtf

2024.02.08 00:44

arch ▯ шрифты

Традиционно, шрифты это ад и ненависть. Как настраивать fontconfig понимают только те кто понимают, но я не из тех кто пониимает и поэтому не понимаю. При каждой попытке занырнуть в этот xml я понимаю что не стоило этого делать.

Каким-то образом понаставив каких-то пакетов наугад удалось найти какой-то моноширинный шрифт на который больно смотреть, но всё же можно смотреть. Это была победа.

Понаставив каких-то других шрифтов начали показываться эмодзи, даже цветные, но не все. Ну, это уже была победная победа.

Но после очередного обновления прекрасного прекрасного rolling release эмодзи стали показываться не все, но зато чёрно-белые. И всё, как это починить непонятно.

Доколе.

#arch #linux #fonts #emoji #hate #why #wtf

2024.02.08 00:43