Как переопределить отображение плагинов WordPress - PullRequest
0 голосов
/ 19 сентября 2011

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

Я работаю с некоторыми плагинами WordPress, которые имеют ужасный вывод - в частности, Календарь событий 1.6.5. Этот плагин имеет файлы PHP для вывода содержимого события, например gridview.php , list.php , single.php и table.php . Я знаком с подключением к функциям, которые эти файлы вызывают, чтобы переопределить работу плагина, но мне нужно изменить весь формат отображения, чтобы он подходил моей теме.

Есть ли способ переопределить эти отображаемые файлы, или я просто создаю свой собственный тематический файл и вызываю те же функции, что и файлы плагина?

1 Ответ

2 голосов
/ 09 апреля 2012

Я искал похожий ответ.Я не совсем уверен, как реализован Календарь событий, но, исходя из опыта, сделав нечто подобное с плагином Business Directly, вы можете перезаписать хуки, привязав их к вашим собственным методам из файла functions.php вашей темы.

Вот исключение, которое я написал для переопределения ловушки 'wpbdm_show-add-list-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!";
}
...