💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۴ مسعود عظیمی
اضافه نشدن آیکون به منوی جدید
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۱۱ مهر ۱۴۰۲

سلام و درود - بخش افزودن آیکون به عنوان تمرین در درس داد شد - منتها با اضافه کردن این ویژگی به کدها آیکون گزینه مدیریتی تغییر نکرد و همون چرخ دنده باقی میمونه

کدی که نوشتین رو بفرستین تا بررسی بشه

ابوالفضل محجوب ۱۱ مهر ۱۴۰۲، ۱۳:۱۴
<?php
//include_once 'BaseMenu.php';
class Users extends BaseMenu
{
    public function __construct()
    {
        $this->page_title = 'صفحه مدیریت کاربران';
        $this->menu_title = 'مدیریت کاربران';
        $this->menu_slug = 'all_users';
        $this->icon_url = "dashicons-admin-multisite";
        $this->has_sub_menu = true;
        $this->sub_menu_items = [
            'add_user' => [
                'parent_slug' => $this->menu_slug,
                'page_title' => 'صفحه افزودن کاربر',
                'menu_title' => 'افزودن کاربر',
                'menu_slug' => 'add_user',
                'callback' => 'add_user'
            ],
            'transaction_user' => [
                'parent_slug' => $this->menu_slug,
                'page_title' => 'صفحه تراکنش‌های کاربر',
                'menu_title' => 'تراکنش‌های کاربر ',
                'menu_slug' => 'transaction_user',
                'callback' => 'transaction_user'
            ],
        ];
        parent::__construct();
    }
    public function index()
    {
        // TODO: Implement index() method.
        echo '<h1>مدیریت کاربران</h1>';
    }
    public function add_user()
    {
        echo '<h1>افزودن کاربر</h1>';
        if (isset($_POST['submit'])) {
            echo 'submit';
        }
        include_once OOP_PLUGIN_DIR . 'view/user/user_add_view.php';
    }
    public function transaction_user()
    {
        echo '<h1>تراکنش‌های کاربر</h1>';
        include_once OOP_PLUGIN_DIR . 'view/user/transaction_user.php';
    }
}

 

کلاس users: 

 

<?php
//include_once 'BaseMenu.php';
class Users extends BaseMenu
{
    public function __construct()
    {
        $this->page_title = 'صفحه مدیریت کاربران';
        $this->menu_title = 'مدیریت کاربران';
        $this->menu_slug = 'all_users';
        $this->icon_url = "dashicons-admin-multisite";
        $this->has_sub_menu = true;
        $this->sub_menu_items = [
            'add_user' => [
                'parent_slug' => $this->menu_slug,
                'page_title' => 'صفحه افزودن کاربر',
                'menu_title' => 'افزودن کاربر',
                'menu_slug' => 'add_user',
                'callback' => 'add_user'
            ],
            'transaction_user' => [
                'parent_slug' => $this->menu_slug,
                'page_title' => 'صفحه تراکنش‌های کاربر',
                'menu_title' => 'تراکنش‌های کاربر ',
                'menu_slug' => 'transaction_user',
                'callback' => 'transaction_user'
            ],
        ];
        parent::__construct();
    }
    public function index()
    {
        // TODO: Implement index() method.
        echo '<h1>مدیریت کاربران</h1>';
    }
    public function add_user()
    {
        echo '<h1>افزودن کاربر</h1>';
        if (isset($_POST['submit'])) {
            echo 'submit';
        }
        include_once OOP_PLUGIN_DIR . 'view/user/user_add_view.php';
    }
    public function transaction_user()
    {
        echo '<h1>تراکنش‌های کاربر</h1>';
        include_once OOP_PLUGIN_DIR . 'view/user/transaction_user.php';
    }
}

 

 

 

 

مسعود عظیمی ۱۱ مهر ۱۴۰۲، ۱۵:۳۵

این خطا ایجاد میشه :

 

( ! ) Fatal error: Uncaught TypeError: trim(): Argument #1 ($string) must be of type string, array given in C:\wamp\www\tarjomannegar\wp-includes\link-template.php on line 3901


 

مسعود عظیمی ۱۱ مهر ۱۴۰۲، ۱۵:۳۷

سلام.

از سه تا نکته زیر مطمئن بشید :

1- توی کلاس maseMenu پراپرتی $icon_url را تعریف کرده اید؟

 //defining properties
    protected string $page_title, $menu_title, $capability, $menu_slug, $callback, $icon_url, $position;
    protected bool $has_sub_menu = false;
    protected array $sub_menu_items = [];

2-توی متد add_menu_page آرگومان icon_url توسط مقدار دهی کرده اید؟

 public function add_menu_page()
    {
        //WordPress function to add menu on admin side
        add_menu_page(
            $this->page_title,
            $this->menu_title,
            $this->capability,
            $this->menu_slug,
            [$this, 'index'],
            $this->icon_url,
            $this->position
        );
        }

3- توی متد __construct() توی کلاس user مقدار دهی کرده باشید؟

 public function __construct()
    {
        $this->page_title = 'صفحه مدیریت کاربران';
        $this->menu_title = 'مدیریت کاربران';
        $this->menu_slug = 'users';
        $this->icon_url = 'dashicons-admin-multisite';
        $this->position = '';
   }
            
اسماعیل آبابائی ۲۳ آذر ۱۴۰۲، ۱۶:۰۰