Completed
Push — master ( 6a2f04...3823f4 )
by Naveen
01:19
created
src/includes/class-wordlift-content-filter-service.php 2 patches
Indentation   +256 added lines, -256 removed lines patch added patch discarded remove patch
@@ -23,261 +23,261 @@
 block discarded – undo
23 23
  */
24 24
 class Wordlift_Content_Filter_Service {
25 25
 
26
-	/**
27
-	 * The pattern to find entities in text.
28
-	 *
29
-	 * @since 3.8.0
30
-	 */
31
-	const PATTERN = '/<(\\w+)[^<]*class="([^"]*)"\\sitemid=\"([^"]+)\"[^>]*>([^<]*)<\\/\\1>/i';
32
-
33
-	/**
34
-	 * A {@link Wordlift_Entity_Service} instance.
35
-	 *
36
-	 * @since  3.8.0
37
-	 * @access private
38
-	 * @var \Wordlift_Entity_Service $entity_service A {@link Wordlift_Entity_Service} instance.
39
-	 */
40
-	private $entity_service;
41
-
42
-	/**
43
-	 * The `link by default` setting.
44
-	 *
45
-	 * @since  3.13.0
46
-	 * @access private
47
-	 * @var bool True if link by default is enabled otherwise false.
48
-	 */
49
-	private $is_link_by_default;
50
-
51
-	private $linked_entity_uris = array();
52
-
53
-	/**
54
-	 * The {@link Wordlift_Entity_Uri_Service} instance.
55
-	 *
56
-	 * @since  3.16.3
57
-	 * @access private
58
-	 * @var \Wordlift_Entity_Uri_Service $entity_uri_service The {@link Wordlift_Entity_Uri_Service} instance.
59
-	 */
60
-	private $entity_uri_service;
61
-
62
-	/**
63
-	 * A {@link Wordlift_Log_Service} instance.
64
-	 *
65
-	 * @since 3.16.0
66
-	 *
67
-	 * @var \Wordlift_Log_Service $log A {@link Wordlift_Log_Service} instance.
68
-	 */
69
-	private $log;
70
-	/**
71
-	 * @var Object_Link_Provider
72
-	 */
73
-	private $object_link_provider;
74
-
75
-	/**
76
-	 * Create a {@link Wordlift_Content_Filter_Service} instance.
77
-	 *
78
-	 * @param \Wordlift_Entity_Service $entity_service The {@link Wordlift_Entity_Service} instance.
79
-	 * @param \Wordlift_Entity_Uri_Service $entity_uri_service The {@link Wordlift_Entity_Uri_Service} instance.
80
-	 *
81
-	 * @since 3.8.0
82
-	 *
83
-	 */
84
-	protected function __construct( $entity_service, $entity_uri_service ) {
85
-
86
-		$this->log = Wordlift_Log_Service::get_logger( get_class() );
87
-
88
-		$this->entity_service       = $entity_service;
89
-		$this->entity_uri_service   = $entity_uri_service;
90
-		$this->object_link_provider = Object_Link_Provider::get_instance();
91
-
92
-	}
93
-
94
-	private static $instance = null;
95
-
96
-	/**
97
-	 * Get the {@link Wordlift_Content_Filter_Service} singleton instance.
98
-	 *
99
-	 * @return \Wordlift_Content_Filter_Service The {@link Wordlift_Content_Filter_Service} singleton instance.
100
-	 * @since 3.14.2
101
-	 */
102
-	public static function get_instance() {
103
-
104
-		if ( ! isset( self::$instance ) ) {
105
-			self::$instance = new self( Wordlift_Entity_Service::get_instance(), Wordlift_Entity_Uri_Service::get_instance() );
106
-		}
107
-
108
-		return self::$instance;
109
-	}
110
-
111
-	/**
112
-	 * Mangle the content by adding links to the entity pages. This function is
113
-	 * hooked to the 'the_content' WP's filter.
114
-	 *
115
-	 * @param string $content The content being filtered.
116
-	 *
117
-	 * @return string The filtered content.
118
-	 * @since 3.8.0
119
-	 *
120
-	 */
121
-	public function the_content( $content ) {
122
-		$this->log->trace( "Filtering content [ " . ( is_singular() ? 'yes' : 'no' ) . " ]..." );
123
-
124
-		// Links should be added only on the front end and not for RSS.
125
-		if ( is_feed() || is_admin() ) {
126
-			return $content;
127
-		}
128
-
129
-		// Preload the `link by default` setting.
130
-		$this->is_link_by_default = Wordlift_Configuration_Service::get_instance()->is_link_by_default();
131
-
132
-		// Reset the array of of entity post ids linked from the post content.
133
-		// This is used to avoid linking more the once the same post.
134
-		$this->linked_entity_uris = array();
135
-
136
-		// Preload URIs.
137
-		$matches = array();
138
-		preg_match_all( self::PATTERN, $content, $matches );
139
-
140
-		// Bail out if there are no URIs.
141
-		if ( empty( $matches[3] ) ) {
142
-			return $content;
143
-		}
144
-
145
-		// Replace each match of the entity tag with the entity link. If an error
146
-		// occurs fail silently returning the original content.
147
-		return preg_replace_callback( self::PATTERN, array(
148
-			$this,
149
-			'link',
150
-		), $content ) ?: $content;
151
-	}
152
-
153
-	/**
154
-	 * Get the entity match and replace it with a page link.
155
-	 *
156
-	 * @param array $matches An array of matches.
157
-	 *
158
-	 * @return string The replaced text with the link to the entity page.
159
-	 * @since 3.8.0
160
-	 *
161
-	 */
162
-	private function link( $matches ) {
163
-
164
-		// Get the entity itemid URI and label.
165
-		$css_class = $matches[2];
166
-		$uri       = $matches[3];
167
-		$label     = $matches[4];
168
-
169
-
170
-		/**
171
-		 * If the entity is already linked, dont send query to the db.
172
-		 */
173
-		if ( $this->is_already_linked( $uri ) ) {
174
-			return $label;
175
-		}
176
-
177
-
178
-		$link = - 1 < strpos( $css_class, 'wl-link' );
179
-
180
-		// If the entity should not be linked and link by default is also disabled,
181
-		// then don't lookup the entity on the table.
182
-		if ( ! $this->is_link_by_default && ! $link ) {
183
-			return $label;
184
-		}
185
-
186
-		$content_service = Wordpress_Content_Service::get_instance();
187
-		$content         = $content_service->get_by_entity_id_or_same_as( $uri );
188
-
189
-		// If no content is found, return the label, that is _remove the annotation_.
190
-		if ( ! isset( $content ) ) {
191
-			return $label;
192
-		}
193
-
194
-		$object_id   = $content->get_id();
195
-		$object_type = $content->get_object_type_enum();
196
-
197
-
198
-		$no_link = - 1 < strpos( $css_class, 'wl-no-link' );
199
-
200
-		// Don't link if links are disabled and the entity is not link or the
201
-		// entity is do not link.
202
-		$dont_link = ( ! $this->is_link_by_default && ! $link ) || $no_link;
203
-
204
-		// Return the label if it's don't link.
205
-		if ( $dont_link ) {
206
-			return $label;
207
-		}
208
-
209
-		/**
210
-		 * @since 3.32.0
211
-		 * Object_ids are prefixed with object_type to prevent conflicts.
212
-		 */
213
-		$this->linked_entity_uris[] = $uri;
214
-
215
-		// Get the link.
216
-		$href = Wordlift_Post_Adapter::get_production_permalink( $object_id, $object_type );
217
-
218
-		// Bail out if the `$href` has been reset.
219
-		if ( empty( $href ) ) {
220
-			return $label;
221
-		}
222
-
223
-		return Link_Builder::create( $uri, $object_id )
224
-		                   ->label( $label )
225
-		                   ->href( $href )
226
-		                   ->generate_link();
227
-	}
228
-
229
-
230
-	/**
231
-	 * Get a string to be used as a title attribute in links to a post
232
-	 *
233
-	 * @param int $post_id The post id of the post being linked.
234
-	 * @param string $ignore_label A label to ignore.
235
-	 *
236
-	 * @return string    The title to be used in the link. An empty string when
237
-	 *                    there is no alternative that is not the $ignore_label.
238
-	 * @deprecated 3.32.0 Use object link provider to get the link title for getting link
239
-	 * title for different types.
240
-	 * @since 3.15.0
241
-	 *
242
-	 * As of 3.32.0 this method is not used anywhere in the core, this should be removed
243
-	 * from tests and companion plugins.
244
-	 *
245
-	 */
246
-	function get_link_title( $post_id, $ignore_label, $object_type = Object_Type_Enum::POST ) {
247
-		return $this->object_link_provider->get_link_title( $post_id, $ignore_label, $object_type );
248
-	}
249
-
250
-	/**
251
-	 * Get the entity URIs (configured in the `itemid` attribute) contained in
252
-	 * the provided content.
253
-	 *
254
-	 * @param string $content The content.
255
-	 *
256
-	 * @return array An array of URIs.
257
-	 * @since 3.14.2
258
-	 *
259
-	 */
260
-	public function get_entity_uris( $content ) {
261
-
262
-		$matches = array();
263
-		preg_match_all( Wordlift_Content_Filter_Service::PATTERN, $content, $matches );
264
-
265
-		// We need to use `array_values` here in order to avoid further `json_encode`
266
-		// to turn it into an object (since if the 3rd match isn't found the index
267
-		// is not sequential.
268
-		//
269
-		// See https://github.com/insideout10/wordlift-plugin/issues/646.
270
-		return array_values( array_unique( $matches[3] ) );
271
-	}
272
-
273
-
274
-	/**
275
-	 * @param $entity_uri
276
-	 *
277
-	 * @return bool
278
-	 */
279
-	private function is_already_linked( $entity_uri ) {
280
-		return in_array( $entity_uri, $this->linked_entity_uris );
281
-	}
26
+    /**
27
+     * The pattern to find entities in text.
28
+     *
29
+     * @since 3.8.0
30
+     */
31
+    const PATTERN = '/<(\\w+)[^<]*class="([^"]*)"\\sitemid=\"([^"]+)\"[^>]*>([^<]*)<\\/\\1>/i';
32
+
33
+    /**
34
+     * A {@link Wordlift_Entity_Service} instance.
35
+     *
36
+     * @since  3.8.0
37
+     * @access private
38
+     * @var \Wordlift_Entity_Service $entity_service A {@link Wordlift_Entity_Service} instance.
39
+     */
40
+    private $entity_service;
41
+
42
+    /**
43
+     * The `link by default` setting.
44
+     *
45
+     * @since  3.13.0
46
+     * @access private
47
+     * @var bool True if link by default is enabled otherwise false.
48
+     */
49
+    private $is_link_by_default;
50
+
51
+    private $linked_entity_uris = array();
52
+
53
+    /**
54
+     * The {@link Wordlift_Entity_Uri_Service} instance.
55
+     *
56
+     * @since  3.16.3
57
+     * @access private
58
+     * @var \Wordlift_Entity_Uri_Service $entity_uri_service The {@link Wordlift_Entity_Uri_Service} instance.
59
+     */
60
+    private $entity_uri_service;
61
+
62
+    /**
63
+     * A {@link Wordlift_Log_Service} instance.
64
+     *
65
+     * @since 3.16.0
66
+     *
67
+     * @var \Wordlift_Log_Service $log A {@link Wordlift_Log_Service} instance.
68
+     */
69
+    private $log;
70
+    /**
71
+     * @var Object_Link_Provider
72
+     */
73
+    private $object_link_provider;
74
+
75
+    /**
76
+     * Create a {@link Wordlift_Content_Filter_Service} instance.
77
+     *
78
+     * @param \Wordlift_Entity_Service $entity_service The {@link Wordlift_Entity_Service} instance.
79
+     * @param \Wordlift_Entity_Uri_Service $entity_uri_service The {@link Wordlift_Entity_Uri_Service} instance.
80
+     *
81
+     * @since 3.8.0
82
+     *
83
+     */
84
+    protected function __construct( $entity_service, $entity_uri_service ) {
85
+
86
+        $this->log = Wordlift_Log_Service::get_logger( get_class() );
87
+
88
+        $this->entity_service       = $entity_service;
89
+        $this->entity_uri_service   = $entity_uri_service;
90
+        $this->object_link_provider = Object_Link_Provider::get_instance();
91
+
92
+    }
93
+
94
+    private static $instance = null;
95
+
96
+    /**
97
+     * Get the {@link Wordlift_Content_Filter_Service} singleton instance.
98
+     *
99
+     * @return \Wordlift_Content_Filter_Service The {@link Wordlift_Content_Filter_Service} singleton instance.
100
+     * @since 3.14.2
101
+     */
102
+    public static function get_instance() {
103
+
104
+        if ( ! isset( self::$instance ) ) {
105
+            self::$instance = new self( Wordlift_Entity_Service::get_instance(), Wordlift_Entity_Uri_Service::get_instance() );
106
+        }
107
+
108
+        return self::$instance;
109
+    }
110
+
111
+    /**
112
+     * Mangle the content by adding links to the entity pages. This function is
113
+     * hooked to the 'the_content' WP's filter.
114
+     *
115
+     * @param string $content The content being filtered.
116
+     *
117
+     * @return string The filtered content.
118
+     * @since 3.8.0
119
+     *
120
+     */
121
+    public function the_content( $content ) {
122
+        $this->log->trace( "Filtering content [ " . ( is_singular() ? 'yes' : 'no' ) . " ]..." );
123
+
124
+        // Links should be added only on the front end and not for RSS.
125
+        if ( is_feed() || is_admin() ) {
126
+            return $content;
127
+        }
128
+
129
+        // Preload the `link by default` setting.
130
+        $this->is_link_by_default = Wordlift_Configuration_Service::get_instance()->is_link_by_default();
131
+
132
+        // Reset the array of of entity post ids linked from the post content.
133
+        // This is used to avoid linking more the once the same post.
134
+        $this->linked_entity_uris = array();
135
+
136
+        // Preload URIs.
137
+        $matches = array();
138
+        preg_match_all( self::PATTERN, $content, $matches );
139
+
140
+        // Bail out if there are no URIs.
141
+        if ( empty( $matches[3] ) ) {
142
+            return $content;
143
+        }
144
+
145
+        // Replace each match of the entity tag with the entity link. If an error
146
+        // occurs fail silently returning the original content.
147
+        return preg_replace_callback( self::PATTERN, array(
148
+            $this,
149
+            'link',
150
+        ), $content ) ?: $content;
151
+    }
152
+
153
+    /**
154
+     * Get the entity match and replace it with a page link.
155
+     *
156
+     * @param array $matches An array of matches.
157
+     *
158
+     * @return string The replaced text with the link to the entity page.
159
+     * @since 3.8.0
160
+     *
161
+     */
162
+    private function link( $matches ) {
163
+
164
+        // Get the entity itemid URI and label.
165
+        $css_class = $matches[2];
166
+        $uri       = $matches[3];
167
+        $label     = $matches[4];
168
+
169
+
170
+        /**
171
+         * If the entity is already linked, dont send query to the db.
172
+         */
173
+        if ( $this->is_already_linked( $uri ) ) {
174
+            return $label;
175
+        }
176
+
177
+
178
+        $link = - 1 < strpos( $css_class, 'wl-link' );
179
+
180
+        // If the entity should not be linked and link by default is also disabled,
181
+        // then don't lookup the entity on the table.
182
+        if ( ! $this->is_link_by_default && ! $link ) {
183
+            return $label;
184
+        }
185
+
186
+        $content_service = Wordpress_Content_Service::get_instance();
187
+        $content         = $content_service->get_by_entity_id_or_same_as( $uri );
188
+
189
+        // If no content is found, return the label, that is _remove the annotation_.
190
+        if ( ! isset( $content ) ) {
191
+            return $label;
192
+        }
193
+
194
+        $object_id   = $content->get_id();
195
+        $object_type = $content->get_object_type_enum();
196
+
197
+
198
+        $no_link = - 1 < strpos( $css_class, 'wl-no-link' );
199
+
200
+        // Don't link if links are disabled and the entity is not link or the
201
+        // entity is do not link.
202
+        $dont_link = ( ! $this->is_link_by_default && ! $link ) || $no_link;
203
+
204
+        // Return the label if it's don't link.
205
+        if ( $dont_link ) {
206
+            return $label;
207
+        }
208
+
209
+        /**
210
+         * @since 3.32.0
211
+         * Object_ids are prefixed with object_type to prevent conflicts.
212
+         */
213
+        $this->linked_entity_uris[] = $uri;
214
+
215
+        // Get the link.
216
+        $href = Wordlift_Post_Adapter::get_production_permalink( $object_id, $object_type );
217
+
218
+        // Bail out if the `$href` has been reset.
219
+        if ( empty( $href ) ) {
220
+            return $label;
221
+        }
222
+
223
+        return Link_Builder::create( $uri, $object_id )
224
+                            ->label( $label )
225
+                            ->href( $href )
226
+                            ->generate_link();
227
+    }
228
+
229
+
230
+    /**
231
+     * Get a string to be used as a title attribute in links to a post
232
+     *
233
+     * @param int $post_id The post id of the post being linked.
234
+     * @param string $ignore_label A label to ignore.
235
+     *
236
+     * @return string    The title to be used in the link. An empty string when
237
+     *                    there is no alternative that is not the $ignore_label.
238
+     * @deprecated 3.32.0 Use object link provider to get the link title for getting link
239
+     * title for different types.
240
+     * @since 3.15.0
241
+     *
242
+     * As of 3.32.0 this method is not used anywhere in the core, this should be removed
243
+     * from tests and companion plugins.
244
+     *
245
+     */
246
+    function get_link_title( $post_id, $ignore_label, $object_type = Object_Type_Enum::POST ) {
247
+        return $this->object_link_provider->get_link_title( $post_id, $ignore_label, $object_type );
248
+    }
249
+
250
+    /**
251
+     * Get the entity URIs (configured in the `itemid` attribute) contained in
252
+     * the provided content.
253
+     *
254
+     * @param string $content The content.
255
+     *
256
+     * @return array An array of URIs.
257
+     * @since 3.14.2
258
+     *
259
+     */
260
+    public function get_entity_uris( $content ) {
261
+
262
+        $matches = array();
263
+        preg_match_all( Wordlift_Content_Filter_Service::PATTERN, $content, $matches );
264
+
265
+        // We need to use `array_values` here in order to avoid further `json_encode`
266
+        // to turn it into an object (since if the 3rd match isn't found the index
267
+        // is not sequential.
268
+        //
269
+        // See https://github.com/insideout10/wordlift-plugin/issues/646.
270
+        return array_values( array_unique( $matches[3] ) );
271
+    }
272
+
273
+
274
+    /**
275
+     * @param $entity_uri
276
+     *
277
+     * @return bool
278
+     */
279
+    private function is_already_linked( $entity_uri ) {
280
+        return in_array( $entity_uri, $this->linked_entity_uris );
281
+    }
282 282
 
283 283
 }
