Переопределить плагин с помощью functions.php


add_action('wp_head','add_gpp_gallery');
function add_gpp_gallery() {
    if( ( is_single() || is_page() ) && ( !is_page_template('page-blog.php') ) ){
        remove_shortcode('gallery', 'gallery_shortcode');
        add_shortcode('gallery', 'gpp_gallery_shortcode');
    }
}

Привет всем, я вытащил вышеуказанную функцию из файла основных функций плагина, и я надеялся изменить ее, чтобы заменить галерею WP по умолчанию только для моего пользовательского типа публикации. Поэтому я изменил оператор if выше на:

if (is_single() && is_post_type('post_type'){

Поэтому я изменил его и вставил в свой functions.php - но я получаю сообщение об ошибке, в котором говорится, что я не могу повторно объявить add_gpp_gallery

Как бы я переопределил функции плагина, не прикасаясь к плагину код?

Спасибо

РЕДАКТИРОВАТЬ

Я пытался:

remove_action( 'wp_head', 'add_gpp_gallery' );
add_action('wp_head','jason_add_gpp_gallery');
function jason_add_gpp_gallery() {
    if ( is_single() && is_post_type('listings') ){
        remove_shortcode('gallery', 'gallery_shortcode');
        add_shortcode('gallery', 'gpp_gallery_shortcode');
    }
}

И я получаю фатальную ошибку -

Неустранимая ошибка: Вызов неопределенной функции is_post_type() в /home/hostspro/public_html/movemaine.com/wp-content/themes/movemaine/functions.php в строке 269

РЕДАКТИРОВАТЬ #2

Я перепутал свои функции и забыл изменить тип is_post_type. Следующий код работает, и спасибо за помощь

remove_action( 'wp_head', 'add_gpp_gallery' );
add_action('wp_head','jason_add_gpp_gallery');
function jason_add_gpp_gallery() {
    if ( is_single() && 'listings' == get_post_type() ) {
        remove_shortcode('gallery', 'gallery_shortcode');
        add_shortcode('gallery', 'gpp_gallery_shortcode');
    }
}
Author: Jason, 2011-08-18

1 answers

Вы можете изменить имя add_gpp_gallery функция как в обратном вызове, так и в объявлении, чтобы избежать конфликта между оригиналом и вашим клоном.

Что-то вроде этого...

add_action('wp_head','jason_add_gpp_gallery');
function jason_add_gpp_gallery() {
    if ( is_single() && 'your_post_type' == get_post_type() ) ){
        remove_shortcode('gallery', 'gallery_shortcode');
        add_shortcode('gallery', 'gpp_gallery_shortcode');
    }
}

... должно сработать на вас.

Бонус: При необходимости вы можете удалить исходное действие плагина с помощью remove_action().

 4
Author: Michal Mau, 2011-08-18 13:01:42