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;
}
2025.11.27 12:17
В терминале можно неплохо удалять. Например, если у вас есть строка и курсор в центре:
xxx xxx █ xxx xxx
То вы можете:
– CTRL+W чтобы удалить слово слева
– ALT+D чтобы удалить слово справа
Почему?
2025.11.10 23:17
А что вам больше нравится: мёд или кленовый сироп?
Напишите в комментариях, интересно посмотреть какая у меня аудитория!
2025.10.21 19:36
# 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.
2025.10.19 22:42
Очень нужно сильно захотелось написать простой маленький консольный бинарничичек. Конечно же не на пхп ведь мы же не монстры, правда?
Немедленно открываем документацию к 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
2025.01.26 14:54
Invalid formula - Operator "=" doesn't support TEXT = NUMBER. Operator "=" supports ANY = ANY.
А почему `TEXT = NUMBER` это не `ANY = ANY`??????77
2024.06.28 10:22
Разработчики проекта Gentoo объявили о введении в строй отдельного репозитория с бинарными пакетами, собранными с поддержкой третьей версии микроархитектуры x86-64 (x86-64-v3), применяемой в процессорах Intel примерно с 2015 года
Новый репозиторий позволяет добиться более высокой производительности на современных процессорах, благодаря задействованию в программах расширенных инструкций.
Приятно видеть что мейнтейнеры генты не предают идеи генты!
2024.02.08 00:44
Традиционно, шрифты это ад и ненависть. Как настраивать fontconfig понимают только те кто понимают, но я не из тех кто пониимает и поэтому не понимаю. При каждой попытке занырнуть в этот xml я понимаю что не стоило этого делать.
Каким-то образом понаставив каких-то пакетов наугад удалось найти какой-то моноширинный шрифт на который больно смотреть, но всё же можно смотреть. Это была победа.
Понаставив каких-то других шрифтов начали показываться эмодзи, даже цветные, но не все. Ну, это уже была победная победа.
Но после очередного обновления прекрасного прекрасного rolling release эмодзи стали показываться не все, но зато чёрно-белые. И всё, как это починить непонятно.
Доколе.
#arch #linux #fonts #emoji #hate #why #wtf
2024.02.08 00:43