0
votes

Remplacer les styles de thème avec des styles de plug-in

J'écris un plugin WordPress personnalisé, j'utilise le thème OceanWP avec Emororor et j'essaie d'enroquer / enregistrer bootstrap 4.5 styles / scripts ainsi que mes propres styles / scripts personnalisés.

Cependant, les styles OceanWP sont Prenant toujours la priorité utilisée à la place de mes styles / scripts. P>

Actuellement, j'essaie de parcourir les actifs thématiques en utilisant la priorité dans le crochet Add_action, mais je n'ai aucune chance. P> J'essaie d'afficher une forme de plusieurs pièces personnalisée et d'afficher une page sur une page à l'aide d'un code abrégé. p>

            add_action( 'wp_enqueue_scripts', array( 'OCEANWP_Theme_Class', 'theme_css' ) );

            // Load his file in last.
            add_action( 'wp_enqueue_scripts', array( 'OCEANWP_Theme_Class', 'custom_style_css' ), 9999 );

            // Remove Customizer CSS script from Front-end.
            add_action( 'init', array( 'OCEANWP_Theme_Class', 'remove_customizer_custom_css' ) );

            // Load theme js.
            add_action( 'wp_enqueue_scripts', array( 'OCEANWP_Theme_Class', 'theme_js' ) );

/**
     * Load front-end scripts
     *
     * @since   1.0.0
     */
    public static function theme_css() {

        // Define dir.
        $dir           = OCEANWP_CSS_DIR_URI;
        $theme_version = OCEANWP_THEME_VERSION;

        // Remove font awesome style from plugins.
        wp_deregister_style( 'font-awesome' );
        wp_deregister_style( 'fontawesome' );

        // Load font awesome style.
        wp_enqueue_style( 'font-awesome', OCEANWP_THEME_URI . '/assets/fonts/fontawesome/css/all.min.css', false, '5.11.2' );

        // Register simple line icons style.
        wp_enqueue_style( 'simple-line-icons', $dir . 'third/simple-line-icons.min.css', false, '2.4.0' );

        // Register the lightbox style.
        wp_enqueue_style( 'magnific-popup', $dir . 'third/magnific-popup.min.css', false, '1.0.0' );

        // Register the slick style.
        wp_enqueue_style( 'slick', $dir . 'third/slick.min.css', false, '1.6.0' );

        // Main Style.css File.
        wp_enqueue_style( 'oceanwp-style', $dir . 'style.min.css', false, $theme_version );

        // Register hamburgers buttons to easily use them.
        wp_register_style( 'oceanwp-hamburgers', $dir . 'third/hamburgers/hamburgers.min.css', false, $theme_version );

        // Register hamburgers buttons styles.
        $hamburgers = oceanwp_hamburgers_styles();
        foreach ( $hamburgers as $class => $name ) {
            wp_register_style( 'oceanwp-' . $class . '', $dir . 'third/hamburgers/types/' . $class . '.css', false, $theme_version );
        }

        // Get mobile menu icon style.
        $mobileMenu = get_theme_mod( 'ocean_mobile_menu_open_hamburger', 'default' );

        // Enqueue mobile menu icon style.
        if ( ! empty( $mobileMenu ) && 'default' !== $mobileMenu ) {
            wp_enqueue_style( 'oceanwp-hamburgers' );
            wp_enqueue_style( 'oceanwp-' . $mobileMenu . '' );
        }

        // If Vertical header style.
        if ( 'vertical' === oceanwp_header_style() ) {
            wp_enqueue_style( 'oceanwp-hamburgers' );
            wp_enqueue_style( 'oceanwp-spin' );
        }

    }

    /**
     * Returns all js needed for the front-end
     *
     * @since 1.0.0
     */
    public static function theme_js() {

        // Get js directory uri.
        $dir = OCEANWP_JS_DIR_URI;

        // Get current theme version.
        $theme_version = OCEANWP_THEME_VERSION;

        // Get localized array.
        $localize_array = self::localize_array();

        // Comment reply.
        if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
            wp_enqueue_script( 'comment-reply' );
        }

        // Add images loaded.
        wp_enqueue_script( 'imagesloaded' );

        // Register nicescroll script to use it in some extensions.
        wp_register_script( 'nicescroll', $dir . 'third/nicescroll.min.js', array( 'jquery' ), $theme_version, true );

        // Enqueue nicescroll script if vertical header style.
        if ( 'vertical' === oceanwp_header_style() ) {
            wp_enqueue_script( 'nicescroll' );
        }

        // Register Infinite Scroll script.
        wp_register_script( 'infinitescroll', $dir . 'third/infinitescroll.min.js', array( 'jquery' ), $theme_version, true );

        // WooCommerce scripts.
        if ( OCEANWP_WOOCOMMERCE_ACTIVE
            && 'yes' !== get_theme_mod( 'ocean_woo_remove_custom_features', 'no' ) ) {
            wp_enqueue_script( 'oceanwp-woocommerce', $dir . 'third/woo/woo-scripts.min.js', array( 'jquery' ), $theme_version, true );
        }

        // Load the lightbox scripts.
        wp_enqueue_script( 'magnific-popup', $dir . 'third/magnific-popup.min.js', array( 'jquery' ), $theme_version, true );
        wp_enqueue_script( 'oceanwp-lightbox', $dir . 'third/lightbox.min.js', array( 'jquery' ), $theme_version, true );

        // Load minified js.
        wp_enqueue_script( 'oceanwp-main', $dir . 'main.min.js', array( 'jquery' ), $theme_version, true );

        // Localize array.
        wp_localize_script( 'oceanwp-main', 'oceanwpLocalize', $localize_array );

    }


