markdown Como criar um插件Wordpress

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown Como criar um插件Wordpress相关的知识,希望对你有一定的参考价值。

# Como criar plugin Wordpress

## Setup inicial
Criar a pasta com o nome do plugin no path /wordpress/wp-content/plugins
- ex: `meuprojeto/wp-content/plugins/meu_primeiro_plugin`

## Arquivo de configuração
Criar uma arquivo com o mesmo nome do plugin na raiz da pasta do plugin, contendo o seguindo conteúdo
```php```
// meuprojeto/wp-content/plugins/meu_primeiro_plugin/meu_primeiro_plugin.php
<?php
/*
Plugin Name: Meu Primeiro Plugin
Plugin URI: http://urldositedoplugin.com
Description: Meu primeiro plugin no WP
Version: 1
Author: Marcio
Author URI: http://marciojunior.com
License: GPLv2 or later
Text Domain: meu_primeiro_plugin
```


## Criando classe padrão Singleton
```php```
<?php
// meuprojeto/wp-content/plugins/meu_primeiro_plugin/meu_primeiro_plugin.php
class Meu_Plugin {
    private static $instance;

    public static function getInstance() {
        if(self::$instance == NULL) {
            self::$instance = new self();
        }
    }

    private function __construct() {
        remove_action('welcome_panel', 'wp_welcome_panel');
        add_action('welcome_panel', 'my_welcome');
        // ... All scripts here... 
    }
}

Meu_Plugin::getInstance();
```

## Adicionando css
```php```
<?php
class Meu_Plugin {
    private function __construct() {
        add_action('admin_enqueue_scripts', array($this, 'add_my_css');
    }
    
    function add_my_css() {
        wp_register_style('my_css', plugin_dir_url(__FILE__).'css/style.css');
        wp_enqueue_style('my_css');
        
        // plugin_dir_url(__FILE__) pega o caminho do plugin
    }
}
}
```

## Flush rewrite rules
```php```
<?php
public static activate() {
    self::register_post_type();
    flush_rewrite_rules();
}

Meu_Plugin::getInstance();

register_deactivation_hook(__FILE__, 'flush_rewrite_rules');
register_activation_hooke(__FILE__,'Meu_Plugin::activate');
```

## Internacionalização
```php```
// Instalar plugin Loco Translator para ajudar a traduzir
private function __construct() {
    add_action('init', array($this,'load_textdomain'));
}
function load_textdomain() {
    load_plugin_textdomain(self::TEXT_DOMAIN, false, dirname(plugin_basename(__FILE__)));
}

// chamando a tradução
_e("Esse titulo sera traduzido sem o echo", TEXT_DOMAIN);
echo __("Esse titulo sera traduzido somento com o echo", TEXT_DOMAIN);

```

## Adicionando menu no admin
```php```
<?php
class My_Plugin {
    private function __construct() {
        add_action('admin_menu', array($this, 'add_my_plugin_menu'));
    }

    public function add_my_plugin_menu() {
        add_menu_page('Menu Nome', 'Menu Nome', 'manage_options', 'my_plugin', 'My_Plugin::my_function_here', 'dashicon-twitter', '25');
    }
```

以上是关于markdown Como criar um插件Wordpress的主要内容,如果未能解决你的问题,请参考以下文章

markdown Como criar um novo projeto utilizar o Angular CLI

markdown Observer - Como disparar um observer personalizado

markdown Parâmetros - Como montar um array de concatenar com um valor final em ambos registros

markdown Observer - Como trafegar dados de uma controller para um观察员

javascript Criar JSON de um Form

javascript Filtrar Array com strings com Virgulas e criar um novo unificado sem valores repetidos