使用自定义挂钩更改插件函数的输出位置

时间:2014-03-09 作者:Aaron

我正在运行YouTube Video Fetcher plugin 它会获取youtube视频并将其显示在您的网站上。但是,我想将代码挂接到一个自定义容器中,而不是在发布后显示视频。

以下是插件中用于在发布后显示视频的函数:

//The below function is used to display the video after the post.
function append_the_video($content){
    return $content.youtube_video();
}
add_filter(\'the_content\', \'append_the_video\');
我尝试换出以下行:

add_filter(\'the_content\', \'append_the_video\');
使用该行,但它不起作用:

add_action(\'my_custom_hook_name\', \'append_the_video\');

1 个回复
SO网友:s_ha_dum

像你正在做的事情应该是可行的,但我认为你有一些地方出了问题。

首先,听起来你已经破解了这个插件。不要这样做,只需从the_content

在您的主题中functions.php 添加:

remove_filter(\'the_content\', \'append_the_video\');
Theyoutube_video() 作用depends on the $post variable. 这意味着它本质上是一个“仅循环”函数。如果您正试图这样做,则无法将其移出循环。它不能正常工作。

您可以在其他位置运行它,方法是将自己的回调添加到the_content.

function my_prepend_the_video($content){
    return youtube_video().$content;
}
add_filter(\'the_content\', \'my_prepend_the_video\');
当然,如果需要,您可以添加其他标记。

结束

相关推荐

Content hooks vs User hooks

这与其说是一个有直接答案的问题,不如说是一个理论问题。我一直在处理更新或删除帖子以及更新或删除用户时启动功能的不同操作。对于行动,publish_post 和before_delete_post 对于职位和personal_options_update, edit_user_profile_update 和delete_user 对于用户。通过更新后,您可以访问当前设置的值,同时访问新值,以便在发生任何事情之前进行您认为合适的任何更改。使用用户更新,您只能在设置新信息后才能访问新信息。Is there a