Maison >Tutoriel CMS >WordPresse >Créer un plugin de vote pour WordPress
Ce tutoriel montre la création d'un plugin WordPress, "Voot Me" pour ajouter des fonctionnalités de vote aux publications et afficher le contenu le plus voté.
Caractéristiques de clé:
voteme.php
Fichier de plugin gère les fonctionnalités de base, y compris l'intégration ajax via voteme.js
. Création du plugin:
Créer voteme.php
dans votre répertoire wp-content/plugins/voteme
. L'en-tête du plugin doit être:
<code class="language-php"><?php /* Plugin Name: Vote Me Plugin URI: [Your Plugin URI] Description: Adds voting to posts. Author: Abbas Version: 0.1 Author URI: [Your Author URI] */ define('VOTEMESURL', WP_PLUGIN_URL."/".dirname( plugin_basename( __FILE__ ) ) ); define('VOTEMEPATH', WP_PLUGIN_DIR."/".dirname( plugin_basename( __FILE__ ) ) );</code>
Créez un dossier js
dans voteme
et ajoutez voteme.js
. La structure du plugin doit ressembler à ceci:
Enquêter les scripts:
<code class="language-php">function voteme_enqueuescripts() { wp_enqueue_script('voteme', VOTEMESURL.'/js/voteme.js', array('jquery')); wp_localize_script( 'voteme', 'votemeajax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) ); } add_action('wp_enqueue_scripts', 'voteme_enqueuescripts');</code>
Activez le plugin dans le panneau d'administration WordPress.
Ajout de liens de vote:
Ajouter un lien de vote aux messages:
<code class="language-php">function voteme_getvotelink() { $votemelink = ""; if( get_option('votemelogincompulsory') != 'yes' || is_user_logged_in() ) { $post_ID = get_the_ID(); $votemecount = get_post_meta($post_ID, '_votemecount', true) != '' ? get_post_meta($post_ID, '_votemecount', true) : '0'; $link = $votemecount.' <a onclick="votemeaddvote('.$post_ID.');">Vote</a>'; $votemelink = '<div>' . $link . '</div>'; } else { $register_link = site_url('wp-login.php'); $votemelink = '<div><a href="'%20.%20%24register_link%20.%20'">Vote</a></div>'; } return $votemelink; } function voteme_printvotelink($content) { return $content . voteme_getvotelink(); } add_filter('the_content', 'voteme_printvotelink');</code>
Cela ajoute le nombre de votes et le lien sous chaque message.
Ajax Vote:
voteme.js
:
<code class="language-javascript">function votemeaddvote(postId) { jQuery.ajax({ type: 'POST', url: votemeajax.ajaxurl, data: { action: 'voteme_addvote', postid: postId }, success: function(data, textStatus, XMLHttpRequest) { var linkid = '#voteme-' + postId; jQuery(linkid).html(''); jQuery(linkid).append(data); }, error: function(MLHttpRequest, textStatus, errorThrown) { alert(errorThrown); } }); }</code>
voteme.php
:
<code class="language-php">function voteme_addvote() { $results = ''; global $wpdb; $post_ID = $_POST['postid']; $votemecount = get_post_meta($post_ID, '_votemecount', true) != '' ? get_post_meta($post_ID, '_votemecount', true) : '0'; $votemecountNew = $votemecount + 1; update_post_meta($post_ID, '_votemecount', $votemecountNew); $results .= '<div>' . $votemecountNew . '</div>'; die($results); } add_action( 'wp_ajax_nopriv_voteme_addvote', 'voteme_addvote' ); add_action( 'wp_ajax_voteme_addvote', 'voteme_addvote' );</code>
Cela gère la demande Ajax d'augmenter le nombre de votes.
(Les sections restantes détaillant la personnalisation, le tri, la restriction de l'utilisateur et la création de widgets sont trop étendus pour inclure ici. Le texte fourni donne le code complet pour chaque étape. Veuillez vous référer à l'entrée d'origine pour le code complet Extraits.)
Les sections finales couvrent l'ajout d'une colonne de comptage de votes à la liste des publications d'administration, ce qui le rend triable, restreignant le vote pour les utilisateurs enregistrés via une page de paramètres et la création d'un widget pour afficher les publications les plus votées. Tout le code nécessaire est présent dans l'entrée d'origine. N'oubliez pas de remplacer les uris d'espace réservé par le vôtre.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!