Please login to merge, or discard this patch.
Spacing   +32 added lines, -32 removed lines patch added patch discarded remove patch
@@ -81,9 +81,9 @@  discard block
 block discarded – undo
81 81
 	 * @since 3.8.0
82 82
 	 *
83 83
 	 */
84
-	protected function __construct( $entity_service, $entity_uri_service ) {
84
+	protected function __construct($entity_service, $entity_uri_service) {
85 85
 
86
-		$this->log = Wordlift_Log_Service::get_logger( get_class() );
86
+		$this->log = Wordlift_Log_Service::get_logger(get_class());
87 87
 
88 88
 		$this->entity_service       = $entity_service;
89 89
 		$this->entity_uri_service   = $entity_uri_service;
@@ -101,8 +101,8 @@  discard block
 block discarded – undo
101 101
 	 */
102 102
 	public static function get_instance() {
103 103
 
104
-		if ( ! isset( self::$instance ) ) {
105
-			self::$instance = new self( Wordlift_Entity_Service::get_instance(), Wordlift_Entity_Uri_Service::get_instance() );
104
+		if ( ! isset(self::$instance)) {
105
+			self::$instance = new self(Wordlift_Entity_Service::get_instance(), Wordlift_Entity_Uri_Service::get_instance());
106 106
 		}
107 107
 
108 108
 		return self::$instance;
@@ -118,11 +118,11 @@  discard block
 block discarded – undo
118 118
 	 * @since 3.8.0
119 119
 	 *
120 120
 	 */
121
-	public function the_content( $content ) {
122
-		$this->log->trace( "Filtering content [ " . ( is_singular() ? 'yes' : 'no' ) . " ]..." );
121
+	public function the_content($content) {
122
+		$this->log->trace("Filtering content [ ".(is_singular() ? 'yes' : 'no')." ]...");
123 123
 
124 124
 		// Links should be added only on the front end and not for RSS.
125
-		if ( is_feed() || is_admin() ) {
125
+		if (is_feed() || is_admin()) {
126 126
 			return $content;
127 127
 		}
128 128
 
@@ -135,19 +135,19 @@  discard block
 block discarded – undo
135 135
 
136 136
 		// Preload URIs.
137 137
 		$matches = array();
138
-		preg_match_all( self::PATTERN, $content, $matches );
138
+		preg_match_all(self::PATTERN, $content, $matches);
139 139
 
140 140
 		// Bail out if there are no URIs.
141
-		if ( empty( $matches[3] ) ) {
141
+		if (empty($matches[3])) {
142 142
 			return $content;
143 143
 		}
144 144
 
145 145
 		// Replace each match of the entity tag with the entity link. If an error
146 146
 		// occurs fail silently returning the original content.
147
-		return preg_replace_callback( self::PATTERN, array(
147
+		return preg_replace_callback(self::PATTERN, array(
148 148
 			$this,
149 149
 			'link',
150
-		), $content ) ?: $content;
150
+		), $content) ?: $content;
151 151
 	}
152 152
 
153 153
 	/**
@@ -159,7 +159,7 @@  discard block
 block discarded – undo
159 159
 	 * @since 3.8.0
160 160
 	 *
161 161
 	 */
162
-	private function link( $matches ) {
162
+	private function link($matches) {
163 163
 
164 164
 		// Get the entity itemid URI and label.
165 165
 		$css_class = $matches[2];
@@ -170,24 +170,24 @@  discard block
 block discarded – undo
170 170
 		/**
171 171
 		 * If the entity is already linked, dont send query to the db.
172 172
 		 */
173
-		if ( $this->is_already_linked( $uri ) ) {
173
+		if ($this->is_already_linked($uri)) {
174 174
 			return $label;
175 175
 		}
176 176
 
177 177
 
178
-		$link = - 1 < strpos( $css_class, 'wl-link' );
178
+		$link = - 1 < strpos($css_class, 'wl-link');
179 179
 
180 180
 		// If the entity should not be linked and link by default is also disabled,
181 181
 		// then don't lookup the entity on the table.
182
-		if ( ! $this->is_link_by_default && ! $link ) {
182
+		if ( ! $this->is_link_by_default && ! $link) {
183 183
 			return $label;
184 184
 		}
185 185
 
186 186
 		$content_service = Wordpress_Content_Service::get_instance();
187
-		$content         = $content_service->get_by_entity_id_or_same_as( $uri );
187
+		$content         = $content_service->get_by_entity_id_or_same_as($uri);
188 188
 
189 189
 		// If no content is found, return the label, that is _remove the annotation_.
190
-		if ( ! isset( $content ) ) {
190
+		if ( ! isset($content)) {
191 191
 			return $label;
192 192
 		}
193 193
 
@@ -195,14 +195,14 @@  discard block
 block discarded – undo
195 195
 		$object_type = $content->get_object_type_enum();
196 196
 
197 197
 
198
-		$no_link = - 1 < strpos( $css_class, 'wl-no-link' );
198
+		$no_link = - 1 < strpos($css_class, 'wl-no-link');
199 199
 
200 200
 		// Don't link if links are disabled and the entity is not link or the
201 201
 		// entity is do not link.
202
-		$dont_link = ( ! $this->is_link_by_default && ! $link ) || $no_link;
202
+		$dont_link = ( ! $this->is_link_by_default && ! $link) || $no_link;
203 203
 
204 204
 		// Return the label if it's don't link.
205
-		if ( $dont_link ) {
205
+		if ($dont_link) {
206 206
 			return $label;
207 207
 		}
208 208
 
@@ -213,16 +213,16 @@  discard block
 block discarded – undo
213 213
 		$this->linked_entity_uris[] = $uri;
214 214
 
215 215
 		// Get the link.
216
-		$href = Wordlift_Post_Adapter::get_production_permalink( $object_id, $object_type );
216
+		$href = Wordlift_Post_Adapter::get_production_permalink($object_id, $object_type);
217 217
 
218 218
 		// Bail out if the `$href` has been reset.
219
-		if ( empty( $href ) ) {
219
+		if (empty($href)) {
220 220
 			return $label;
221 221
 		}
222 222
 
223
-		return Link_Builder::create( $uri, $object_id )
224
-		                   ->label( $label )
225
-		                   ->href( $href )
223
+		return Link_Builder::create($uri, $object_id)
224
+		                   ->label($label)
225
+		                   ->href($href)
226 226
 		                   ->generate_link();
227 227
 	}
228 228
 
@@ -243,8 +243,8 @@  discard block
 block discarded – undo
243 243
 	 * from tests and companion plugins.
244 244
 	 *
245 245
 	 */
246
-	function get_link_title( $post_id, $ignore_label, $object_type = Object_Type_Enum::POST ) {
247
-		return $this->object_link_provider->get_link_title( $post_id, $ignore_label, $object_type );
246
+	function get_link_title($post_id, $ignore_label, $object_type = Object_Type_Enum::POST) {
247
+		return $this->object_link_provider->get_link_title($post_id, $ignore_label, $object_type);
248 248
 	}
249 249
 
250 250
 	/**
@@ -257,17 +257,17 @@  discard block
 block discarded – undo
257 257
 	 * @since 3.14.2
258 258
 	 *
259 259
 	 */
260
-	public function get_entity_uris( $content ) {
260
+	public function get_entity_uris($content) {
261 261
 
262 262
 		$matches = array();
263
-		preg_match_all( Wordlift_Content_Filter_Service::PATTERN, $content, $matches );
263
+		preg_match_all(Wordlift_Content_Filter_Service::PATTERN, $content, $matches);
264 264
 
265 265
 		// We need to use `array_values` here in order to avoid further `json_encode`
266 266
 		// to turn it into an object (since if the 3rd match isn't found the index
267 267
 		// is not sequential.
268 268
 		//
269 269
 		// See https://github.com/insideout10/wordlift-plugin/issues/646.
270
-		return array_values( array_unique( $matches[3] ) );
270
+		return array_values(array_unique($matches[3]));
271 271
 	}
272 272
 
273 273
 
@@ -276,8 +276,8 @@  discard block
 block discarded – undo
276 276
 	 *
277 277
 	 * @return bool
278 278
 	 */
279
-	private function is_already_linked( $entity_uri ) {
280
-		return in_array( $entity_uri, $this->linked_entity_uris );
279
+	private function is_already_linked($entity_uri) {
280
+		return in_array($entity_uri, $this->linked_entity_uris);
281 281
 	}
282 282
 
283 283
 }
Please login to merge, or discard this patch.