Criando campo personalizado no WordPress

Nessa videoaula, vou mostrar como criar um campo personalizado no WordPress, manualmente. Trabalharemos com Orientação a Objeto no WordPress.

Código:

AbstractMetaBox.php

<?php

abstract class AbstractMetaBox {

    public function __construct() {
        add_action('add_meta_boxes', array($this, 'addMetaBox'));
        add_action('save_post', array($this, 'saveFields'));
    }

    abstract public function createForm();

    abstract public function addMetaBox();

    abstract public function saveFields($post_id);
}

FeaturedMetaBox.php

<?php

class FeaturedMetaBox extends AbstractMetaBox {

    public function createForm() {
        global $post;
        $featured = get_post_meta($post->ID, 'featured', true);
        $options  = array('nao' => 'NÃO', 'sim' => 'SIM');
        $result   = '<label for="featured">Destaque</label>';
        $result  .= '<select name="featured" id="featured">';
        foreach ($options as $k => $v) {
            $selected = ($k == $featured) ? 'selected="selected"' : '';
            $result  .= '<option ' . $selected . ' value="' . $k . '">' . $v . '</option>';
        }
        $result .= '</select>';
        echo $result;
    }

    public function addMetaBox() {
        add_meta_box('custom_field_featured', 'Configurações Extras', array($this, 'createForm'), 'post');
    }

    public function saveFields($post_id) {
        if (isset($_POST['featured'])) {
            $featured = sanitize_text_field($_POST['featured']);
            update_post_meta($post_id, 'featured', $featured);
        }
    }

}

bootstrap.php

<?php

require_once "AbstractMetaBox.php";
require_once "FeaturedMetaBox.php";

$featuredMetaBox = new FeaturedMetaBox();

Espero que ajude. Até a próxima.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *