这似乎是一个简单的问题,但事实证明很难找到相关信息。
我正在使用一些输出很糟糕的WordPress插件 - 特别是事件日历1.6.5。此插件包含用于输出事件内容的PHP文件,如 gridview.php , list.php , single.php 和表.PHP 。我熟悉这些文件调用的函数来覆盖插件的工作方式,但我需要更改整个显示格式以适合我的主题。
有没有办法覆盖这些显示文件,还是只创建自己的主题文件并调用插件文件使用的相同功能?
答案 0 :(得分:2)
我正在寻找类似的答案。我不确定事件日历是如何实现的,但是根据使用Business Directly Plugin做过类似事情的经验,你可以通过从主题的functions.php文件中挂钩你自己的方法来覆盖钩子。
这是一个除了我写的覆盖'wpbdm_show-add-listing-form'的钩子:
/*
* Fix the horrible output of wpbusdirman_displaypostform() from wpbusdirman.php
*
* This is done by overriding the wpbdm_show-add-listing-form hook with my own function
*/
add_filter('wpbdm_show-add-listing-form', 'alternative_wpbusdirman_displaypostform', 10, 4);
// Ensure that the method signature is the same (same order of vars, same
function alternative_wpbusdirman_displaypostform($makeactive = 1, $wpbusdirmanerrors = '', $neworedit = 'new', $wpbdmlistingid = '')
{
// This assumes that the Business Directory Plugin is installed
if (!function_exists("wpbusdirman_displaypostform"))
{
// If the funct doesn't exist then it probably isn't installed
return '';
}
// Call the method and regex parse out the bits we don't want
$original_output = wpbusdirman_displaypostform($makeactive, $wpbusdirmanerrors, $neworedit, $wpbdmlistingid);
// Do some fixing of the output. In this example we do nothing and just return what we received.
return $original_output . " WE EDITED IT!";
}