如何创建自定义WordPress插件

时间:2022-01-12 作者:Danish ali

我正在学习插件开发,需要创建一个包含以下内容的插件:

在WordPress的管理面板中添加菜单项和页面在该页面上,让我们使用具有文本区域和按钮的表单添加文本消息

<?php
/*
Plugin Name: The Admin Messages
Plugin URI: https://wpsaints.com
Author: Wp saints
Author URI: https://wpsaints.com
Version: 9.0
*/

function the_admin_menu() {
    add_menu_page( \'Form\', \'Form Items\', \'manage_options\', \'mypage\', \'the_admin_menu_page\', \' dashicons-menu\', 6 );
    
}

add_action( \'admin_menu\', \'the_admin_menu\' );


function the_admin_menu_page() {
    
    ?>
    <form method="post">
        <br><br>
        <lable><b>Enter your Message</b></lable>
        <br><br>
        <textarea></textarea><br><br>
        <button> Submit</button>


    </form>
    
    <?php
    
    function jal_install() {
        global $wpdb;
        
        $table_name = $wpdb->giftmix . "messagebox";
    }
    
    global $wpdb;
    
    $charset_collate = $wpdb->get_charset_collate();
    
    $sql = "CREATE TABLE $entermessage (
      id mediumint(9) NOT NULL AUTO_INCREMENT,
      time datetime DEFAULT \'0000-00-00 00:00:00\' NOT NULL,
      name tinytext NOT NULL,
      text text NOT NULL,
      url varchar(55) DEFAULT \'\' NOT NULL,
      PRIMARY KEY  (id)
    ) $charset_collate;";
    
    require_once( ABSPATH . \'wp-admin/includes/upgrade.php\' );
    dbDelta( $sql );
    if ( $_SERVER[ \'REQUEST_METHOD\' ] == "POST" ) {
        
        
        $Enter = ( $_POST[ "YourName" ] );
        $Email = ( $_POST[ "Email" ] );
    }
}
我已经创建了这个,但现在需要seniours对下一步做什么提出建议?请帮忙。非常感谢。

1 个回复
SO网友:Tim

这不是一个真正的问题,但作为一个不是真正的aswer,这里有一些你应该记住的准则。

Code convention

始终尝试在函数前面加上一些独特的前缀(例如公司名称)。这将像命名空间一样使用,以避免函数名冲突。

Database

创建和更新自定义数据库表应该在插件激活过程中完成,而不是在自定义函数调用过程中完成。

register_activation_hook( __FILE__, \'pluginprefix_function_to_run\' );
More information on the process here.

PHP

看起来您的代码在另一个PHP函数中定义了一个PHP函数。你不应该这样做。所有函数都应该在同一级别声明(或者更好,在class).

WordPress

WP让您在wp_options 桌子如果需要添加自定义配置(如admin字段),应尝试将其存储在此表中。您可以使用轻松设置和获取选项

$value = get_option( \'my_custom_option_name\' );
update_option( \'my_custom_option_name\', \'new value here\')
链接到文档get_optionupdate_option

您的下一步可能是尝试在带有short code 或者在你的主题中。

相关推荐