web-dev-qa-db-fra.com

Remplacer le plugin avec 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');
    }
}

Bonjour à tous, J'ai extrait la fonction ci-dessus du fichier des fonctions principales du plug-in et j'espérais la modifier pour ne remplacer que la galerie par défaut WP sur mon type de publication personnalisé. J'ai donc changé l'instruction if ci-dessus en:

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

Alors je l'ai changé et mis dans mon functions.php - mais j'obtiens une erreur qui indique que je ne peux pas redéclarer add_gpp_gallery

Comment pourrais-je remplacer les fonctions du plugin sans toucher au code du plugin?

merci

MODIFIER

J'ai essayé:

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');
    }
}

et j'obtiens une erreur fatale -

Erreur fatale: appel de la fonction non définie is_post_type () dans /home/hostspro/public_html/movemaine.com/wp-content/themes/movemaine/functions.php à la ligne 269

EDIT # 2

J'avais croisé mes fonctions et j'oubliais de changer le is_post_type. Le code suivant fonctionne et merci pour l'aide

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');
    }
}
1
Jason

Vous pouvez changer le nom de add_gpp_gallery function dans le rappel et dans la déclaration pour éviter le conflit entre l'original et votre clone.

Quelque chose comme ça...

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');
    }
}

... devrait fonctionner pour vous.

Bonus: vous pouvez supprimer l'action du plugin d'origine avec remove_action () si nécessaire.

3
Michal Mau