Yet Another Related Posts Plugin (YARPP) - Version 5.19.0

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 Icon 128x128 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 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
- if ( false === yarpp_get_image_sizes( 'yarpp-thumbnail' ) ) {
 
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
- if ( is_feed() ) {
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
- echo '<div class="yarpp_form_label">' . esc_html( 'Thumbnail Size', 'yarpp' ) . '</div><div>';
64
- foreach ( $get_image_sizes as $key => $_size ) {
65
- /* translators: %s: thumbnail key's name */
66
- $name = sprintf( __( '%1$s (%2$sx%3$s)', 'yarpp' ), $key, $_size['width'], $_size['height'] );
67
- $this->radio( 'thumbnail_size_display', $name, '', $key );
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 = $default_option;
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.18.2
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
- The default YARPP thumbnail size is 120px by 120px. The thumbnail size can be specified programmatically by adding `add_image_size('yarpp-thumbnail', $width, $height, true);` to your theme's `functions.php` file with appropriate width and height variables. In the future I may add some UI to the settings to also set this. Feedback is requested on whether this is a good idea.
 
 
 
 
 
 
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.18.2 =
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.18.2
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.18.2');
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');