个性化阅读
专注于IT技术分析

更改插件内部wordpress函数的输出并将其用于wordpress主题

所以…我正在开发一个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()来使该过滤器起作用, 但是你需要在THAT THEME中使用它, 我不希望这样。我只想修改该功能…有可能吗?

我只是不了解他们的文档…我对wordpress感到愤怒… fkn bulsht。


#1


要使用类似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);。文献资料

赞(0)
未经允许不得转载:srcmini » 更改插件内部wordpress函数的输出并将其用于wordpress主题

评论 抢沙发

评论前必须登录!