Измените вывод функции WordPress внутри плагина и используйте его в теме WordPress. - PullRequest
0 голосов
/ 08 июня 2019

Итак ... Я разрабатываю плагин для WordPress, и предполагается изменить источник изображений, которые вы получаете с помощью функции WordPress get_the_post_thumbnail_url()

У вас есть тема, и вы получаете источники для изображений сget_the_post_thumbnail_url($id) и он возвращает что-то вроде этого https://wordpress/path/to/image.jpg, и я хочу изменить вывод этой функции ВНУТРИ этого плагина, например, когда я изменяю его в моем плагине, и когда вы используете эту функцию внутри своей темы, он выводит мою измененную версию.

Я пытался использовать add_filter(), и он просто не работает, и я не знаю, должен ли он вообще работать.

function my_function_idk( $example ) {
    $asd = $example.'lul123';
    return $asd;
}
add_filter( 'get_the_post_thumbnail_url', 'my_function_idk' );
// expected output: https://wordpress/path/to/image.jpglul123

Фактический результат: https://wordpress/path/to/image.jpg

Может быть, я понял, что вы должны использовать apply_filters(), чтобы этот фильтр работал, но вы должны использовать его в ЭТОЙ ТЕМЕ, а я этого не хочу.Я просто хочу изменить эту функцию ... Возможно ли это?

Я просто не понимаю их документацию ... Я бушую за WordPress ... fkn bulsht.

1 Ответ

1 голос
/ 08 июня 2019

Использовать крючок как add_filter( 'get_the_post_thumbnail_url_hook', 'my_function_idk' );.Внутри функции, которую вы хотите подключить, необходимо следующее:

function get_the_post_thumbnail_url( $post = null, $size = 'post-thumbnail' ) {
    $post_thumbnail_id = get_post_thumbnail_id( $post );
    if ( ! $post_thumbnail_id ) {
        return false;
    }
    return  apply_filters('get_the_post_thumbnail_url_hook', $post_thumbnail_id, $size );
}

Посмотрите на return apply_filters('get_the_post_thumbnail_url_hook', $post_thumbnail_id, $size );

И эта функция не имеет ловушки. Загляни внутрь ядра .Так что вы не можете его «зацепить».

Но у вас есть один вариант:
Внутри get_the_post_thumbnail_url мы получили wp_get_attachment_image_url , которые имеют wp_get_attachment_image_src ** И у этой функции есть return apply_filters( 'wp_get_attachment_image_src', $image, $attachment_id, $size, $icon );

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

Попробуйте это: add_filter( 'wp_get_attachment_image_src', 'my_function_idk', 90, 4 );. Документация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...