🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ Erfan Tayebi
منو سفارشی اضافه نشده
رضا حل شده توسط رضا

سلام من مطابق با کد‌های گفته شده این کد رو داخل فایل simpleplugin.php زدم:

<?php
/*
Plugin Name: simple plugin
Plugin URI: https://narmafzar5.com/
Description: a simple plugin
Version: 1.0.0
Author: erfan
Author URI: https://erfantayebi.ir
License: GPLv2 or later
Text Domain: simpleplugin
Domain Path: /languages/
*/
define('PLUGIN_DIR' , plugin_dir_path(__FILE__)) ;
define('PLUGIN_URL' , plugin_dir_url(__FILE__)) ;
define('PLUGIN_INC' , PLUGIN_DIR. '/inc/' ) ;
function simple_plugin_activation()
{
}
function simple_plugin_deactivation()
{
}
register_activation_hook(__FILE__ , 'simple_plugin_activation') ;
register_activation_hook(__FILE__ , 'simple_plugin_deactivation') ;
if(is_admin ())
{
    include PLUGIN_INC.'admin/menus.php' ;
}else{
    include PLUGIN_INC.'user/menus.php' ;
}
include PLUGIN_INC.'common/public.php' ;

این کد رو هم داخل فایل admin  و فایل menus.php زدم:

<?php
function simple_plugin_add_menu()
{
    add_menu_page(
        'منو سفارشی' ,
        'منو سفارشی' ,
        'manage_option' ,
        'simple_menu' ,
        'simple_menu_callback' ,
    ) ;
}
function simple_menu_callback()
{
}
add_action( 'admin_menu' , 'simple_plugin_add_menu') ;

اما منو سفارشی رو برای من نمیاره و خطایی رو هم نمیگیره 

اما بعد اینکه این کد رو با کد زیر جایگزین میکنم:

<?php
function simple_plugin_add_menu()
{
    add_menu_page(
        __( 'Custom Menu Title', 'textdomain' ),
        'custom menu',
        'manage_options',
        'custompage',
        'my_custom_menu_page',
    ) ;
}
function simple_menu_callback()
{
}
add_action( 'admin_menu' , 'simple_plugin_add_menu') ;

منو سفارشی رو برای من میاره اما وقتی روی منو سفارشی کلیک میکنم خطای زیر رو میده:

 

Fatal error: Uncaught TypeError: call_user_func_array(): Argument #1 ($function) must be a valid callback, function "my_custom_menu_page" not found or invalid function name in C:\xampp\htdocs\wordpress.exp\wordpress\wp-includes\class-wp-hook.php:303 Stack trace: #0 C:\xampp\htdocs\wordpress.exp\wordpress\wp-includes\class-wp-hook.php(327): WP_Hook->apply_filters('', Array) #1 C:\xampp\htdocs\wordpress.exp\wordpress\wp-includes\plugin.php(470): WP_Hook->do_action(Array) #2 C:\xampp\htdocs\wordpress.exp\wordpress\wp-admin\admin.php(259): do_action('toplevel_page_c...') #3 {main} thrown in C:\xampp\htdocs\wordpress.exp\wordpress\wp-includes\class-wp-hook.php on line 303

 

ممنون میشم راهنمایی بفرمایید مشکل کجاست ؟

سلام خدمت شما

شما دو اشتباه داشتید:

function simple_plugin_add_menu()
{
    add_menu_page(
        __( 'Custom Menu Title', 'textdomain' ),
        'custom menu',
        'manage_options'(درست),//      manage_option شما سری اول 
        'custompage',
        'simple_menu_callback'//($function),سری دوم نام تابع‌های فراخوانی شده یکی نیست
    ) ;
}
function simple_menu_callback()//($function) تابع فراخوانی شده نامش با تابع 
{
}
بهترین پاسخ
رضا ۰۱ شهریور ۱۴۰۰، ۰۷:۳۹