2 commentaires

Nous devons voir le code Enqueue pour les styles que vous essayez de remplacer également s'il vous plaît.


@Fluffykitten les a ajoutés dans


3 Réponses :


0
votes

Il est difficile de dire comment décevoir les scripts w / o ayant un coup d'oeil au code source du thème. Quoi qu'il en soit, il vous suffit d'attendre que le thème ait fait son travail, vous accrochez-vous à WP et en supprimez les styles à la recherche de nom de leurs poignées. Quelque chose comme ceci:

add_action('template_redirect','my_template_redirect');
function my_template_redirect(){
    if (is_page('your_page')){
        // Load class / do stuff with scripts/styles
    }
}


3 commentaires

Vous voulez dire des erreurs de code ou vous n'avez pas réussi à atteindre les résultats attendus? Vous pouvez même essayer d'utiliser Enqueue en passant les paramètres de dépendance, mais vous devez toujours connaître le nom de la poignée du thème parent.


Non, aucun de ceux qui n'ont travaillé pour moi en ce sens qu'ils n'ont pas atteint les résultats souhaités


Si ce n'est qu'une question de peu de règles vous écrasez-les avec une règle CSS plus spécifique (copiez le thème parent et ajoutez un niveau de spécificité CSS). Si cela ne fonctionne pas, essayez d'utiliser Enqueue_styles Dépendances Paramètre et à l'aide du nom de la poignée issu de la fonction mère_CSS. Ce sont les moyens de réaliser ce que vous recherchez. Le reste est tout à propos de l'ordre d'exécution avec le code WordPress ou de faire la chose correctement. W / o vu tout c'est assez difficile mais je suppose que nous vous avons donné les réponses



0
votes

Si vous utilisez les mêmes noms de classe CSS, dans votre fichier CSS, il suffit d'ajouter! Important avant le demi-point sur les attributs que vous souhaitez forcer.


1 commentaires

Ils utilisent des sélecteurs de type d'entrée afin de cibler les éléments directement de cette façon. Je ne sais pas comment aller monter ça.



0
votes

Il y a plusieurs façons d'obtenir vos feuilles de style à charger une fois que d'autres feuilles de style sont chargées. Vous avez déjà essayé quelques façons, mais Le thème parent est une très haute priorité de 9999 code> afin que vous ayez besoin d'utiliser un autre plus élevé fort> ou cela ne fonctionnera pas. 1. Priorité forte> p>

Vous utilisez la priorité 9999 code> dans votre add_action code>, mais si vous regardez le thème parent, il utilise: P > xxx pré>

la priorité pour Votre code n'est pas réellement plus élevé que le thème parent strong>, vous devez donc augmenter à nouveau, par exemple P>

// create an array with the handles of the stylesheets you want to load before yours
$dependencies = array('oceanwp-style', 'oceanwp-hamburgers', /* etc. */ ); 
/* Noew pass this in as the dependencies for your stylesheets */
wp_register_style('bootstrap_css', 
    'https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css', 
    $dependencies, /* array of dependencies */
    NULL, 'all' );
wp_enqueue_style('bootstrap_css');

/* Add bootstrap to the dependencies, if your custom_styles needs it */
$dependencies[] = 'bootstrap_css'; 

wp_enqueue_style('custom_styles', 
    plugins_url('/assets/css/styles.css', __FILE__),
    $dependencies, /* array of dependencies */
);


0 commentaires