Version Description
(28-April-2021) =
* New: YARPP Block now available for the WordPress Block Editor (Gutenberg) for drag and drop placement customization
* New: Choose image size for YARPP custom theme templates
* Bugfix: Indicate yarpp_meta
postmeta is protected to prevent themes from displaying it
* Bugfix: Check wp_get_additional_image_sizes
exists for backwards compatibility to older versions of WordPress
Download this release
Release Info
Developer | mnelson4 |
Plugin | Yet Another Related Posts Plugin (YARPP) |
Version | 5.19.0 |
Comparing to | |
See all releases |
Code changes from version 5.18.2 to 5.19.0
- classes/YARPP_Block.php +168 -0
- classes/YARPP_Core.php +36 -9
- classes/YARPP_Meta_Box_Display_Web.php +16 -9
- images/yarpp-grid.svg +27 -0
- includes/compat.php +27 -0
- includes/init_functions.php +7 -3
- js/block.js +102 -0
- js/block.min.js +2 -0
- readme.txt +15 -3
- style/yarpp-block-editor.css +4 -0
- yarpp.php +4 -2
classes/YARPP_Block.php
ADDED
@@ -0,0 +1,168 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* YARPP block setup
|
4 |
+
*
|
5 |
+
* @package YARPP
|
6 |
+
* @since 5.19.0
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! class_exists( 'YARPP_Block', false ) && function_exists( 'register_block_type' ) ) {
|
10 |
+
/**
|
11 |
+
* YARPP_Block Class.
|
12 |
+
*
|
13 |
+
* @class YARPP_Block
|
14 |
+
*/
|
15 |
+
class YARPP_Block {
|
16 |
+
/**
|
17 |
+
* YARPP Constructor.
|
18 |
+
*/
|
19 |
+
public function __construct() {
|
20 |
+
add_action( 'init', array( $this, 'yarpp_gutenberg_block_func' ), 100 );
|
21 |
+
add_filter( 'block_categories', array( $this, 'yarpp_block_categories' ), 10, 2 );
|
22 |
+
add_action( 'enqueue_block_editor_assets', array( $this, 'yarpp_enqueue_block_editor_assets' ) );
|
23 |
+
}
|
24 |
+
/**
|
25 |
+
* YARPP enqueue thumbnail stylesheet.
|
26 |
+
*/
|
27 |
+
public function yarpp_enqueue_block_editor_assets() {
|
28 |
+
global $yarpp;
|
29 |
+
$dimension = $yarpp->thumbnail_dimensions();
|
30 |
+
$yarpp->enqueue_thumbnails_stylesheet( $dimension );
|
31 |
+
}
|
32 |
+
/**
|
33 |
+
* YARPP yarpp_block_render_callback.
|
34 |
+
*
|
35 |
+
* @param array[] $block_attributes YARPP block attributes.
|
36 |
+
* @param string $content block content.
|
37 |
+
* @param bool $is_preview block preview.
|
38 |
+
* @return string Rendered YARPP block HTML.
|
39 |
+
*/
|
40 |
+
public function yarpp_block_render_callback( $block_attributes, $content, $is_preview = false ) {
|
41 |
+
global $yarpp, $post;
|
42 |
+
// If preview then return preview image.
|
43 |
+
if ( $is_preview && ! empty( $block_attributes['yarpp_preview'] ) ) {
|
44 |
+
$preview_image = YARPP_URL . '/images/yarpp-grid.svg';
|
45 |
+
return '<img style="width:100%;" src="' . esc_attr( $preview_image ) . '">';
|
46 |
+
}
|
47 |
+
$yarpp_args = array(
|
48 |
+
'domain' => 'block',
|
49 |
+
);
|
50 |
+
if ( isset( $block_attributes['limit'] ) ) {
|
51 |
+
$yarpp_args['limit'] = $block_attributes['limit'];
|
52 |
+
}
|
53 |
+
if ( isset( $block_attributes['template'] ) ) {
|
54 |
+
$yarpp_args['template'] = $block_attributes['template'];
|
55 |
+
}
|
56 |
+
return $yarpp->display_related(
|
57 |
+
$post->ID,
|
58 |
+
$yarpp_args,
|
59 |
+
false
|
60 |
+
);
|
61 |
+
}
|
62 |
+
/**
|
63 |
+
* Get all yarpp theme style.
|
64 |
+
*
|
65 |
+
* @since 5.19.0
|
66 |
+
* @return array all template data.
|
67 |
+
*/
|
68 |
+
public function yarpp_get_block_templates() {
|
69 |
+
global $yarpp;
|
70 |
+
$templates = $yarpp->get_templates();
|
71 |
+
$block_templates = array(
|
72 |
+
esc_attr( 'builtin' ) => esc_html__( 'List', 'yarpp' ),
|
73 |
+
esc_attr( 'thumbnails' ) => esc_html__( 'Thumbnail', 'yarpp' ),
|
74 |
+
);
|
75 |
+
foreach ( $templates as $template ) {
|
76 |
+
$block_templates[ esc_attr( $template['basename'] ) ] = sprintf(
|
77 |
+
/* translators: %s: yarpp template name */
|
78 |
+
esc_html__( 'Custom: %s', 'yarpp' ),
|
79 |
+
$template['name']
|
80 |
+
);
|
81 |
+
}
|
82 |
+
/**
|
83 |
+
* Filter the array containing templates.
|
84 |
+
*
|
85 |
+
* @since 5.19.0
|
86 |
+
*
|
87 |
+
* @param string $block_templates yarpp templates.
|
88 |
+
*/
|
89 |
+
return apply_filters( 'yarpp_get_block_templates', $block_templates );
|
90 |
+
}
|
91 |
+
/**
|
92 |
+
* YARPP yarpp_gutenberg_block_func.
|
93 |
+
*/
|
94 |
+
public function yarpp_gutenberg_block_func() {
|
95 |
+
$version = defined( 'WP_DEBUG' ) && WP_DEBUG ? time() : YARPP_VERSION;
|
96 |
+
// automatically load dependencies and version.
|
97 |
+
wp_register_script( // phpcs:ignore WordPress.WP.EnqueuedResourceParameters.NotInFooter
|
98 |
+
'yarpp-block',
|
99 |
+
yarpp_get_file_url_for_environment( 'js/block.min.js', 'js/block.js' ),
|
100 |
+
array(
|
101 |
+
'wp-blocks',
|
102 |
+
'wp-i18n',
|
103 |
+
'wp-element',
|
104 |
+
'wp-components',
|
105 |
+
'wp-block-editor',
|
106 |
+
'wp-editor',
|
107 |
+
),
|
108 |
+
$version
|
109 |
+
);
|
110 |
+
wp_register_style(
|
111 |
+
'yarpp-block-style',
|
112 |
+
plugins_url( 'style/yarpp-block-editor.css', dirname( __FILE__ ) ),
|
113 |
+
array( 'wp-edit-blocks' ),
|
114 |
+
$version
|
115 |
+
);
|
116 |
+
// Fetch chosen template from YARPP setting page.
|
117 |
+
$chosen_template = yarpp_get_option( 'template' );
|
118 |
+
// Localize the script with data.
|
119 |
+
$localized_variables = array(
|
120 |
+
'template' => $this->yarpp_get_block_templates(),
|
121 |
+
'selected_theme_style' => $chosen_template,
|
122 |
+
);
|
123 |
+
wp_localize_script( 'yarpp-block', 'yarpp_localized', $localized_variables );
|
124 |
+
$args = array(
|
125 |
+
'editor_style' => 'yarpp-block-style',
|
126 |
+
'editor_script' => 'yarpp-block',
|
127 |
+
'render_callback' => array( $this, 'yarpp_block_render_callback' ),
|
128 |
+
'attributes' => array(
|
129 |
+
'className' => array(
|
130 |
+
'type' => 'string',
|
131 |
+
'default' => '',
|
132 |
+
),
|
133 |
+
'limit' => array(
|
134 |
+
'type' => 'number',
|
135 |
+
'default' => 6,
|
136 |
+
),
|
137 |
+
'template' => array(
|
138 |
+
'type' => 'string',
|
139 |
+
'default' => $chosen_template,
|
140 |
+
),
|
141 |
+
'yarpp_preview' => array(
|
142 |
+
'type' => 'string',
|
143 |
+
),
|
144 |
+
),
|
145 |
+
);
|
146 |
+
register_block_type( 'yarpp/yarpp-block', $args );
|
147 |
+
}
|
148 |
+
/**
|
149 |
+
* Filters the default array of block categories.
|
150 |
+
*
|
151 |
+
* @param array[] $categories Array of block categories.
|
152 |
+
* @param WP_Post $post Post being loaded.
|
153 |
+
*/
|
154 |
+
public function yarpp_block_categories( $categories, $post ) {
|
155 |
+
return array_merge(
|
156 |
+
$categories,
|
157 |
+
array(
|
158 |
+
array(
|
159 |
+
'slug' => 'yarpp',
|
160 |
+
'title' => __( 'YARPP', 'yarpp' ),
|
161 |
+
),
|
162 |
+
)
|
163 |
+
);
|
164 |
+
}
|
165 |
+
|
166 |
+
}
|
167 |
+
new YARPP_Block();
|
168 |
+
}
|
classes/YARPP_Core.php
CHANGED
@@ -96,17 +96,22 @@ class YARPP {
|
|
96 |
add_filter('the_content_feed', array($this, 'the_content_feed'), $feed_priority);
|
97 |
add_filter('the_excerpt_rss', array($this, 'the_excerpt_rss' ), $excerpt_rss_priority);
|
98 |
add_action('wp_enqueue_scripts', array($this, 'maybe_enqueue_thumbnails_stylesheet'));
|
|
|
99 |
|
100 |
/**
|
101 |
* If we're using thumbnails, register yarpp-thumbnail size, if theme has not already.
|
102 |
* Note: see FAQ in the readme if you would like to change the YARPP thumbnail size.
|
103 |
* If theme has already yarpp-thumbnail size registered and we also try to register yarpp-thumbnail then it will throw a fatal error. So it is necessary to check if yarpp-thumbnail size is not registered.
|
104 |
*/
|
105 |
-
|
|
|
106 |
$width = 120;
|
107 |
$height = 120;
|
108 |
$crop = true;
|
109 |
-
add_image_size('yarpp-thumbnail', $width, $height, $crop);
|
|
|
|
|
|
|
110 |
}
|
111 |
|
112 |
if (isset($_REQUEST['yarpp_debug'])) $this->debug = true;
|
@@ -126,7 +131,22 @@ class YARPP {
|
|
126 |
$shortcode = new YARPP_Shortcode();
|
127 |
$shortcode->register();
|
128 |
}
|
129 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
/*
|
131 |
* OPTIONS
|
132 |
*/
|
@@ -201,6 +221,7 @@ class YARPP {
|
|
201 |
'manually_using_thumbnails' => false,
|
202 |
'rest_api_display' => true,
|
203 |
'thumbnail_size_display' => 0,
|
|
|
204 |
'thumbnail_size_feed_display' => 0,
|
205 |
'rest_api_client_side_caching' => false,
|
206 |
'yarpp_rest_api_cache_time' => 15
|
@@ -502,17 +523,23 @@ class YARPP {
|
|
502 |
if ($this->get_option('rss_template') === 'thumbnails' && $this->get_option('rss_display')) return true;
|
503 |
return false;
|
504 |
}
|
505 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
506 |
public function thumbnail_dimensions() {
|
507 |
global $_wp_additional_image_sizes;
|
508 |
if (!isset($_wp_additional_image_sizes['yarpp-thumbnail'])) return $this->default_dimensions;
|
509 |
|
510 |
// get user selected thumbnail size.
|
511 |
-
|
512 |
-
$dimensions = yarpp_get_thumbnail_image_dimensions( 'thumbnail_size_feed_display' );
|
513 |
-
} else {
|
514 |
-
$dimensions = yarpp_get_thumbnail_image_dimensions();
|
515 |
-
}
|
516 |
if ( empty($dimensions) ) {
|
517 |
$dimensions = $_wp_additional_image_sizes['yarpp-thumbnail'];
|
518 |
$dimensions['size'] = 'yarpp-thumbnail';
|
96 |
add_filter('the_content_feed', array($this, 'the_content_feed'), $feed_priority);
|
97 |
add_filter('the_excerpt_rss', array($this, 'the_excerpt_rss' ), $excerpt_rss_priority);
|
98 |
add_action('wp_enqueue_scripts', array($this, 'maybe_enqueue_thumbnails_stylesheet'));
|
99 |
+
add_filter( 'is_protected_meta', array( $this, 'is_protected_meta' ), 10, 3 );
|
100 |
|
101 |
/**
|
102 |
* If we're using thumbnails, register yarpp-thumbnail size, if theme has not already.
|
103 |
* Note: see FAQ in the readme if you would like to change the YARPP thumbnail size.
|
104 |
* If theme has already yarpp-thumbnail size registered and we also try to register yarpp-thumbnail then it will throw a fatal error. So it is necessary to check if yarpp-thumbnail size is not registered.
|
105 |
*/
|
106 |
+
global $add_image_size_by_yarpp;
|
107 |
+
if ( false === yarpp_get_image_sizes( 'yarpp-thumbnail' ) ) {
|
108 |
$width = 120;
|
109 |
$height = 120;
|
110 |
$crop = true;
|
111 |
+
add_image_size( 'yarpp-thumbnail', $width, $height, $crop );
|
112 |
+
$add_image_size_by_yarpp = true;
|
113 |
+
} else {
|
114 |
+
$add_image_size_by_yarpp = false;
|
115 |
}
|
116 |
|
117 |
if (isset($_REQUEST['yarpp_debug'])) $this->debug = true;
|
131 |
$shortcode = new YARPP_Shortcode();
|
132 |
$shortcode->register();
|
133 |
}
|
134 |
+
/**
|
135 |
+
* Add yarpp_meta key to protected list.
|
136 |
+
*
|
137 |
+
* @since 5.19
|
138 |
+
*
|
139 |
+
* @param bool $protected Whether the key is considered protected.
|
140 |
+
* @param string $meta_key Metadata key.
|
141 |
+
* @param string $meta_type Type of object metadata is for. Accepts 'post', 'comment', 'term', 'user',
|
142 |
+
* or any other object type with an associated meta table.
|
143 |
+
*/
|
144 |
+
public function is_protected_meta( $protected, $meta_key, $meta_type ) {
|
145 |
+
if ( 'yarpp_meta' === $meta_key ) {
|
146 |
+
return true;
|
147 |
+
}
|
148 |
+
return $protected;
|
149 |
+
}
|
150 |
/*
|
151 |
* OPTIONS
|
152 |
*/
|
221 |
'manually_using_thumbnails' => false,
|
222 |
'rest_api_display' => true,
|
223 |
'thumbnail_size_display' => 0,
|
224 |
+
'custom_theme_thumbnail_size_display' => 0,
|
225 |
'thumbnail_size_feed_display' => 0,
|
226 |
'rest_api_client_side_caching' => false,
|
227 |
'yarpp_rest_api_cache_time' => 15
|
523 |
if ($this->get_option('rss_template') === 'thumbnails' && $this->get_option('rss_display')) return true;
|
524 |
return false;
|
525 |
}
|
526 |
+
public function get_thumbnail_option_name() {
|
527 |
+
if ( is_feed() ) {
|
528 |
+
return 'thumbnail_size_feed_display';
|
529 |
+
}
|
530 |
+
$chosen_template = yarpp_get_option( 'template' );
|
531 |
+
// check if they're using a custom template
|
532 |
+
if ( 'thumbnails' === $chosen_template){
|
533 |
+
return 'thumbnail_size_display';
|
534 |
+
}
|
535 |
+
return 'custom_theme_thumbnail_size_display';
|
536 |
+
}
|
537 |
public function thumbnail_dimensions() {
|
538 |
global $_wp_additional_image_sizes;
|
539 |
if (!isset($_wp_additional_image_sizes['yarpp-thumbnail'])) return $this->default_dimensions;
|
540 |
|
541 |
// get user selected thumbnail size.
|
542 |
+
$dimensions = yarpp_get_thumbnail_image_dimensions( $this->get_thumbnail_option_name() );
|
|
|
|
|
|
|
|
|
543 |
if ( empty($dimensions) ) {
|
544 |
$dimensions = $_wp_additional_image_sizes['yarpp-thumbnail'];
|
545 |
$dimensions['size'] = 'yarpp-thumbnail';
|
classes/YARPP_Meta_Box_Display_Web.php
CHANGED
@@ -36,7 +36,7 @@ class YARPP_Meta_Box_Display_Web extends YARPP_Meta_Box {
|
|
36 |
|
37 |
$this->template_checkbox( false );
|
38 |
echo "</div>";
|
39 |
-
|
40 |
$chosen_template = yarpp_get_option( "template" );
|
41 |
$choice = false === $chosen_template ? 'builtin' :
|
42 |
( $chosen_template == 'thumbnails' ? 'thumbnails' : 'custom' );
|
@@ -50,6 +50,14 @@ class YARPP_Meta_Box_Display_Web extends YARPP_Meta_Box {
|
|
50 |
echo ">";
|
51 |
echo '<div class="yarpp_form_row"><div>' . $this->template_text . '</div></div>';
|
52 |
$this->template_file( false );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
echo "</div>";
|
54 |
|
55 |
echo "<div class='yarpp_subbox template_options_thumbnails'";
|
@@ -57,15 +65,14 @@ class YARPP_Meta_Box_Display_Web extends YARPP_Meta_Box {
|
|
57 |
echo ' style="display: none;"';
|
58 |
echo ">";
|
59 |
$this->textbox( 'thumbnails_heading', __( 'Heading:', 'yarpp' ), 40 );
|
60 |
-
$this->textbox( 'thumbnails_default', __( 'Default image (URL):', 'yarpp' ), 40 );
|
61 |
-
$get_image_sizes = yarpp_get_image_sizes();
|
62 |
echo '<div class="yarpp_form_row yarpp_form_radio_label">';
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
echo '</div></div>';
|
70 |
echo "</div>";
|
71 |
|
36 |
|
37 |
$this->template_checkbox( false );
|
38 |
echo "</div>";
|
39 |
+
$get_image_sizes = yarpp_get_image_sizes();
|
40 |
$chosen_template = yarpp_get_option( "template" );
|
41 |
$choice = false === $chosen_template ? 'builtin' :
|
42 |
( $chosen_template == 'thumbnails' ? 'thumbnails' : 'custom' );
|
50 |
echo ">";
|
51 |
echo '<div class="yarpp_form_row"><div>' . $this->template_text . '</div></div>';
|
52 |
$this->template_file( false );
|
53 |
+
echo '<div class="yarpp_form_row yarpp_form_radio_label">';
|
54 |
+
echo '<div class="yarpp_form_label">' . esc_html( 'Thumbnail Size', 'yarpp' ) . '</div><div>';
|
55 |
+
foreach ( $get_image_sizes as $key => $_size ) {
|
56 |
+
/* translators: %s: thumbnail key's name */
|
57 |
+
$name = sprintf( __( '%1$s (%2$sx%3$s)', 'yarpp' ), $key, $_size['width'], $_size['height'] );
|
58 |
+
$this->radio( 'custom_theme_thumbnail_size_display', $name, '', $key );
|
59 |
+
}
|
60 |
+
echo '</div></div>';
|
61 |
echo "</div>";
|
62 |
|
63 |
echo "<div class='yarpp_subbox template_options_thumbnails'";
|
65 |
echo ' style="display: none;"';
|
66 |
echo ">";
|
67 |
$this->textbox( 'thumbnails_heading', __( 'Heading:', 'yarpp' ), 40 );
|
68 |
+
$this->textbox( 'thumbnails_default', __( 'Default image (URL):', 'yarpp' ), 40 );
|
|
|
69 |
echo '<div class="yarpp_form_row yarpp_form_radio_label">';
|
70 |
+
echo '<div class="yarpp_form_label">' . esc_html( 'Thumbnail Size', 'yarpp' ) . '</div><div>';
|
71 |
+
foreach ( $get_image_sizes as $key => $_size ) {
|
72 |
+
/* translators: %s: thumbnail key's name */
|
73 |
+
$name = sprintf( __( '%1$s (%2$sx%3$s)', 'yarpp' ), $key, $_size['width'], $_size['height'] );
|
74 |
+
$this->radio( 'thumbnail_size_display', $name, '', $key );
|
75 |
+
}
|
76 |
echo '</div></div>';
|
77 |
echo "</div>";
|
78 |
|
images/yarpp-grid.svg
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<svg width="231px" height="255px" viewBox="0 0 231 255" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
3 |
+
<title>grid</title>
|
4 |
+
<defs></defs>
|
5 |
+
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
6 |
+
<g id="grid" fill="#E1E3E6" fill-rule="nonzero">
|
7 |
+
<rect id="Rectangle-path" x="0.162" y="0.779" width="65.374" height="65.374" rx="3"></rect>
|
8 |
+
<rect id="Rectangle-path" x="1.565" y="101.448" width="62.8" height="15" rx="5"></rect>
|
9 |
+
<rect id="Rectangle-path" x="82.478" y="0.779" width="65.374" height="65.374" rx="3"></rect>
|
10 |
+
<rect id="Rectangle-path" x="83.882" y="101.448" width="62.8" height="15" rx="5"></rect>
|
11 |
+
<rect id="Rectangle-path" x="164.788" y="0.779" width="65.374" height="65.374" rx="3"></rect>
|
12 |
+
<rect id="Rectangle-path" x="166.192" y="101.448" width="62.8" height="15" rx="5"></rect>
|
13 |
+
<rect id="Rectangle-path" x="1.565" y="80.448" width="62.8" height="15" rx="5"></rect>
|
14 |
+
<rect id="Rectangle-path" x="83.882" y="80.448" width="62.8" height="15" rx="5"></rect>
|
15 |
+
<rect id="Rectangle-path" x="166.192" y="80.448" width="62.8" height="15" rx="5"></rect>
|
16 |
+
<rect id="Rectangle-path" x="0.162" y="138.779" width="65.374" height="65.374" rx="3"></rect>
|
17 |
+
<rect id="Rectangle-path" x="1.565" y="239.448" width="62.8" height="15" rx="5"></rect>
|
18 |
+
<rect id="Rectangle-path" x="82.478" y="138.779" width="65.374" height="65.374" rx="3"></rect>
|
19 |
+
<rect id="Rectangle-path" x="83.882" y="239.448" width="62.8" height="15" rx="5"></rect>
|
20 |
+
<rect id="Rectangle-path" x="164.788" y="138.779" width="65.374" height="65.374" rx="3"></rect>
|
21 |
+
<rect id="Rectangle-path" x="166.192" y="239.448" width="62.8" height="15" rx="5"></rect>
|
22 |
+
<rect id="Rectangle-path" x="1.565" y="218.448" width="62.8" height="15" rx="5"></rect>
|
23 |
+
<rect id="Rectangle-path" x="83.882" y="218.448" width="62.8" height="15" rx="5"></rect>
|
24 |
+
<rect id="Rectangle-path" x="166.192" y="218.448" width="62.8" height="15" rx="5"></rect>
|
25 |
+
</g>
|
26 |
+
</g>
|
27 |
+
</svg>
|
includes/compat.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Functions to ensure compatibility with WordPress 3.7 or higher.
|
4 |
+
*
|
5 |
+
* @package yarpp
|
6 |
+
*
|
7 |
+
* @since 5.19
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( ! function_exists( 'wp_get_additional_image_sizes' ) ) {
|
11 |
+
/**
|
12 |
+
* Fetch additional image sizes.
|
13 |
+
*
|
14 |
+
* @since 5.19
|
15 |
+
*
|
16 |
+
* @global array $_wp_additional_image_sizes
|
17 |
+
*
|
18 |
+
* @return array Additional images sizes.
|
19 |
+
*/
|
20 |
+
function wp_get_additional_image_sizes() {
|
21 |
+
global $_wp_additional_image_sizes;
|
22 |
+
if ( ! $_wp_additional_image_sizes ) {
|
23 |
+
$_wp_additional_image_sizes = array();// phpcs:ignore.
|
24 |
+
}
|
25 |
+
return $_wp_additional_image_sizes;
|
26 |
+
}
|
27 |
+
}
|
includes/init_functions.php
CHANGED
@@ -26,16 +26,20 @@ function yarpp_get_option($option = null) {
|
|
26 |
* @return string name of thumbnail.
|
27 |
*/
|
28 |
function yarpp_get_option_thumbnail( $option = null, $default_option = 'thumbnail' ) {
|
|
|
29 |
$get_template = yarpp_get_option( 'template' );
|
|
|
30 |
$user_selected_thumbnail = yarpp_get_option( $option );
|
|
|
|
|
31 |
/**
|
32 |
* If existing user upgrades to v5.18.1 then continue using YARPP-thumbnail as default option.
|
33 |
* If this is a fresh install then YARPP will use "thumbnail" (WordPress default) because this is always available and does not require images to regenerate.
|
34 |
* Lastly, fallback to the provided fallback default.
|
35 |
*/
|
36 |
-
if ( empty( $user_selected_thumbnail ) && 'thumbnails' === $get_template ) {
|
37 |
$thumbnail_size = 'yarpp-thumbnail';
|
38 |
-
} elseif ( ! empty( $user_selected_thumbnail ) && 'thumbnails' === $get_template ) {
|
39 |
// Check whether user selected thumbnail is still registered.
|
40 |
if ( false === yarpp_get_image_sizes( $user_selected_thumbnail ) ) {
|
41 |
$thumbnail_size = 'yarpp-thumbnail';
|
@@ -43,7 +47,7 @@ function yarpp_get_option_thumbnail( $option = null, $default_option = 'thumbnai
|
|
43 |
$thumbnail_size = $user_selected_thumbnail;
|
44 |
}
|
45 |
} else {
|
46 |
-
$thumbnail_size = $
|
47 |
}
|
48 |
return $thumbnail_size;
|
49 |
}
|
26 |
* @return string name of thumbnail.
|
27 |
*/
|
28 |
function yarpp_get_option_thumbnail( $option = null, $default_option = 'thumbnail' ) {
|
29 |
+
global $add_image_size_by_yarpp;
|
30 |
$get_template = yarpp_get_option( 'template' );
|
31 |
+
$choice = false === $get_template ? 'builtin' : ( 'thumbnails' === $get_template ? 'thumbnails' : 'custom' );
|
32 |
$user_selected_thumbnail = yarpp_get_option( $option );
|
33 |
+
// If yarpp-thumbnail is added by other than yarpp plugin then default selection will be yarpp-thumbnail otherwise thumbnail.
|
34 |
+
$default_checked = ( true === $add_image_size_by_yarpp ? 'thumbnail' : 'yarpp-thumbnail' );
|
35 |
/**
|
36 |
* If existing user upgrades to v5.18.1 then continue using YARPP-thumbnail as default option.
|
37 |
* If this is a fresh install then YARPP will use "thumbnail" (WordPress default) because this is always available and does not require images to regenerate.
|
38 |
* Lastly, fallback to the provided fallback default.
|
39 |
*/
|
40 |
+
if ( empty( $user_selected_thumbnail ) && ( 'thumbnails' === $get_template || 'custom' === $choice ) ) {
|
41 |
$thumbnail_size = 'yarpp-thumbnail';
|
42 |
+
} elseif ( ! empty( $user_selected_thumbnail ) && ( 'thumbnails' === $get_template || 'custom' === $choice ) ) {
|
43 |
// Check whether user selected thumbnail is still registered.
|
44 |
if ( false === yarpp_get_image_sizes( $user_selected_thumbnail ) ) {
|
45 |
$thumbnail_size = 'yarpp-thumbnail';
|
47 |
$thumbnail_size = $user_selected_thumbnail;
|
48 |
}
|
49 |
} else {
|
50 |
+
$thumbnail_size = $default_checked;
|
51 |
}
|
52 |
return $thumbnail_size;
|
53 |
}
|
js/block.js
ADDED
@@ -0,0 +1,102 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
( function( blocks, i18n, element, components, editor, blockEditor ) {
|
2 |
+
var el = element.createElement;
|
3 |
+
const {registerBlockType} = blocks;
|
4 |
+
const {__} = i18n; //translation functions
|
5 |
+
const iconEl = el('img', {src: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTQ1cHgiIGhlaWdodD0iMTkxcHgiIHZpZXdCb3g9IjAgMCAxNDUgMTkxIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0OC4yICg0NzMyNykgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+bWFyazwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPjwvZGVmcz4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJtYXJrIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxLjAwMDAwMCwgMC4wMDAwMDApIiBmaWxsPSIjMDAwMDAwIiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgICAgICAgICA8ZyBpZD0iY29mZmVlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3MS41MDAwMDAsIDEyMC43MDM3MDQpIHNjYWxlKC0xLCAxKSByb3RhdGUoLTE4MC4wMDAwMDApIHRyYW5zbGF0ZSgtNzEuNTAwMDAwLCAtMTIwLjcwMzcwNCkgdHJhbnNsYXRlKDAuMDAwMDAwLCA1MS43MDM3MDQpIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00Mi44NjA1NzA2LDEzNi4wODIyOCBDMzIuODM4MzcwNSwxMzQuNzgzMzg4IDI1LjQ2Njk2OTcsMTMyLjg5OTk5NyAyMC43NDYzNjgxLDEzMC40MzIxMDMgTDE3LjM2OTMyMjUsMTI3LjgwMTg0OSBMMTcuNjk2MTMzMywxMTMuMjg2NzM4IEMxNy45MTQwMDcyLDk5LjM1NjEyOTIgMTcuOTE0MDA3Miw5OC42NzQyMTEzIDE1LjYyNjMzMSw5Ni44MjMyOTEyIEM5Ljg1MjY3MjI5LDkyLjE0NzI4MjcgMCw3OS4yNjM5ODU1IDAsNjguNTQ4MTMyNSBDMCw2My4xOTAyMDYgMS41NTkxMDc0Myw2MC4wNjIyODM2IDQuODI3MjE2MTksNTQuNDEyMTA2NiBDNy4wMDU5NTUzNSw1MC44MDc2ODMzIDEzLjUyNDk3MDMsNDUuNTM3MDMzNCAxNC43MjMyNzY5LDQ0LjU2Mjg2NDkgQzE3LjAxMDk1MjksNDMuMDA0MTk1MyAxOC40NTg2OTE5LDQ0LjEzMDMxMzggMTcuNjk2MTMzMywzMy4xMjIyMTAyIEMxNi44MjQ2Mzc2LDE5LjM4NjQzNSAxNi4wNjIwNzg5LDE3LjQyODU2MjEgMjQuMDE0NDc2OCwxMi44NDk5NzAzIEMzNC43OTkyMzU4LDYuNjE1MjkyMTkgNDIuNzUxNjMzNywzLjU5NTM2OTk3IDUyLjc3MzgzMzksMS43NDQ0NDk5IEM3Ni42MzEwMjc3LC0yLjQ0NDQ3NDQ2IDExMy4zNDI3ODMsMS4yNTczNjU2OCAxMjYuMzA2MjgsOS4xNDgxMzAxNyBDMTMzLjkzMTg2OCwxMy45MjE1NTU2IDEzNi41NDYzNTUsMTYuODQ0MDYxIDEzNi41NDYzNTUsMjAuOTM1NTY4NCBDMTQwLjQ2ODA4NSw4Ny44OTM0MTM3IDE0Mi41Mzc4ODgsMTIxLjg1OTQyIDE0Mi43NTU3NjEsMTIyLjgzMzU4OSBDMTQzLjE5MTUwOSwxMjUuMDc0MTc3IDE0Mi43NTU3NjEsMTI1LjY1ODY3NyAxMzkuMTYwODQyLDEyNy4zMTQ3NjQgQzEzNC4wNDA4MDQsMTI5LjY1Mjc2OSAxMjcuODMxMzk4LDEzMC44MjE3NzEgMTA2LjU4ODY5MSwxMzMuMzU0NjA5IEM5Ny42NTU4NjA3LDEzNC40MjYxOTQgODcuMDg4OTc1OCwxMzUuNjkyNjEzIDgzLjE2NzI0NTIsMTM2LjI3NzExNCBDNzQuNTYxMjI1NSwxMzcuNDQ2MTE2IDUyLjU1NTk2LDEzNy4zNDg2OTkgNDIuODYwNTcwNiwxMzYuMDgyMjggWiBNODQuNTMwMjczNCwxMzIuMDc4NzA0IEM5MC4yMzM4MTY3LDEzMS4zODQ4NTYgOTkuMDk4MzIxMywxMzAuMjUwMDg2IDEwOS4wMzgwODYsMTI5LjE5MzQ1IEMxMjMuMjY5NTg5LDEyNy4wMjU1MDQgMTM1LjQxOTkwMSwxMjUuNjI2MzMxIDEzNi4wNTI0MTMsMTIzLjMzMDg1OSBDMTM2LjI2MzI1LDEyMi42OTMyMjggMTIzLjkzNDI5NSwxMjAuOTc0MjM5IDEyMC4zNTAwNjQsMTE5LjgyNjUwMyBDMTE0LjEzMDM3MSwxMTcuNzg2MDg0IDEwMi4yODI2OTYsMTIwLjE4NTg4MSA5MC4zNzQ5MTk3LDEyMi40MTM1NjMgQzc4LjUwNDkyOTIsMTI0LjYzNDE3NSA2NS40NTYzNDA4LDEyMy4zMzA4NTkgNTcuMjU0NTk4NywxMjMuMzMwODU5IEM1Ny4yNTQ1OTg3LDEyMy4zMzA4NTkgNTIuNDc1NDQ2NiwxMjIuNTIzMTkzIDQyLjkxNzE0MjUsMTIwLjkwNzg2MSBDMzQuODc2MDMxNiwxMTkuNTQ4OTMxIDM2LjIyMTA1NjEsMTE5LjEyMjQ5NCAzMC4wMDEzNjIyLDEyMS44MDA1NDUgQzI2LjQxNzEzMTksMTIzLjQ1ODM4NSAyMy4yNTQ1NzU3LDEyNS4yNDM3NTIgMjMuMTQ5MTU3MiwxMjYuMDA4OTEgQzIzLjE0OTE1NzIsMTI2LjY0NjU0MSAyMy40NDM2MjM4LDEyOC40NjE1MjIgMjYuNDE3MTMxOSwxMjkuOTYyMjIxIEMzMC43NTg3ODkxLDEzMi4xNTM0MTEgNDMuNTE0MTYwMiwxMzIuNDQxMDA4IDU0LjcxNDM1NTUsMTMyLjk4NzM5NSBDNjMuNDg1ODM5OCwxMzIuOTg3Mzk1IDc4LjgyNjczMDEsMTMyLjc3MjU1MSA4NC41MzAyNzM0LDEzMi4wNzg3MDQgWiBNMzkuODcwNjc2MSwxMTYuNzY2ODQ0IEM0NC4xMjY4ODU2LDExNS43MjU4NzYgNTMuNjc3NDA0MSwxMTQuMjExNzQgNjEuMTUxNzIyOCwxMTMuMzYwMDM4IEM3OC43OTk0MjAxLDExMS4zNzI3MzQgMTM0Ljk2MDYyMSwxMTkuNTExMjE1IDEzNS4xNjgyNDEsMTE5LjIyNzMxNSBDMTM1LjM3NTg2MSwxMTkuMDM4MDQ5IDEzNC40NDE1NzEsNTQuMTE5NDYyNSAxMzEuMzI3MjcyLDI5LjcwNDAxNzcgQzEyOS44NzM5MzIsMTguOTE1Nzk3OCAxMjkuMzU0ODgyLDE3Ljk2OTQ2MjcgMTIyLjA4ODE4MywxMy40MjcwNTQ0IEMxMTAuNDYxNDY1LDYuMDQ1NjQwODQgNzQuNTQzMjEwNywyLjczMzQ2ODA4IDUzLjM2NTk3NCw2Ljk5MTk3NTkgQzQyLjk4NDk3NTcsOS4wNzM5MTMwNyAzNi43NTYzNzY3LDExLjcyMzY1MTMgMjcuNDEzNDc4MSwxNy42ODU1NjIzIEwyMi4yODExNjk0LDIxLjU4ODA4NTQgTDIzLjU3MjUwODgsMTIxLjMwOTI1MyBMMzkuODcwNjc2MSwxMTYuNzY2ODQ0IFogTTE3LjU5OTcwNDMsNjUuODAxMzgyMSBDMTcuNTk5NzA0Myw1MC44MjAwMDIzIDE4LjE3MDY1OTIsNTAuNzUyOTc1MyAxNy41OTk3MDQzLDUwLjc1Mjk3NTMgQzE0LjIyNTgzNzcsNTAuNzUyOTc1MyAxMC42ODY5OTQ2LDUzLjIwODYyOTYgNy45MzM0NTE3Miw1Ny42NDI4NTY0IEM1LjgxMDQ2NjgsNjEuMDYxNjUwNyA1LjUwMzQ2MTY2LDY1LjYzMDE2MjggNS41MDM0NjE2Niw2Ny4yMjgwNzE0IEM1LjUwMzQ2MTY2LDc4LjAyNjAyMTMgMTAuODY3NjAxOCw4Ni41MTAxNTI1IDE3LjU5OTcwNDMsODYuNTEwMTUyNSBDMTcuNTk5NzA0Myw4Ni41MTAxNTI1IDE3LjU5OTcwNDMsNzkuNjA3MjI5IDE3LjU5OTcwNDMsNjUuODAxMzgyMSBaIiBpZD0ibXVnIiBzdHJva2U9IiMwMDAwMDAiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDxnIGlkPSJGYWNlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MC45NDI4NTAsIDYwLjQwMDc5NykiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik02Mi4xNjA3NzgsMzMuNTQ3NTgzNSBDNTguNDA4MjI2MiwyNi42MDQxNTMzIDYwLjExMzkzMTYsMTkuMDI5NTAyMiA2NC44ODk5MDY2LDE5LjAyOTUwMjIgQzY3LjYxOTAzNTMsMTkuMDI5NTAyMiA3MC42ODkzMDQ5LDIxLjU1NDM4NiA3MS43MTI3MjgyLDI0LjcxMDQ5MDYgQzc0LjEwMDcxNTcsMzEuMDIyNjk5OSA2NS4yMzEwNDc4LDM5LjIyODU3MTggNjIuMTYwNzc4LDMzLjU0NzU4MzUgWiIgaWQ9IlNoYXBlIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIuMTAzMDM4MzcsMzQuMDA2MTkwNiBDLTEuNjQ5NTEzNDksMjcuMDYyNzYwMyAwLjA1NjE5MTkwMTksMTkuNDg4MTA5MiA0LjgzMjE2NywxOS40ODgxMDkyIEM3LjU2MTI5NTYzLDE5LjQ4ODEwOTIgMTAuNjMxNTY1MywyMi4wMTI5OTI5IDExLjY1NDk4ODUsMjUuMTY5MDk3NiBDMTQuMDQyOTc2MSwzMS40ODEzMDY4IDUuMTczMzA4MDgsMzkuNjg3MTc4OSAyLjEwMzAzODM3LDM0LjAwNjE5MDYgWiIgaWQ9IlNoYXBlIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTMxLjI3NDQ0ODEsMTMuNDg2Nzc4OCBDMjIuMzUyNjcyOCw5Ljc1NzE4ODQ0IDIyLjM1MjY3MjgsNi44NTYzOTU5NyAzMS42OTkyOTQ2LDIuOTE5NjA2MTggQzQyLjEwODAzMjQsLTEuMjI0MzgzMDcgNTQuNjQxMDAyNSwtMC44MDk5ODQxNDcgNTkuMTAxODkwMiwzLjc0ODQwNDAzIEM2Mi4yODgyMzg1LDcuNDc3OTk0MzUgNjIuMjg4MjM4NSw3Ljg5MjM5MzI4IDU4Ljg4OTQ2NjksMTAuNzkzMTg1OCBDNTMuMTU0MDM5OSwxNS43NjU5NzI5IDM5LjM0NjUzMDUsMTcuMDA5MTY5NiAzMS4yNzQ0NDgxLDEzLjQ4Njc3ODggWiBNMzQuOTc2NzUxLDcuOTA3NDgwOTMgQzMxLjkwMDc0OTksMTAuMTEwNDkzNyAzNi42OTIxOTYxLDEwLjMyOTQyNTggNDQuNzk0NzQwOCw5LjkxNzg4MDc4IEM1Ni4wMTA3NjU5LDkuMjAxOTk3NDEgNTYuMTM5MTMwOSw0LjQyOTQzMDIxIDQ0LjcxMDU0MzIsNC45MTI0NDYyMyBDMzkuOTU1OTI2OCw1LjA0NDI5NDI5IDM1Ljc0NTc1MTMsNy4zNTY3Mjc3NSAzNC45NzY3NTEsNy45MDc0ODA5MyBaIiBpZD0iU2hhcGUiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8ZyBpZD0iU3RlYW0iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU5LjAwMDAwMCwgMC4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00LjE2MDcyNzYzLDAgQzMuODM3ODQ1OSwyLjYzMDYwNzA1IDMuNjM2ODk2NjIsNS4zMDMwNTE1OSAzLjU1OTg2MzAyLDcuOTkwOTU4NDEgQzMuNTAzOTksMTEuNzQ3MDY3OSA0LjM0NTcxNTczLDE1LjM3MjE2MjYgNS44ODAxMjQ4MywxNy45ODM3MjUxIEM2Ljg5MDgwOTkzLDE5Ljc5NTY2IDcuODk1MzMyMywyMS42MjM4Njk4IDguODkzNjkxOTYsMjMuNDY4MzU0NCBDOS45NDgxNjY2MywyNS4zNTQ0ODk1IDEwLjY1MTEyNjEsMjcuNzYxNTg3NSAxMC45MDg4OTk0LDMwLjM2ODg5NjkgQzExLjIxOTk2NDQsMzMuNTA1NjYyMyAxMC43MjU3NDQzLDM2LjcyMzg3OTUgOS41NTkyNjUwOCwzOS4xNTczMjM3IEM4LjMyNzMwNjcyLDQxLjc4NjcwODYgNi42NzAxMDYxOCw0My42OTM5NDg1IDQuODA3ODEyNiw0NC42MjU2NzgxIEw0LjE2MDcyNzYzLDQ1IEM0LjU0ODk3ODYyLDQzLjc5NTY2IDQuOTE4NzQxNDUsNDIuNjg4OTY5MiA1LjI2MDc3MjA4LDQxLjU2NjAwMzYgQzUuNzIyOTc1NjMsNDAuMDUyNDQxMiA2LjE4NTE3OTE3LDM4LjUzODg3ODkgNi42MTA0MDY0NCwzNi45NzY0OTE5IEM3LjEwOTgxODQzLDM1LjIzMjYwNTYgNy4wNTAwOTQzNCwzMy4xNTQzNzM1IDYuNDUzMjU3MjMsMzEuNTA4MTM3NCBDNi4yMjkzNzk3LDMwLjkyMTQxNDkgNS45NzIzMTQ0NiwzMC4zNzYxMzUxIDUuNjg1OTk5MzQsMjkuODgwNjUxIEM0LjY2OTE1MTUzLDI4LjA0MTU5MTQgMy42MjQ1NzE1MiwyNi4yNjc2MzExIDIuNjM1NDU1OTIsMjQuNDEyMjk2NiBDMS40NTE3ODQ1NCwyMi4yNjgxOTg3IDAuNjIzODI5MjUsMTkuNTk0ODU0NyAwLjI0MTI0MTU0MiwxNi42ODE3MzYgQy0wLjQzODk4OTM5NiwxMS43NzA5NzU3IDAuMzQwNTA0MzQyLDYuNTg3ODgxNzIgMi4zMTE5MTM0MywyLjkxMzIwMDczIEMyLjc2NDg3MjkxLDIuMDE4MDgzMTkgMy4zMDEwMjkwMywxLjI4NTcxNDI5IDMuODAwMjA4ODcsMC40NTU2OTYyMDIgTDQuMDY4Mjg2OTIsNS4wNTkyNDQxNmUtMTUgTDQuMTYwNzI3NjMsMCBaIiBpZD0iU2hhcGUiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00MiwyMi4yNzg0MzM1IEM0MS41MDg3NTY2LDIzLjI0Nzc0OCA0MS4wMzY3Nzc2LDI0LjE3NTUyMDUgNDAuNTU1MTY2NCwyNS4xNTg2ODIzIEM0MC4xODQ1MjQ5LDI1Ljk1MjczODQgMzkuODYyMjU0NSwyNi43OTEzMDc5IDM5LjU5MTk0NCwyNy42NjUwNTI4IEMzOS4yOTU2OTQzLDI4Ljg5MjY3NTUgMzkuMjI5MjU3MSwzMC4yMTA3MjI5IDM5LjM5OTI5OTQsMzEuNDg2OTIxNCBDMzkuNTQzNzgyOSwzMy40MjU1NTA0IDM5LjcyNjc5NTEsMzUuMzY0MTc5NSAzOS44MDM4NTI5LDM3LjMwMjgwODUgQzM5Ljg1NjMxMzIsMzguOTU2Nzk5MyAzOS41MTY3MTU1LDQwLjU4NzQxNCAzOC44NDA2MzA1LDQxLjkyNzgyMzUgQzM4LjAxMDUwMjcsNDMuNjk1MDc1NCAzNi42NjAyMTU1LDQ0LjgxMzgwOTIgMzUuMTgwMzg1Myw0NC45NjAzOTMyIEMzMy43MjAwMDUsNDUuMTQ4NDYwOCAzMi4yNTU4ODU1LDQ0LjY2MzQ3NzQgMzEsNDMuNTc1NjU4MSBMMzEuMTM0ODUxMSw0My40MDk0ODk5IEMzMi4wOTgwNzM2LDQyLjQ5NTU2NDkgMzMuMTI4NzIxNSw0MS41OTU0ODcxIDM0LjEwMTU3NjIsNDAuNjQwMDE5OSBDMzQuNzYwMzc3MSw0MC4wNjgxMTA0IDM1LjA3ODA5MzUsMzguOTQwMzI5NiAzNC44ODE3ODYzLDM3Ljg3MDU0OTkgQzM0LjUzOTkyMDgsMzUuNTA3MDY1NyAzNC4zNzUyMzI1LDMzLjA5NzcxNjYgMzQuMzkwNTQzLDMwLjY4Mzc3NSBDMzQuNTUzMDI0NywyNi4zNjI2MjcyIDM2Ljc5MjQzMTgsMjIuNzkxMzAwNCAzOS43NjUzMjQsMjIuMTEyMjY1MyBDNDAuNDE5NDA4MSwyMS45NjI1NzgyIDQxLjA4NTg0NTcsMjEuOTYyNTc4MiA0MS43Mzk5Mjk5LDIyLjExMjI2NTMgTDQxLjg4NDQxMzQsMjIuMTEyMjY1MyBMNDIsMjIuMjc4NDMzNSBaIiBpZD0iU2hhcGUiPjwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+'});
|
6 |
+
var ServerSideRender = wp.serverSideRender;
|
7 |
+
const { RichText, InspectorControls } = blockEditor;
|
8 |
+
const {TextControl, CheckboxControl, RadioControl, SelectControl, TextareaControl, ToggleControl, RangeControl, Panel, PanelBody, PanelRow,} = components;
|
9 |
+
|
10 |
+
registerBlockType( 'yarpp/yarpp-block', {
|
11 |
+
title: __( 'YARPP Block', 'yarpp' ),
|
12 |
+
description: __( 'Display related posts by YARPP', 'yarpp' ),
|
13 |
+
category: 'yarpp',
|
14 |
+
icon: iconEl,
|
15 |
+
keywords: [ __( 'yarpp', 'yarpp' ), __( 'related posts', 'yarpp' ), __( 'posts', 'yarpp' ) ],
|
16 |
+
|
17 |
+
attributes: {
|
18 |
+
limit: {
|
19 |
+
type: 'number',
|
20 |
+
default: 6,
|
21 |
+
},
|
22 |
+
template: {
|
23 |
+
type: 'string',
|
24 |
+
default: yarpp_localized.selected_theme_style,
|
25 |
+
},
|
26 |
+
yarpp_preview: {
|
27 |
+
type: 'string',
|
28 |
+
},
|
29 |
+
},
|
30 |
+
example: {
|
31 |
+
attributes: {
|
32 |
+
yarpp_preview: 'yarpp_preview',
|
33 |
+
},
|
34 |
+
},
|
35 |
+
edit: function( props ) {
|
36 |
+
const attributes = props.attributes;
|
37 |
+
const setAttributes = props.setAttributes;
|
38 |
+
var template = Object.keys(yarpp_localized.template).map(function(key) {
|
39 |
+
return {value: key, label: yarpp_localized.template[key]};
|
40 |
+
});
|
41 |
+
|
42 |
+
if(props.isSelected){
|
43 |
+
// console.debug(props.attributes);
|
44 |
+
};
|
45 |
+
|
46 |
+
|
47 |
+
// Functions to update attributes.
|
48 |
+
function changeThumbnail(template){
|
49 |
+
setAttributes({template});
|
50 |
+
}
|
51 |
+
|
52 |
+
return [
|
53 |
+
/**
|
54 |
+
* Server side render
|
55 |
+
*/
|
56 |
+
el("div", { className: props.className },
|
57 |
+
el( ServerSideRender, {
|
58 |
+
block: 'yarpp/yarpp-block',
|
59 |
+
attributes: attributes
|
60 |
+
} )
|
61 |
+
),
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Inspector
|
65 |
+
*/
|
66 |
+
el( InspectorControls, {},
|
67 |
+
el( PanelBody, { title: 'YARPP Posts Settings', initialOpen: true },
|
68 |
+
|
69 |
+
el( TextControl, {
|
70 |
+
label: __( 'Maximum number of posts', 'yarpp' ),
|
71 |
+
value: attributes.limit,
|
72 |
+
onChange: function( val ) {
|
73 |
+
setAttributes( { limit: parseInt( val ) } );
|
74 |
+
},
|
75 |
+
type: 'number',
|
76 |
+
min: 1,
|
77 |
+
step: 1
|
78 |
+
} ),
|
79 |
+
el(SelectControl, {
|
80 |
+
value: attributes.template,
|
81 |
+
label: __( 'Theme', 'yarpp' ),
|
82 |
+
onChange: changeThumbnail,
|
83 |
+
options: template
|
84 |
+
} ),
|
85 |
+
),
|
86 |
+
),
|
87 |
+
]
|
88 |
+
},
|
89 |
+
|
90 |
+
save(){
|
91 |
+
return null;//save has to exist. This all we need
|
92 |
+
}
|
93 |
+
} );
|
94 |
+
} )(
|
95 |
+
window.wp.blocks,
|
96 |
+
window.wp.i18n,
|
97 |
+
window.wp.element,
|
98 |
+
window.wp.components,
|
99 |
+
window.wp.editor,
|
100 |
+
window.wp.blockEditor,
|
101 |
+
window.wp.serverSideRender
|
102 |
+
);
|
js/block.min.js
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
1 |
+
(function(blocks,i18n,element,components,editor,blockEditor){var el=element.createElement;const{registerBlockType}=blocks;const{__}=i18n;const iconEl=el('img',{src:'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTQ1cHgiIGhlaWdodD0iMTkxcHgiIHZpZXdCb3g9IjAgMCAxNDUgMTkxIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0OC4yICg0NzMyNykgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+bWFyazwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPjwvZGVmcz4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJtYXJrIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxLjAwMDAwMCwgMC4wMDAwMDApIiBmaWxsPSIjMDAwMDAwIiBmaWxsLXJ1bGU9Im5vbnplcm8iPgogICAgICAgICAgICA8ZyBpZD0iY29mZmVlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3MS41MDAwMDAsIDEyMC43MDM3MDQpIHNjYWxlKC0xLCAxKSByb3RhdGUoLTE4MC4wMDAwMDApIHRyYW5zbGF0ZSgtNzEuNTAwMDAwLCAtMTIwLjcwMzcwNCkgdHJhbnNsYXRlKDAuMDAwMDAwLCA1MS43MDM3MDQpIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00Mi44NjA1NzA2LDEzNi4wODIyOCBDMzIuODM4MzcwNSwxMzQuNzgzMzg4IDI1LjQ2Njk2OTcsMTMyLjg5OTk5NyAyMC43NDYzNjgxLDEzMC40MzIxMDMgTDE3LjM2OTMyMjUsMTI3LjgwMTg0OSBMMTcuNjk2MTMzMywxMTMuMjg2NzM4IEMxNy45MTQwMDcyLDk5LjM1NjEyOTIgMTcuOTE0MDA3Miw5OC42NzQyMTEzIDE1LjYyNjMzMSw5Ni44MjMyOTEyIEM5Ljg1MjY3MjI5LDkyLjE0NzI4MjcgMCw3OS4yNjM5ODU1IDAsNjguNTQ4MTMyNSBDMCw2My4xOTAyMDYgMS41NTkxMDc0Myw2MC4wNjIyODM2IDQuODI3MjE2MTksNTQuNDEyMTA2NiBDNy4wMDU5NTUzNSw1MC44MDc2ODMzIDEzLjUyNDk3MDMsNDUuNTM3MDMzNCAxNC43MjMyNzY5LDQ0LjU2Mjg2NDkgQzE3LjAxMDk1MjksNDMuMDA0MTk1MyAxOC40NTg2OTE5LDQ0LjEzMDMxMzggMTcuNjk2MTMzMywzMy4xMjIyMTAyIEMxNi44MjQ2Mzc2LDE5LjM4NjQzNSAxNi4wNjIwNzg5LDE3LjQyODU2MjEgMjQuMDE0NDc2OCwxMi44NDk5NzAzIEMzNC43OTkyMzU4LDYuNjE1MjkyMTkgNDIuNzUxNjMzNywzLjU5NTM2OTk3IDUyLjc3MzgzMzksMS43NDQ0NDk5IEM3Ni42MzEwMjc3LC0yLjQ0NDQ3NDQ2IDExMy4zNDI3ODMsMS4yNTczNjU2OCAxMjYuMzA2MjgsOS4xNDgxMzAxNyBDMTMzLjkzMTg2OCwxMy45MjE1NTU2IDEzNi41NDYzNTUsMTYuODQ0MDYxIDEzNi41NDYzNTUsMjAuOTM1NTY4NCBDMTQwLjQ2ODA4NSw4Ny44OTM0MTM3IDE0Mi41Mzc4ODgsMTIxLjg1OTQyIDE0Mi43NTU3NjEsMTIyLjgzMzU4OSBDMTQzLjE5MTUwOSwxMjUuMDc0MTc3IDE0Mi43NTU3NjEsMTI1LjY1ODY3NyAxMzkuMTYwODQyLDEyNy4zMTQ3NjQgQzEzNC4wNDA4MDQsMTI5LjY1Mjc2OSAxMjcuODMxMzk4LDEzMC44MjE3NzEgMTA2LjU4ODY5MSwxMzMuMzU0NjA5IEM5Ny42NTU4NjA3LDEzNC40MjYxOTQgODcuMDg4OTc1OCwxMzUuNjkyNjEzIDgzLjE2NzI0NTIsMTM2LjI3NzExNCBDNzQuNTYxMjI1NSwxMzcuNDQ2MTE2IDUyLjU1NTk2LDEzNy4zNDg2OTkgNDIuODYwNTcwNiwxMzYuMDgyMjggWiBNODQuNTMwMjczNCwxMzIuMDc4NzA0IEM5MC4yMzM4MTY3LDEzMS4zODQ4NTYgOTkuMDk4MzIxMywxMzAuMjUwMDg2IDEwOS4wMzgwODYsMTI5LjE5MzQ1IEMxMjMuMjY5NTg5LDEyNy4wMjU1MDQgMTM1LjQxOTkwMSwxMjUuNjI2MzMxIDEzNi4wNTI0MTMsMTIzLjMzMDg1OSBDMTM2LjI2MzI1LDEyMi42OTMyMjggMTIzLjkzNDI5NSwxMjAuOTc0MjM5IDEyMC4zNTAwNjQsMTE5LjgyNjUwMyBDMTE0LjEzMDM3MSwxMTcuNzg2MDg0IDEwMi4yODI2OTYsMTIwLjE4NTg4MSA5MC4zNzQ5MTk3LDEyMi40MTM1NjMgQzc4LjUwNDkyOTIsMTI0LjYzNDE3NSA2NS40NTYzNDA4LDEyMy4zMzA4NTkgNTcuMjU0NTk4NywxMjMuMzMwODU5IEM1Ny4yNTQ1OTg3LDEyMy4zMzA4NTkgNTIuNDc1NDQ2NiwxMjIuNTIzMTkzIDQyLjkxNzE0MjUsMTIwLjkwNzg2MSBDMzQuODc2MDMxNiwxMTkuNTQ4OTMxIDM2LjIyMTA1NjEsMTE5LjEyMjQ5NCAzMC4wMDEzNjIyLDEyMS44MDA1NDUgQzI2LjQxNzEzMTksMTIzLjQ1ODM4NSAyMy4yNTQ1NzU3LDEyNS4yNDM3NTIgMjMuMTQ5MTU3MiwxMjYuMDA4OTEgQzIzLjE0OTE1NzIsMTI2LjY0NjU0MSAyMy40NDM2MjM4LDEyOC40NjE1MjIgMjYuNDE3MTMxOSwxMjkuOTYyMjIxIEMzMC43NTg3ODkxLDEzMi4xNTM0MTEgNDMuNTE0MTYwMiwxMzIuNDQxMDA4IDU0LjcxNDM1NTUsMTMyLjk4NzM5NSBDNjMuNDg1ODM5OCwxMzIuOTg3Mzk1IDc4LjgyNjczMDEsMTMyLjc3MjU1MSA4NC41MzAyNzM0LDEzMi4wNzg3MDQgWiBNMzkuODcwNjc2MSwxMTYuNzY2ODQ0IEM0NC4xMjY4ODU2LDExNS43MjU4NzYgNTMuNjc3NDA0MSwxMTQuMjExNzQgNjEuMTUxNzIyOCwxMTMuMzYwMDM4IEM3OC43OTk0MjAxLDExMS4zNzI3MzQgMTM0Ljk2MDYyMSwxMTkuNTExMjE1IDEzNS4xNjgyNDEsMTE5LjIyNzMxNSBDMTM1LjM3NTg2MSwxMTkuMDM4MDQ5IDEzNC40NDE1NzEsNTQuMTE5NDYyNSAxMzEuMzI3MjcyLDI5LjcwNDAxNzcgQzEyOS44NzM5MzIsMTguOTE1Nzk3OCAxMjkuMzU0ODgyLDE3Ljk2OTQ2MjcgMTIyLjA4ODE4MywxMy40MjcwNTQ0IEMxMTAuNDYxNDY1LDYuMDQ1NjQwODQgNzQuNTQzMjEwNywyLjczMzQ2ODA4IDUzLjM2NTk3NCw2Ljk5MTk3NTkgQzQyLjk4NDk3NTcsOS4wNzM5MTMwNyAzNi43NTYzNzY3LDExLjcyMzY1MTMgMjcuNDEzNDc4MSwxNy42ODU1NjIzIEwyMi4yODExNjk0LDIxLjU4ODA4NTQgTDIzLjU3MjUwODgsMTIxLjMwOTI1MyBMMzkuODcwNjc2MSwxMTYuNzY2ODQ0IFogTTE3LjU5OTcwNDMsNjUuODAxMzgyMSBDMTcuNTk5NzA0Myw1MC44MjAwMDIzIDE4LjE3MDY1OTIsNTAuNzUyOTc1MyAxNy41OTk3MDQzLDUwLjc1Mjk3NTMgQzE0LjIyNTgzNzcsNTAuNzUyOTc1MyAxMC42ODY5OTQ2LDUzLjIwODYyOTYgNy45MzM0NTE3Miw1Ny42NDI4NTY0IEM1LjgxMDQ2NjgsNjEuMDYxNjUwNyA1LjUwMzQ2MTY2LDY1LjYzMDE2MjggNS41MDM0NjE2Niw2Ny4yMjgwNzE0IEM1LjUwMzQ2MTY2LDc4LjAyNjAyMTMgMTAuODY3NjAxOCw4Ni41MTAxNTI1IDE3LjU5OTcwNDMsODYuNTEwMTUyNSBDMTcuNTk5NzA0Myw4Ni41MTAxNTI1IDE3LjU5OTcwNDMsNzkuNjA3MjI5IDE3LjU5OTcwNDMsNjUuODAxMzgyMSBaIiBpZD0ibXVnIiBzdHJva2U9IiMwMDAwMDAiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDxnIGlkPSJGYWNlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MC45NDI4NTAsIDYwLjQwMDc5NykiPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik02Mi4xNjA3NzgsMzMuNTQ3NTgzNSBDNTguNDA4MjI2MiwyNi42MDQxNTMzIDYwLjExMzkzMTYsMTkuMDI5NTAyMiA2NC44ODk5MDY2LDE5LjAyOTUwMjIgQzY3LjYxOTAzNTMsMTkuMDI5NTAyMiA3MC42ODkzMDQ5LDIxLjU1NDM4NiA3MS43MTI3MjgyLDI0LjcxMDQ5MDYgQzc0LjEwMDcxNTcsMzEuMDIyNjk5OSA2NS4yMzEwNDc4LDM5LjIyODU3MTggNjIuMTYwNzc4LDMzLjU0NzU4MzUgWiIgaWQ9IlNoYXBlIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTIuMTAzMDM4MzcsMzQuMDA2MTkwNiBDLTEuNjQ5NTEzNDksMjcuMDYyNzYwMyAwLjA1NjE5MTkwMTksMTkuNDg4MTA5MiA0LjgzMjE2NywxOS40ODgxMDkyIEM3LjU2MTI5NTYzLDE5LjQ4ODEwOTIgMTAuNjMxNTY1MywyMi4wMTI5OTI5IDExLjY1NDk4ODUsMjUuMTY5MDk3NiBDMTQuMDQyOTc2MSwzMS40ODEzMDY4IDUuMTczMzA4MDgsMzkuNjg3MTc4OSAyLjEwMzAzODM3LDM0LjAwNjE5MDYgWiIgaWQ9IlNoYXBlIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTMxLjI3NDQ0ODEsMTMuNDg2Nzc4OCBDMjIuMzUyNjcyOCw5Ljc1NzE4ODQ0IDIyLjM1MjY3MjgsNi44NTYzOTU5NyAzMS42OTkyOTQ2LDIuOTE5NjA2MTggQzQyLjEwODAzMjQsLTEuMjI0MzgzMDcgNTQuNjQxMDAyNSwtMC44MDk5ODQxNDcgNTkuMTAxODkwMiwzLjc0ODQwNDAzIEM2Mi4yODgyMzg1LDcuNDc3OTk0MzUgNjIuMjg4MjM4NSw3Ljg5MjM5MzI4IDU4Ljg4OTQ2NjksMTAuNzkzMTg1OCBDNTMuMTU0MDM5OSwxNS43NjU5NzI5IDM5LjM0NjUzMDUsMTcuMDA5MTY5NiAzMS4yNzQ0NDgxLDEzLjQ4Njc3ODggWiBNMzQuOTc2NzUxLDcuOTA3NDgwOTMgQzMxLjkwMDc0OTksMTAuMTEwNDkzNyAzNi42OTIxOTYxLDEwLjMyOTQyNTggNDQuNzk0NzQwOCw5LjkxNzg4MDc4IEM1Ni4wMTA3NjU5LDkuMjAxOTk3NDEgNTYuMTM5MTMwOSw0LjQyOTQzMDIxIDQ0LjcxMDU0MzIsNC45MTI0NDYyMyBDMzkuOTU1OTI2OCw1LjA0NDI5NDI5IDM1Ljc0NTc1MTMsNy4zNTY3Mjc3NSAzNC45NzY3NTEsNy45MDc0ODA5MyBaIiBpZD0iU2hhcGUiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgICAgICA8ZyBpZD0iU3RlYW0iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDU5LjAwMDAwMCwgMC4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00LjE2MDcyNzYzLDAgQzMuODM3ODQ1OSwyLjYzMDYwNzA1IDMuNjM2ODk2NjIsNS4zMDMwNTE1OSAzLjU1OTg2MzAyLDcuOTkwOTU4NDEgQzMuNTAzOTksMTEuNzQ3MDY3OSA0LjM0NTcxNTczLDE1LjM3MjE2MjYgNS44ODAxMjQ4MywxNy45ODM3MjUxIEM2Ljg5MDgwOTkzLDE5Ljc5NTY2IDcuODk1MzMyMywyMS42MjM4Njk4IDguODkzNjkxOTYsMjMuNDY4MzU0NCBDOS45NDgxNjY2MywyNS4zNTQ0ODk1IDEwLjY1MTEyNjEsMjcuNzYxNTg3NSAxMC45MDg4OTk0LDMwLjM2ODg5NjkgQzExLjIxOTk2NDQsMzMuNTA1NjYyMyAxMC43MjU3NDQzLDM2LjcyMzg3OTUgOS41NTkyNjUwOCwzOS4xNTczMjM3IEM4LjMyNzMwNjcyLDQxLjc4NjcwODYgNi42NzAxMDYxOCw0My42OTM5NDg1IDQuODA3ODEyNiw0NC42MjU2NzgxIEw0LjE2MDcyNzYzLDQ1IEM0LjU0ODk3ODYyLDQzLjc5NTY2IDQuOTE4NzQxNDUsNDIuNjg4OTY5MiA1LjI2MDc3MjA4LDQxLjU2NjAwMzYgQzUuNzIyOTc1NjMsNDAuMDUyNDQxMiA2LjE4NTE3OTE3LDM4LjUzODg3ODkgNi42MTA0MDY0NCwzNi45NzY0OTE5IEM3LjEwOTgxODQzLDM1LjIzMjYwNTYgNy4wNTAwOTQzNCwzMy4xNTQzNzM1IDYuNDUzMjU3MjMsMzEuNTA4MTM3NCBDNi4yMjkzNzk3LDMwLjkyMTQxNDkgNS45NzIzMTQ0NiwzMC4zNzYxMzUxIDUuNjg1OTk5MzQsMjkuODgwNjUxIEM0LjY2OTE1MTUzLDI4LjA0MTU5MTQgMy42MjQ1NzE1MiwyNi4yNjc2MzExIDIuNjM1NDU1OTIsMjQuNDEyMjk2NiBDMS40NTE3ODQ1NCwyMi4yNjgxOTg3IDAuNjIzODI5MjUsMTkuNTk0ODU0NyAwLjI0MTI0MTU0MiwxNi42ODE3MzYgQy0wLjQzODk4OTM5NiwxMS43NzA5NzU3IDAuMzQwNTA0MzQyLDYuNTg3ODgxNzIgMi4zMTE5MTM0MywyLjkxMzIwMDczIEMyLjc2NDg3MjkxLDIuMDE4MDgzMTkgMy4zMDEwMjkwMywxLjI4NTcxNDI5IDMuODAwMjA4ODcsMC40NTU2OTYyMDIgTDQuMDY4Mjg2OTIsNS4wNTkyNDQxNmUtMTUgTDQuMTYwNzI3NjMsMCBaIiBpZD0iU2hhcGUiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik00MiwyMi4yNzg0MzM1IEM0MS41MDg3NTY2LDIzLjI0Nzc0OCA0MS4wMzY3Nzc2LDI0LjE3NTUyMDUgNDAuNTU1MTY2NCwyNS4xNTg2ODIzIEM0MC4xODQ1MjQ5LDI1Ljk1MjczODQgMzkuODYyMjU0NSwyNi43OTEzMDc5IDM5LjU5MTk0NCwyNy42NjUwNTI4IEMzOS4yOTU2OTQzLDI4Ljg5MjY3NTUgMzkuMjI5MjU3MSwzMC4yMTA3MjI5IDM5LjM5OTI5OTQsMzEuNDg2OTIxNCBDMzkuNTQzNzgyOSwzMy40MjU1NTA0IDM5LjcyNjc5NTEsMzUuMzY0MTc5NSAzOS44MDM4NTI5LDM3LjMwMjgwODUgQzM5Ljg1NjMxMzIsMzguOTU2Nzk5MyAzOS41MTY3MTU1LDQwLjU4NzQxNCAzOC44NDA2MzA1LDQxLjkyNzgyMzUgQzM4LjAxMDUwMjcsNDMuNjk1MDc1NCAzNi42NjAyMTU1LDQ0LjgxMzgwOTIgMzUuMTgwMzg1Myw0NC45NjAzOTMyIEMzMy43MjAwMDUsNDUuMTQ4NDYwOCAzMi4yNTU4ODU1LDQ0LjY2MzQ3NzQgMzEsNDMuNTc1NjU4MSBMMzEuMTM0ODUxMSw0My40MDk0ODk5IEMzMi4wOTgwNzM2LDQyLjQ5NTU2NDkgMzMuMTI4NzIxNSw0MS41OTU0ODcxIDM0LjEwMTU3NjIsNDAuNjQwMDE5OSBDMzQuNzYwMzc3MSw0MC4wNjgxMTA0IDM1LjA3ODA5MzUsMzguOTQwMzI5NiAzNC44ODE3ODYzLDM3Ljg3MDU0OTkgQzM0LjUzOTkyMDgsMzUuNTA3MDY1NyAzNC4zNzUyMzI1LDMzLjA5NzcxNjYgMzQuMzkwNTQzLDMwLjY4Mzc3NSBDMzQuNTUzMDI0NywyNi4zNjI2MjcyIDM2Ljc5MjQzMTgsMjIuNzkxMzAwNCAzOS43NjUzMjQsMjIuMTEyMjY1MyBDNDAuNDE5NDA4MSwyMS45NjI1NzgyIDQxLjA4NTg0NTcsMjEuOTYyNTc4MiA0MS43Mzk5Mjk5LDIyLjExMjI2NTMgTDQxLjg4NDQxMzQsMjIuMTEyMjY1MyBMNDIsMjIuMjc4NDMzNSBaIiBpZD0iU2hhcGUiPjwvcGF0aD4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+'});var ServerSideRender=wp.serverSideRender;const{RichText,InspectorControls}=blockEditor;const{TextControl,CheckboxControl,RadioControl,SelectControl,TextareaControl,ToggleControl,RangeControl,Panel,PanelBody,PanelRow,}=components;registerBlockType('yarpp/yarpp-block',{title:__('YARPP Block','yarpp'),description:__('Display related posts by YARPP','yarpp'),category:'yarpp',icon:iconEl,keywords:[__('yarpp','yarpp'),__('related posts','yarpp'),__('posts','yarpp')],attributes:{limit:{type:'number',default:6,},template:{type:'string',default:yarpp_localized.selected_theme_style,},yarpp_preview:{type:'string',},},example:{attributes:{yarpp_preview:'yarpp_preview',},},edit:function(props){const attributes=props.attributes;const setAttributes=props.setAttributes;var template=Object.keys(yarpp_localized.template).map(function(key){return{value:key,label:yarpp_localized.template[key]}});if(props.isSelected){};function changeThumbnail(template){setAttributes({template})}
|
2 |
+
return[el("div",{className:props.className},el(ServerSideRender,{block:'yarpp/yarpp-block',attributes:attributes})),el(InspectorControls,{},el(PanelBody,{title:'YARPP Posts Settings',initialOpen:!0},el(TextControl,{label:__('Maximum number of posts','yarpp'),value:attributes.limit,onChange:function(val){setAttributes({limit:parseInt(val)})},type:'number',min:1,step:1}),el(SelectControl,{value:attributes.template,label:__('Theme','yarpp'),onChange:changeThumbnail,options:template}),),),]},save(){return null}})})(window.wp.blocks,window.wp.i18n,window.wp.element,window.wp.components,window.wp.editor,window.wp.blockEditor,window.wp.serverSideRender)
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Requires at least: 3.7
|
|
5 |
Requires PHP: 5.3
|
6 |
License: GPLv2 or later
|
7 |
Tested up to: 5.7
|
8 |
-
Stable tag: 5.
|
9 |
|
10 |
The most popular plugin to display a list of related posts on your site based on a powerful unique algorithm.
|
11 |
|
@@ -146,7 +146,13 @@ Once you save any CSS changes, empty your browser's cache and reload your page t
|
|
146 |
|
147 |
= I'm using the Thumbnails display. How can I change the thumbnail size? =
|
148 |
|
149 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
|
151 |
Each time you change YARPP's thumbnail dimensions like this, you will probably want to have WordPress regenerate appropriate sized thumbnails for all of your images. I highly recommend the [Regenerate Thumbnails](https://wordpress.org/extend/plugins/regenerate-thumbnails/) plugin for this purpose.
|
152 |
|
@@ -313,6 +319,12 @@ add_action(
|
|
313 |
`
|
314 |
|
315 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
316 |
= 5.18.2 (19-April-2021) =
|
317 |
* [Bugfix](https://wordpress.org/support/topic/thumbnail-size-wont-change/): Allow default WP image sizes to be picked for the YARPP Thumbnail theme
|
318 |
|
@@ -1132,5 +1144,5 @@ After a break of many years, the plugin is 100% supported now that the baton has
|
|
1132 |
* Initial upload
|
1133 |
|
1134 |
== Upgrade Notice ==
|
1135 |
-
= 5.
|
1136 |
We update this plugin regularly so we can make it better for you. Update to the latest version for all of the available features and improvements. Thank you for using YARPP!
|
5 |
Requires PHP: 5.3
|
6 |
License: GPLv2 or later
|
7 |
Tested up to: 5.7
|
8 |
+
Stable tag: 5.19.0
|
9 |
|
10 |
The most popular plugin to display a list of related posts on your site based on a powerful unique algorithm.
|
11 |
|
146 |
|
147 |
= I'm using the Thumbnails display. How can I change the thumbnail size? =
|
148 |
|
149 |
+
As of YARPP 5.19.0, YARPP usually defaults to using WordPress' default thumbnail size. This can be changed to another thumbnail size using the YARPP setting "Thumbnail Size".
|
150 |
+
|
151 |
+
However, if you used YARPP before 5.19.0, or your theme defines a "yarpp-thumbnail" size, the default is the "yarpp-thumbnail".
|
152 |
+
|
153 |
+
To change "yarpp-thumbnail" size, add `add_image_size('yarpp-thumbnail', $width, $height, true);` to your theme's `functions.php` file with appropriate width and height variables.
|
154 |
+
|
155 |
+
When you do this, make sure you also set the YARPP setting "Thumbnail Size" to "yarpp-thumbnail".
|
156 |
|
157 |
Each time you change YARPP's thumbnail dimensions like this, you will probably want to have WordPress regenerate appropriate sized thumbnails for all of your images. I highly recommend the [Regenerate Thumbnails](https://wordpress.org/extend/plugins/regenerate-thumbnails/) plugin for this purpose.
|
158 |
|
319 |
`
|
320 |
|
321 |
== Changelog ==
|
322 |
+
= 5.19.0 (28-April-2021) =
|
323 |
+
* New: **YARPP Block** 🎉 now available for the WordPress Block Editor (Gutenberg) for drag and drop placement customization
|
324 |
+
* New: Choose image size for YARPP custom theme templates
|
325 |
+
* [Bugfix](https://wordpress.org/support/topic/database-entries-being-added-to-the-post-as-html): Indicate `yarpp_meta` postmeta is protected to prevent themes from displaying it
|
326 |
+
* [Bugfix](https://wordpress.org/support/topic/fatal-error-3858/): Check `wp_get_additional_image_sizes` exists for backwards compatibility to older versions of WordPress
|
327 |
+
|
328 |
= 5.18.2 (19-April-2021) =
|
329 |
* [Bugfix](https://wordpress.org/support/topic/thumbnail-size-wont-change/): Allow default WP image sizes to be picked for the YARPP Thumbnail theme
|
330 |
|
1144 |
* Initial upload
|
1145 |
|
1146 |
== Upgrade Notice ==
|
1147 |
+
= 5.19.0 =
|
1148 |
We update this plugin regularly so we can make it better for you. Update to the latest version for all of the available features and improvements. Thank you for using YARPP!
|
style/yarpp-block-editor.css
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
.wp-block-yarpp-yarpp-block .yarpp-related-block a {
|
2 |
+
pointer-events: none;
|
3 |
+
cursor: default;
|
4 |
+
}
|
yarpp.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/*
|
3 |
Plugin Name: Yet Another Related Posts Plugin (YARPP)
|
4 |
Description: Adds related posts to your site and in RSS feeds, based on a powerful, customizable algorithm.
|
5 |
-
Version: 5.
|
6 |
Author: YARPP
|
7 |
Author URI: https://yarpp.com/
|
8 |
Plugin URI: https://yarpp.com/
|
@@ -24,7 +24,7 @@ if(!defined('WP_CONTENT_DIR')){
|
|
24 |
define('WP_CONTENT_DIR', substr($tr,0,strrpos($tr,'/')));
|
25 |
}
|
26 |
|
27 |
-
define('YARPP_VERSION', '5.
|
28 |
|
29 |
define('YARPP_DIR', dirname(__FILE__));
|
30 |
/**
|
@@ -65,11 +65,13 @@ switch(YARPP_CACHE_TYPE){
|
|
65 |
if(!defined('YARPP_EXTRA_WEIGHT')) define('YARPP_EXTRA_WEIGHT', 3);
|
66 |
|
67 |
/* Includes ----------------------------------------------------------------------------------------------------------*/
|
|
|
68 |
include_once(YARPP_DIR.'/includes/init_functions.php');
|
69 |
include_once(YARPP_DIR.'/includes/related_functions.php');
|
70 |
include_once(YARPP_DIR.'/includes/template_functions.php');
|
71 |
|
72 |
include_once(YARPP_DIR.'/classes/YARPP_Core.php');
|
|
|
73 |
include_once(YARPP_DIR.'/classes/YARPP_Widget.php');
|
74 |
include_once(YARPP_DIR.'/classes/YARPP_Cache.php');
|
75 |
include_once(YARPP_DIR.'/classes/YARPP_Cache_Bypass.php');
|
2 |
/*
|
3 |
Plugin Name: Yet Another Related Posts Plugin (YARPP)
|
4 |
Description: Adds related posts to your site and in RSS feeds, based on a powerful, customizable algorithm.
|
5 |
+
Version: 5.19.0
|
6 |
Author: YARPP
|
7 |
Author URI: https://yarpp.com/
|
8 |
Plugin URI: https://yarpp.com/
|
24 |
define('WP_CONTENT_DIR', substr($tr,0,strrpos($tr,'/')));
|
25 |
}
|
26 |
|
27 |
+
define('YARPP_VERSION', '5.19.0');
|
28 |
|
29 |
define('YARPP_DIR', dirname(__FILE__));
|
30 |
/**
|
65 |
if(!defined('YARPP_EXTRA_WEIGHT')) define('YARPP_EXTRA_WEIGHT', 3);
|
66 |
|
67 |
/* Includes ----------------------------------------------------------------------------------------------------------*/
|
68 |
+
include_once(YARPP_DIR.'/includes/compat.php');
|
69 |
include_once(YARPP_DIR.'/includes/init_functions.php');
|
70 |
include_once(YARPP_DIR.'/includes/related_functions.php');
|
71 |
include_once(YARPP_DIR.'/includes/template_functions.php');
|
72 |
|
73 |
include_once(YARPP_DIR.'/classes/YARPP_Core.php');
|
74 |
+
include_once( YARPP_DIR.'/classes/YARPP_Block.php' );
|
75 |
include_once(YARPP_DIR.'/classes/YARPP_Widget.php');
|
76 |
include_once(YARPP_DIR.'/classes/YARPP_Cache.php');
|
77 |
include_once(YARPP_DIR.'/classes/YARPP_Cache_Bypass.php');
|