Add the featured term block

This commit is contained in:
Robin Cornett
2019-06-25 12:37:40 -04:00
parent 44fd9754dc
commit d6bbd8a782
6 changed files with 169 additions and 8 deletions
@@ -19,7 +19,10 @@ class DisplayFeaturedImageGenesisWidgetsBlocksFields {
'icon' => 'format-image',
'category' => 'widgets',
);
$output = array();
$output = array(
'ajax_url' => admin_url( 'admin-ajax.php' ),
'security' => wp_create_nonce( 'displayfeaturedimagegenesis-block-nonce' ),
);
$blocks = include 'fields/blocks.php';
foreach ( $blocks as $block => $data ) {
if ( empty( $data['nickname'] ) ) {
@@ -61,6 +64,14 @@ class DisplayFeaturedImageGenesisWidgetsBlocksFields {
return $output;
}
/**
* Set the block term action callback here since this class already has a getter for the form class.
*/
public function term_action_callback() {
$form = $this->get_form_class();
$form->term_action_callback();
}
/**
* @param $block
*
@@ -111,6 +122,20 @@ class DisplayFeaturedImageGenesisWidgetsBlocksFields {
);
}
/**
* @return array
*/
protected function term_fields() {
$form = $this->get_form_class();
return array_merge(
include 'fields/text.php',
include 'fields/term-taxonomy.php',
include 'fields/image.php',
include 'fields/archive.php'
);
}
/**
* Get an array of attributes for an individual field.
*
@@ -1,7 +1,13 @@
<?php
/**
* Class DisplayFeaturedImageGenesisWidgetsBlocksOutput
*/
class DisplayFeaturedImageGenesisWidgetsBlocksOutput {
/**
* @var string
*/
private $block = 'displayfeaturedimagegenesis-';
/**
@@ -50,6 +56,33 @@ class DisplayFeaturedImageGenesisWidgetsBlocksOutput {
return $output;
}
/**
* @param $atts
*
* @return string
*/
public function render_term( $atts ) {
if ( empty( $atts['term'] ) ) {
return '<div class="displayfeaturedimagegenesis-placeholder">' . __( 'Please select a term.', 'sixtenpress' ) . '</div>';
}
$atts = wp_parse_args( $atts, include 'fields/term-defaults.php' );
$term = get_term_by( 'id', $atts['term'], $atts['taxonomy'] );
if ( ! $term ) {
return '';
}
$classes = $this->get_block_classes( $atts, 'term' );
include_once plugin_dir_path( dirname( __FILE__ ) ) . 'output/class-displayfeaturedimagegenesis-output-term.php';
$output = '<div class="' . esc_attr( $classes ) . '">';
ob_start();
new DisplayFeaturedImageGenesisOutputTerm( $atts, array(), $term );
$output .= ob_get_contents();
ob_clean();
$output .= '</div>';
return $output;
}
/**
* Get the CSS classes for the block.
*
@@ -45,6 +45,7 @@ class DisplayFeaturedImageGenesisWidgetsBlocks {
);
}
add_action( 'enqueue_block_editor_assets', array( $this, 'localize' ) );
add_action( 'wp_ajax_displayfeaturedimagegenesis_block', array( $fields, 'term_action_callback' ) );
}
/**
+1
View File
@@ -8,6 +8,7 @@ return array(
__( 'Term', 'display-featured-image-genesis' ),
__( 'Featured Image', 'display-featured-image-genesis' ),
),
'nickname' => 'term',
),
'author' => array(
'title' => __( 'Display Featured Author Profile', 'display-featured-image-genesis' ),