mirror of
https://github.com/10h30/display-featured-image-genesis.git
synced 2026-07-19 14:33:32 +09:00
Add the featured term block
This commit is contained in:
@@ -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' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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' ),
|
||||
|
||||
Reference in New Issue
Block a user