Heim >CMS-Tutorial >WordDrücken Sie >Erstellen Sie ein Wahlplugin für WordPress

Erstellen Sie ein Wahlplugin für WordPress

William Shakespeare
William ShakespeareOriginal
2025-02-21 09:34:11594Durchsuche

Dieses Tutorial zeigt, dass das Erstellen eines WordPress-Plugins, "stimmen", Stimmenfunktionen für Beiträge und die Anzeige von Top-bewerteten Inhalten hinzugefügt wird.

Schlüsselmerkmale:

  • benutzerdefiniertes Stimmen -Plugin: a voteme.php Plugin -Datei übernimmt die Kernfunktionalität, einschließlich AJAX -Integration über voteme.js.
  • Post -Abstimmung: Ein Stimmrechtsverbindungslink unter jedem Beitrag aktualisiert die Stimmenzählungen mit AJAX dynamisch.
  • Integration des Administratorpanels: Der WordPress -Administrator zeigt Beiträge nach Stimmenzahl an.
  • Registrierte Benutzerbeschränkung: Die Abstimmung ist auf registrierte, angemeldete Benutzer beschränkt, um Spam zu verhindern.
  • Top -gewählte Beiträge Widget: Ein anpassbares Widget zeigt die beliebtesten Beiträge.

Plugin -Erstellung:

Erstellen Sie voteme.php in Ihrem wp-content/plugins/voteme Verzeichnis. Der Plugin -Header sollte:

sein
<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>

Erstellen Sie einen js -Fordner in voteme und fügen Sie voteme.js hinzu. Die Plugin -Struktur sollte Folgendes ähneln:

Create a Voting Plugin for WordPress

Enqueue die Skripte:

<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>

Aktivieren Sie das Plugin im WordPress -Administratorfeld.

Create a Voting Plugin for WordPress

Hinzufügen von Abstimmungslinks:

Fügen Sie Beiträgen zu Posts hinzu:

<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>

Dies fügt die Stimmenzahl und den Link unter jedem Beitrag hinzu.

Create a Voting Plugin for WordPress

AJAX -Abstimmung:

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>

Dies verwaltet die AJAX -Anfrage, um die Stimmenanzahl zu erhöhen.

Create a Voting Plugin for WordPress

(Die verbleibenden Abschnitte, in denen die Anpassung, Sortierung, Sortierung, Benutzereinschränkung und Widget -Erstellung von Administratoranpassungen beschrieben wird, sind zu umfangreich, um hier einzuschließen. Der bereitgestellte Text enthält den vollständigen Code für jeden Schritt. Siehe die ursprüngliche Eingabe für den vollständigen Code Snippets.)

In den letzten Abschnitten werden der Liste der Verwaltungsbeiträge eine Spalte für die Stimmenzahl hinzugefügt, wodurch sie sortierbar ist, die Stimmen auf registrierte Benutzer über eine Einstellungsseite einschränken und ein Widget erstellt werden, um die obersten Beiträge anzuzeigen. Alle erforderlichen Code sind in der ursprünglichen Eingabe vorhanden. Denken Sie daran, Platzhalter -URIs durch Ihre eigenen zu ersetzen.

Das obige ist der detaillierte Inhalt vonErstellen Sie ein Wahlplugin für WordPress. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn