Προς το περιεχόμενο

Το πρώτο μου WP Plugin


gotham7878

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Σήμερα δοκίμασα και έφτιαξα το πρώτο μου wp plugin. Για δοκιμή ήθελα απλά να βάλω ένα logo σε fixed position στο footer. Είχα όμως κάποια προβληματάκια. Το κακό είναι οτι όσο και να googlαρα (πχ. Create a wp custom plugin to run script in footer κλπ) μου έβγαζε λύσεις για έτοιμα plugins.

Τέσπα στην αρχή το έκανα έτσι

<?php
/**
* Plugin Name: Mysite Footer
* Plugin URI: https://www.mysite.gr
* Description: This is the very first plugin I ever created.
* Version: 1.0
* Author: Gotham
* Author URI: https://www.mysite.gr
**/?>
<script>
	document.addEventListener("DOMContentLoaded", function(){
    var newelem = document.createElement("div");
    newelem.innerHTML = '<a href="https://www.mysite.gr" target="_blank" style="position:fixed;bottom: 10; left:10px"><img height="30" title="My Logo" src="https://www.mysite.gr/logo.png"></a>';
    document.body.appendChild(newelem);
});
</script>

 Έτσι δούλεψε, αλλά κατα την ενεργοποίηση του plugin, στην σελίδα των πρόσθετων έβγαζε σφάλμα "The plugin generated 400 characters of unexpected output during activation. If you notice “headers already sent” messages, problems with syndication feeds or other issues, try deactivating or removing this plugin". Επίσης στο source code της σελίδας μου έβγαζε το script tag πανω πάνω. Πριν το <!doctype html>

Δηλαδή

<script>......</script><!doctype html>

 

Googlara το σφάλμα και έλεγε για κενούς χαρακτήρες στο τέλος της php tag.  Έσβησα τα πάντα από κενούς χαρακτήρες αλλά το πρόβλημα παρέμενε.

Είπα να σπάσω το php με το js και έφτιαξα στο φάκελο του pluin μου ένα φάκελο js και έβαλα μέσα το script μου myscript.js. Δηλάδή έτσι /js/myscript.js

document.addEventListener("DOMContentLoaded", function(){
    var newelem = document.createElement("div");
    newelem.innerHTML = '<a href="https://www.mysite.gr" target="_blank" style="position:fixed;bottom: 10; left:10px"><img height="30" title="My Logo" src="https://www.mysite.gr/logo.png"></a>';
    document.body.appendChild(newelem);
});

και μετά στο index.php του plugin έκανα τον κώδικα έτσι.

<?php
/**
* Plugin Name: Mysite Footer
* Plugin URI: https://www.mysite.gr
* Description: This is the very first plugin I ever created.
* Version: 1.0
* Author: Gotham
* Author URI: https://www.mysite.gr
**/
function myscript_init() {
    wp_enqueue_script( 'myscript',  plugin_dir_url( __FILE__ ) . '/js/myscript.js' );                      
}
add_action( 'wp_enqueue_scripts', 'myscript_init' );?>

Αλλά τώρα δεν δουλέυει με τίποτα.

Επεξ/σία από gotham7878
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
10 ώρες πριν, filip123go είπε

Δεν έχω κάνει κάτι διαφορετικό από ότι βλέπω. Μόνο που αντί για add_filter έβαλα add_action αφού δεν είναι filter. Αυτό που άλλαξα είναι οτι άλλαξα το index.php σε mysite.php όπως έβαλε και η σελίδα που μου έστειλες, το όνομα το plugin

=========================

Τώρα σε μία άλλη σελίδα, είδα οτι μετά το add_action έβαλε do_action. μάλλον για να το καλέσει, αλλά τίποτα :(

Δηλαδή το έκανα έτσι

<?php
/**
* Plugin Name: Mysite Footer
* Plugin URI: https://www.mysite.gr
* Description: This is the very first plugin I ever created.
* Version: 1.0
* Author: Gotham
* Author URI: https://www.mysite.gr
**/
function myscript_init() {
    wp_enqueue_script( 'myscript',  plugin_dir_url( __FILE__ ) . '/js/myscript.js' );                      
}
add_action( 'wp_enqueue_scripts', 'myscript_init' );
do_action( 'wp_enqueue_scripts');?>

 

Επεξ/σία από gotham7878
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...