meta-fields-presenter.php
1.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
namespace Yoast\WP\SEO\Presenters\Admin;
use WP_Post;
use WPSEO_Meta;
use Yoast\WP\SEO\Presenters\Abstract_Presenter;
/**
* Presenter class for meta fields in the post editor.
*
* Outputs the hidden fields for a particular field group and post.
*/
class Meta_Fields_Presenter extends Abstract_Presenter {
/**
* The meta fields for which we are going to output hidden input.
*
* @var array
*/
private $meta_fields;
/**
* The metabox post.
*
* @var WP_Post The metabox post.
*/
private $post;
/**
* Meta_Fields_Presenter constructor.
*
* @param WP_Post $post The metabox post.
* @param string $field_group The key under which a group of fields is grouped.
* @param string $post_type The post type.
*/
public function __construct( $post, $field_group, $post_type = 'post' ) {
$this->post = $post;
$this->meta_fields = WPSEO_Meta::get_meta_field_defs( $field_group, $post_type );
}
/**
* Presents the Meta Fields.
*
* @return string The styled Alert.
*/
public function present() {
$output = '';
foreach ( $this->meta_fields as $key => $meta_field ) {
$form_key = \esc_attr( WPSEO_Meta::$form_prefix . $key );
$meta_value = WPSEO_Meta::get_value( $key, $this->post->ID );
$default = '';
if ( isset( $meta_field['default'] ) ) {
$default = \sprintf( ' data-default="%s"', \esc_attr( $meta_field['default'] ) );
}
$output .= '<input type="hidden" id="' . $form_key . '" name="' . $form_key . '" value="' . \esc_attr( $meta_value ) . '"' . $default . '/>' . "\n";
}
return $output;
}
}