• Goede avond,

    Ik ben bezig met het maken van een plugin. Het is een plugin met de Flexslider, een tutorial via WP Tutsplus.

    Nu wil ik proberen om met require_once, de functies in een andere folder aan te roepen, om alles netjes neer te zetten in de juiste structuur. Ik wil de Core aanroepen in de submap includes, tevens het php bestand om de Custom post type te maken.

    Wanneer ik dit heb gedaan en ik de plugin wil activeren, krijg ik een “fatal error”. Ik heb op internet rond gezocht, maar nog niet echt een oplossing gevonden.

    De error:

    Warning: require_once(): http:// wrapper is disabled in the server configuration by allow_url_include=0 in /customers/0/d/a/httpd.www/wordpress/wp-content/plugins/ds-flexslider/ds-flexslider.php on line 32 Warning: require_once(/wordpress/wp-content/plugins/ds-flexslider/includes/core.php): failed to open stream: no suitable wrapper could be found in /customers/0/d/a/httpd.www/wordpress/wp-content/plugins/ds-flexslider/ds-flexslider.php on line 32 Fatal error: require_once(): Failed opening required ‘/wordpress/wp-content/plugins/ds-flexslider/includes/core.php’ (include_path=’.:/usr/share/php’) in /customers/0/d/a/httpd.www/wordpress/wp-content/plugins/ds-flexslider/ds-flexslider.php on line 32

    Hierbij de file ds-flexslider.php
    line 32require_once(DSSLIDER_PATH . 'includes/core.php');
    line 33require_once(DSSLIDER_PATH . 'includes/cpt-manager.php');

    Mochten jullie vragen hebben hoor ik het graag. Alvast hartelijk dank.
    Mvg. Casper

9 reacties aan het bekijken - 1 tot 9 (van in totaal 9)
  • Als ik kijk naar require_once(DSSLIDER_PATH . ‘includes/core.php’)’

    Dan lijk met dat bold gedeelte niet echt een valid path omdat DSSLIDER_PATH natuurlijk niet bestaat heb je dat voor nu even erin gezet of staat dat ook in de Live code ?

    Daar moet je natuurlijk de Root_dir. of homepage url van maken.

    Thread starter Casper B

    (@casper-b)

    @shmoo, Ja de code heb ik ook online geplaatst in de plugin map van WP. Mijn code van ds-flexslider.php ziet er als volgt uit:

    define('DSSLIDER_PATH', WP_PLUGIN_URL . '/' .plugin_basename( dirname(__FILE__) ) . '/'); // Path to the plugin directory
    define('DSSLIDER_NAME', "DesignStyle Slider");
    define("DSSLIDER_VERSION", "1.0");
    define("DSSLIDER_SLUG", 'designstyle-slider');
    
    // Add the Javascript/CSS Files
    wp_enqueue_script('flexslider', DSSLIDER_PATH.'assets/js/jquery.flexslider-min.js', array('jquery'));
    wp_enqueue_style('flexslider_css', DSSLIDER_PATH.'assets/css/flexslider.css');
    
    // Check if external plugin is activated
    /*if(is_plugin_active('advanced-custom-fields/acf.php')) {*/
    
    	// Including external files
    	require_once(DSSLIDER_PATH . 'includes/core.php');
    	require_once(DSSLIDER_PATH . 'includes/cpt-manager.php');

    Zoals je ziet heb ik een constans aangemaakt, waardoor de functie ‘DSSLIDER_PATH’ aangemaakt is.

    Hopelijk klopt dit dat nu wel?

    De error geeft aan wat het probleem is: allow_url_include is uitgeschakeld in je php.ini bestand.

    Thread starter Casper B

    (@casper-b)

    Ik heb na advies van een collega de debugger aangezet, nu krijg ik alleen het volgende error bericht:

    Notice: wp_enqueue_script was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or init hooks. Please see Debugging in WordPress for more information. (This message was added in version 3.3.)

    Ik heb via de codex de volgende code gebruikt om een javascript document te linken:

    wp_enqueue_script('flexslider', plugins_url('assets/js/jquery.flexslider-min.js', __FILE__), array('jquery'));

    De code zegt dat dit incorrect is, maar wat doe ik precies verkeerd nu?

    Je moet inhaken op één van de vermelde hooks, e.g.:

    function flex_enqueue_script(){
        wp_enqueue_script( 'flexslider', plugins_url( 'assets/js/jquery.flexslider-min.js', __FILE__), array( 'jquery' ), null, true );
    }
    add_action( 'wp_enqueue_scripts', 'flex_enqueue_script' );
    Thread starter Casper B

    (@casper-b)

    @donutz, Helaas, krijg ik nog deze foutmelding…

    Notice: wp_enqueue_style was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or init hooks.

    UPDATE:
    Sorry, ik had in de foutmelding de functie wp_enqueue_style over het hoofd gezien…
    Momenteel staat hij zo in de code:

    wp_enqueue_style( 'flexslider_css', plugins_url('assets/css/flexslider.css', __FILE__) );

    EDIT:

    function flex_enqueue_script(){
        wp_enqueue_script( 'flexslider', plugins_url( 'assets/js/jquery.flexslider-min.js', __FILE__), array( 'jquery' ), null, true );
        wp_enqueue_style( 'flexslider_css', plugins_url('assets/css/flexslider.css', __FILE__) );
    }
    add_action( 'wp_enqueue_scripts', 'flex_enqueue_script' );
    Thread starter Casper B

    (@casper-b)

    @donutz, Allereerst hartstikke bedankt, het werkt nu zonder foutmeldingen. Al een week mee bezig en kreeg toen FATAL ERROR, nu met debugger aan werkt het veel fijner.

    Toch nog een vraag uit nieuwsgierigheid, het is dus belangrijk om tegenwoordig bestanden die je aan de plugin wilt haken als het waren, binnen een functie te zetten en die vervolgens in de wp_enqueue_scripts te “hooken”. En waarom hoort eigenlijk de link naar de css in een script functie, css zorgt alleen voor de opmaak…

    Nogmaals enorm bedankt voor je hulp!

    Thnkx Casper

9 reacties aan het bekijken - 1 tot 9 (van in totaal 9)
  • Het onderwerp ‘Plugin Fatal error. oplossing’ is gesloten voor nieuwe reacties.