Markup (JSON-LD) structured in schema.org - Version 1.3.0

Version Description

  • Added : Localizing into Japanese.
Download this release

Release Info

Developer miiitaka
Plugin Icon 128x128 Markup (JSON-LD) structured in schema.org
Version 1.3.0
Comparing to
See all releases

Code changes from version 1.2.1 to 1.3.0

Files changed (30) hide show
  1. wp-structuring-admin-db.php → includes/wp-structuring-admin-db.php +0 -0
  2. wp-structuring-admin-list.php → includes/wp-structuring-admin-list.php +33 -17
  3. wp-structuring-admin-post.php → includes/wp-structuring-admin-post.php +28 -17
  4. wp-structuring-admin-type-article.php → includes/wp-structuring-admin-type-article.php +0 -0
  5. wp-structuring-admin-type-blog-posting.php → includes/wp-structuring-admin-type-blog-posting.php +0 -0
  6. wp-structuring-admin-type-news-article.php → includes/wp-structuring-admin-type-news-article.php +0 -0
  7. wp-structuring-admin-type-organization.php → includes/wp-structuring-admin-type-organization.php +0 -0
  8. wp-structuring-admin-type-website.php → includes/wp-structuring-admin-type-website.php +0 -0
  9. wp-structuring-display.php → includes/wp-structuring-display.php +0 -0
  10. languages/wp-structuring-markup-ja.mo +0 -0
  11. languages/wp-structuring-markup-ja.po +113 -0
  12. languages/wp-structuring-markup.pot +112 -0
  13. readme.txt +16 -22
  14. trunk/css/style.css +22 -0
  15. trunk/includes/wp-structuring-admin-db.php +169 -0
  16. trunk/includes/wp-structuring-admin-list.php +144 -0
  17. trunk/includes/wp-structuring-admin-post.php +271 -0
  18. trunk/includes/wp-structuring-admin-type-article.php +43 -0
  19. trunk/includes/wp-structuring-admin-type-blog-posting.php +44 -0
  20. trunk/includes/wp-structuring-admin-type-news-article.php +44 -0
  21. trunk/includes/wp-structuring-admin-type-organization.php +176 -0
  22. trunk/includes/wp-structuring-admin-type-website.php +92 -0
  23. trunk/includes/wp-structuring-display.php +250 -0
  24. trunk/languages/wp-structuring-markup-ja.mo +0 -0
  25. trunk/languages/wp-structuring-markup-ja.po +113 -0
  26. trunk/languages/wp-structuring-markup.pot +112 -0
  27. trunk/readme.txt +71 -0
  28. trunk/uninstall.php +35 -0
  29. trunk/wp-structuring-markup.php +154 -0
  30. wp-structuring-markup.php +50 -23
wp-structuring-admin-db.php → includes/wp-structuring-admin-db.php RENAMED
File without changes
wp-structuring-admin-list.php → includes/wp-structuring-admin-list.php RENAMED
@@ -8,6 +8,14 @@
8
  * @see wp-structuring-admin-db.php
9
  */
10
  class Structuring_Markup_Admin_List {
 
 
 
 
 
 
 
 
11
  /** Schema.org Type defined. */
12
  private $type_array = array(
13
  "website" => "Web Site",
@@ -20,9 +28,13 @@ class Structuring_Markup_Admin_List {
20
  /**
21
  * Constructor Define.
22
  *
23
- * @since 1.0.0
 
 
24
  */
25
- function __construct() {
 
 
26
  $db = new Structuring_Markup_Admin_Db();
27
  $mode = "";
28
 
@@ -39,18 +51,19 @@ class Structuring_Markup_Admin_List {
39
  /**
40
  * LIST Page HTML Render.
41
  *
42
- * @since 1.0.0
43
- * @param Structuring_Markup_Admin_Db $db
44
- * @param String $mode
 
45
  */
46
  private function page_render( Structuring_Markup_Admin_Db $db, $mode = "" ) {
47
- $post_url = admin_url() . "admin.php?page=wp-structuring-markup/wp-structuring-admin-post.php";
48
  $self_url = $_SERVER['PHP_SELF'] . '?' . esc_html( $_SERVER['QUERY_STRING'] );
49
 
50
  $html = '';
51
  $html .= '<div class="wrap">';
52
- $html .= '<h1>Schema.org Setting List';
53
- $html .= '<a href="' . $post_url . '" class="page-title-action">新規追加</a>';
54
  $html .= '</h1>';
55
  echo $html;
56
 
@@ -61,10 +74,10 @@ class Structuring_Markup_Admin_List {
61
  $html = '<hr>';
62
  $html .= '<table class="wp-list-table widefat fixed striped posts">';
63
  $html .= '<tr>';
64
- $html .= '<th scope="row">Schema&nbsp;Type</th>';
65
- $html .= '<th scope="row">Output&nbsp;Page</th>';
66
- $html .= '<th scope="row">Register&nbsp;Date</th>';
67
- $html .= '<th scope="row">Update&nbsp;Date</th>';
68
  $html .= '<th scope="row">&nbsp;</th>';
69
  $html .= '</tr>';
70
  echo $html;
@@ -82,14 +95,18 @@ class Structuring_Markup_Admin_List {
82
  $html .= '<td>' . esc_html( $row->register_date ) . '</td>';
83
  $html .= '<td>' . esc_html( $row->update_date ) . '</td>';
84
  $html .= '<td>';
85
- $html .= '<a href="' . $post_url . '&mode=edit&schema_post_id=' . esc_html( $row->id ) . '">Edit</a>&nbsp;&nbsp;';
86
- $html .= '<a href="' . $self_url . '&mode=delete&schema_post_id=' . esc_html( $row->id ) . '">Delete</a>';
 
 
 
 
87
  $html .= '</td>';
88
  $html .= '</tr>';
89
  echo $html;
90
  }
91
  } else {
92
- echo '<td colspan="3">NOT FOUND</td>';
93
  }
94
 
95
  $html = '</table>';
@@ -102,14 +119,13 @@ class Structuring_Markup_Admin_List {
102
  *
103
  * @since 1.0.0
104
  * @param object $obj
105
- * @return string
106
  */
107
  private function unserialize_output( $obj ) {
108
  $args = unserialize( $obj );
109
  return (string) implode( ",", $args );
110
  }
111
 
112
-
113
  /**
114
  * Information Message Render
115
  *
8
  * @see wp-structuring-admin-db.php
9
  */
10
  class Structuring_Markup_Admin_List {
11
+
12
+ /**
13
+ * Variable definition.
14
+ *
15
+ * @since 1.3.0
16
+ */
17
+ private $text_domain;
18
+
19
  /** Schema.org Type defined. */
20
  private $type_array = array(
21
  "website" => "Web Site",
28
  /**
29
  * Constructor Define.
30
  *
31
+ * @since 1.0.0
32
+ * @version 1.3.0
33
+ * @param String $text_domain
34
  */
35
+ function __construct( $text_domain ) {
36
+ $this->text_domain = $text_domain;
37
+
38
  $db = new Structuring_Markup_Admin_Db();
39
  $mode = "";
40
 
51
  /**
52
  * LIST Page HTML Render.
53
  *
54
+ * @since 1.0.0
55
+ * @version 1.3.0
56
+ * @param Structuring_Markup_Admin_Db $db
57
+ * @param String $mode
58
  */
59
  private function page_render( Structuring_Markup_Admin_Db $db, $mode = "" ) {
60
+ $post_url = admin_url() . 'admin.php?page=' . $this->text_domain . '/includes/wp-structuring-admin-post.php';
61
  $self_url = $_SERVER['PHP_SELF'] . '?' . esc_html( $_SERVER['QUERY_STRING'] );
62
 
63
  $html = '';
64
  $html .= '<div class="wrap">';
65
+ $html .= '<h1>' . esc_html__( 'Schema.org Setting List', $this->text_domain );
66
+ $html .= '<a href="' . $post_url . '" class="page-title-action">' . esc_html__( 'Add New', $this->text_domain ) . '</a>';
67
  $html .= '</h1>';
68
  echo $html;
69
 
74
  $html = '<hr>';
75
  $html .= '<table class="wp-list-table widefat fixed striped posts">';
76
  $html .= '<tr>';
77
+ $html .= '<th scope="row">' . esc_html__( 'Schema Type', $this->text_domain ) . '</th>';
78
+ $html .= '<th scope="row">' . esc_html__( 'Output Page', $this->text_domain ) . '</th>';
79
+ $html .= '<th scope="row">' . esc_html__( 'Register Date', $this->text_domain ) . '</th>';
80
+ $html .= '<th scope="row">' . esc_html__( 'Update Date', $this->text_domain ) . '</th>';
81
  $html .= '<th scope="row">&nbsp;</th>';
82
  $html .= '</tr>';
83
  echo $html;
95
  $html .= '<td>' . esc_html( $row->register_date ) . '</td>';
96
  $html .= '<td>' . esc_html( $row->update_date ) . '</td>';
97
  $html .= '<td>';
98
+ $html .= '<a href="' . $post_url . '&mode=edit&schema_post_id=' . esc_html( $row->id ) . '">';
99
+ $html .= esc_html__( 'Edit', $this->text_domain );
100
+ $html .= '</a>&nbsp;&nbsp;&nbsp;&nbsp;';
101
+ $html .= '<a href="' . $self_url . '&mode=delete&schema_post_id=' . esc_html( $row->id ) . '">';
102
+ $html .= esc_html__( 'Delete', $this->text_domain );
103
+ $html .= '</a>';
104
  $html .= '</td>';
105
  $html .= '</tr>';
106
  echo $html;
107
  }
108
  } else {
109
+ echo '<td colspan="3">' . esc_html__( 'Without registration.', $this->text_domain ) . '</td>';
110
  }
111
 
112
  $html = '</table>';
119
  *
120
  * @since 1.0.0
121
  * @param object $obj
122
+ * @return string $args
123
  */
124
  private function unserialize_output( $obj ) {
125
  $args = unserialize( $obj );
126
  return (string) implode( ",", $args );
127
  }
128
 
 
129
  /**
130
  * Information Message Render
131
  *
wp-structuring-admin-post.php → includes/wp-structuring-admin-post.php RENAMED
@@ -8,6 +8,13 @@
8
  */
9
  class Structuring_Markup_Admin_Post {
10
 
 
 
 
 
 
 
 
11
  /** Schema.org Type defined. */
12
  private $type_array = array(
13
  array("type" => "website", "display" => "Web Site"),
@@ -20,9 +27,13 @@ class Structuring_Markup_Admin_Post {
20
  /**
21
  * Constructor Define.
22
  *
23
- * @since 1.0.0
 
 
24
  */
25
- public function __construct() {
 
 
26
  /**
27
  * Input Mode
28
  *
@@ -98,7 +109,7 @@ class Structuring_Markup_Admin_Post {
98
  * Setting Page of the Admin Screen.
99
  *
100
  * @since 1.0.0
101
- * @version 1.2.1
102
  * @param array $options
103
  * @param string $mode
104
  * @param string $status
@@ -106,7 +117,7 @@ class Structuring_Markup_Admin_Post {
106
  private function page_render( array $options, $mode, $status ) {
107
  $html = '';
108
  $html .= '<div class="wrap">';
109
- $html .= '<h1>Schema.org Post</h1>';
110
  echo $html;
111
 
112
  switch ( $status ) {
@@ -122,7 +133,7 @@ class Structuring_Markup_Admin_Post {
122
 
123
  $html = '<hr>';
124
  $html .= '<form method="get" action="">';
125
- $html .= '<input type="hidden" name="page" value="wp-structuring-markup/wp-structuring-admin-post.php">';
126
  $html .= '<table class="schema-admin-table">';
127
  $html .= '<tr><th><label for="type">Schema Type :</label></th><td>';
128
  $html .= '<select id="type" name="type" onchange="this.form.submit();">';
@@ -147,15 +158,15 @@ class Structuring_Markup_Admin_Post {
147
  $html .= '<input type="hidden" name="id" value="' . esc_attr( $options['id'] ) . '">';
148
  $html .= '<input type="hidden" name="type" value="' . esc_attr( $options['type'] ) . '">';
149
  $html .= '<table class="schema-admin-table">';
150
- $html .= '<tr><th>Output :</th><td>';
151
  echo $html;
152
 
153
  switch ( $options['type'] ) {
154
  case 'website':
155
- $this->output_checkbox_render( $options['output'], "all", "All", "All Page" );
156
- $this->output_checkbox_render( $options['output'], "home", "Top", "Top Page" );
157
- $this->output_checkbox_render( $options['output'], "post", "Post", "Post Page" );
158
- $this->output_checkbox_render( $options['output'], "page", "Fixed", "Fixed Page" );
159
  $html = '</td></tr></table><hr>';
160
  echo $html;
161
 
@@ -163,10 +174,10 @@ class Structuring_Markup_Admin_Post {
163
  new Structuring_Markup_Type_Website( $options['option'] );
164
  break;
165
  case 'organization':
166
- $this->output_checkbox_render( $options['output'], "all", "All", "All Page" );
167
- $this->output_checkbox_render( $options['output'], "home", "Top", "Top Page" );
168
- $this->output_checkbox_render( $options['output'], "post", "Post", "Post Page" );
169
- $this->output_checkbox_render( $options['output'], "page", "Fixed", "Fixed Page" );
170
  $html = '</td></tr></table><hr>';
171
  echo $html;
172
 
@@ -174,7 +185,7 @@ class Structuring_Markup_Admin_Post {
174
  new Structuring_Markup_Type_Organization( $options['option'] );
175
  break;
176
  case 'article':
177
- $this->output_checkbox_render( $options['output'], "post", "Post", "Post Page" );
178
  $html = '</td></tr></table><hr>';
179
  echo $html;
180
 
@@ -182,7 +193,7 @@ class Structuring_Markup_Admin_Post {
182
  new Structuring_Markup_Type_Article();
183
  break;
184
  case 'blog_posting':
185
- $this->output_checkbox_render( $options['output'], "post", "Post", "Post Page" );
186
  $html = '</td></tr></table><hr>';
187
  echo $html;
188
 
@@ -190,7 +201,7 @@ class Structuring_Markup_Admin_Post {
190
  new Structuring_Markup_Type_Blog_Posting();
191
  break;
192
  case 'news_article':
193
- $this->output_checkbox_render( $options['output'], "post", "Post", "Post Page" );
194
  $html = '</td></tr></table><hr>';
195
  echo $html;
196
 
8
  */
9
  class Structuring_Markup_Admin_Post {
10
 
11
+ /**
12
+ * Variable definition.
13
+ *
14
+ * @since 1.3.0
15
+ */
16
+ private $text_domain;
17
+
18
  /** Schema.org Type defined. */
19
  private $type_array = array(
20
  array("type" => "website", "display" => "Web Site"),
27
  /**
28
  * Constructor Define.
29
  *
30
+ * @since 1.0.0
31
+ * @version 1.3.0
32
+ * @param String $text_domain
33
  */
34
+ public function __construct( $text_domain ) {
35
+ $this->text_domain = $text_domain;
36
+
37
  /**
38
  * Input Mode
39
  *
109
  * Setting Page of the Admin Screen.
110
  *
111
  * @since 1.0.0
112
+ * @version 1.3.0
113
  * @param array $options
114
  * @param string $mode
115
  * @param string $status
117
  private function page_render( array $options, $mode, $status ) {
118
  $html = '';
119
  $html .= '<div class="wrap">';
120
+ $html .= '<h1>' . esc_html__( 'Schema.org Register', $this->text_domain ) . '</h1>';
121
  echo $html;
122
 
123
  switch ( $status ) {
133
 
134
  $html = '<hr>';
135
  $html .= '<form method="get" action="">';
136
+ $html .= '<input type="hidden" name="page" value="wp-structuring-markup/includes/wp-structuring-admin-post.php">';
137
  $html .= '<table class="schema-admin-table">';
138
  $html .= '<tr><th><label for="type">Schema Type :</label></th><td>';
139
  $html .= '<select id="type" name="type" onchange="this.form.submit();">';
158
  $html .= '<input type="hidden" name="id" value="' . esc_attr( $options['id'] ) . '">';
159
  $html .= '<input type="hidden" name="type" value="' . esc_attr( $options['type'] ) . '">';
160
  $html .= '<table class="schema-admin-table">';
161
+ $html .= '<tr><th>' . esc_html__( 'Output Page', $this->text_domain ) . ':</th><td>';
162
  echo $html;
163
 
164
  switch ( $options['type'] ) {
165
  case 'website':
166
+ $this->output_checkbox_render( $options['output'], "all", "All", esc_html__( 'All Page', $this->text_domain ) );
167
+ $this->output_checkbox_render( $options['output'], "home", "Top", esc_html__( 'Top Page', $this->text_domain ) );
168
+ $this->output_checkbox_render( $options['output'], "post", "Post", esc_html__( 'Post Page', $this->text_domain ) );
169
+ $this->output_checkbox_render( $options['output'], "page", "Fixed", esc_html__( 'Fixed Page', $this->text_domain ) );
170
  $html = '</td></tr></table><hr>';
171
  echo $html;
172
 
174
  new Structuring_Markup_Type_Website( $options['option'] );
175
  break;
176
  case 'organization':
177
+ $this->output_checkbox_render( $options['output'], "all", "All", esc_html__( 'All Page', $this->text_domain ) );
178
+ $this->output_checkbox_render( $options['output'], "home", "Top", esc_html__( 'Top Page', $this->text_domain ) );
179
+ $this->output_checkbox_render( $options['output'], "post", "Post", esc_html__( 'Post Page', $this->text_domain ) );
180
+ $this->output_checkbox_render( $options['output'], "page", "Fixed", esc_html__( 'Fixed Page', $this->text_domain ) );
181
  $html = '</td></tr></table><hr>';
182
  echo $html;
183
 
185
  new Structuring_Markup_Type_Organization( $options['option'] );
186
  break;
187
  case 'article':
188
+ $this->output_checkbox_render( $options['output'], "post", "Post", esc_html__( 'Post Page', $this->text_domain ) );
189
  $html = '</td></tr></table><hr>';
190
  echo $html;
191
 
193
  new Structuring_Markup_Type_Article();
194
  break;
195
  case 'blog_posting':
196
+ $this->output_checkbox_render( $options['output'], "post", "Post", esc_html__( 'Post Page', $this->text_domain ) );
197
  $html = '</td></tr></table><hr>';
198
  echo $html;
199
 
201
  new Structuring_Markup_Type_Blog_Posting();
202
  break;
203
  case 'news_article':
204
+ $this->output_checkbox_render( $options['output'], "post", "Post", esc_html__( 'Post Page', $this->text_domain ) );
205
  $html = '</td></tr></table><hr>';
206
  echo $html;
207
 
wp-structuring-admin-type-article.php → includes/wp-structuring-admin-type-article.php RENAMED
File without changes
wp-structuring-admin-type-blog-posting.php → includes/wp-structuring-admin-type-blog-posting.php RENAMED
File without changes
wp-structuring-admin-type-news-article.php → includes/wp-structuring-admin-type-news-article.php RENAMED
File without changes
wp-structuring-admin-type-organization.php → includes/wp-structuring-admin-type-organization.php RENAMED
File without changes
wp-structuring-admin-type-website.php → includes/wp-structuring-admin-type-website.php RENAMED
File without changes
wp-structuring-display.php → includes/wp-structuring-display.php RENAMED
File without changes
languages/wp-structuring-markup-ja.mo ADDED
Binary file
languages/wp-structuring-markup-ja.po ADDED
@@ -0,0 +1,113 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2015 Markup (JSON-LD) structured in schema.org
2
+ # This file is distributed under the same license as the Markup (JSON-LD) structured in schema.org package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Markup (JSON-LD) structured in schema.org 1.3.0\n"
6
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-structuring-"
7
+ "markup\n"
8
+ "POT-Creation-Date: 2015-10-24 10:02:34+00:00\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "PO-Revision-Date: 2015-MO-DA HO:MI+ZONE\n"
13
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
+ "Language-Team: LANGUAGE <LL@li.org>\n"
15
+
16
+ #: includes/wp-structuring-admin-list.php:65
17
+ msgid "Schema.org Setting List"
18
+ msgstr "Schema.org 設定一覧"
19
+
20
+ #: includes/wp-structuring-admin-list.php:66 wp-structuring-markup.php:95
21
+ msgid "Add New"
22
+ msgstr "新規追加"
23
+
24
+ #: includes/wp-structuring-admin-list.php:77
25
+ msgid "Schema Type"
26
+ msgstr ""
27
+
28
+ #: includes/wp-structuring-admin-list.php:78
29
+ #: includes/wp-structuring-admin-post.php:161
30
+ msgid "Output Page"
31
+ msgstr "出力ページ"
32
+
33
+ #: includes/wp-structuring-admin-list.php:79
34
+ msgid "Register Date"
35
+ msgstr "登録日"
36
+
37
+ #: includes/wp-structuring-admin-list.php:80
38
+ msgid "Update Date"
39
+ msgstr "更新日"
40
+
41
+ #: includes/wp-structuring-admin-list.php:99
42
+ msgid "Edit"
43
+ msgstr "編集"
44
+
45
+ #: includes/wp-structuring-admin-list.php:102
46
+ msgid "Delete"
47
+ msgstr "削除"
48
+
49
+ #: includes/wp-structuring-admin-list.php:109
50
+ msgid "Without registration."
51
+ msgstr "登録されていません。"
52
+
53
+ #: includes/wp-structuring-admin-post.php:120
54
+ msgid "Schema.org Register"
55
+ msgstr "Scheme.org 登録"
56
+
57
+ #: includes/wp-structuring-admin-post.php:166
58
+ #: includes/wp-structuring-admin-post.php:177
59
+ msgid "All Page"
60
+ msgstr "全てのページ"
61
+
62
+ #: includes/wp-structuring-admin-post.php:167
63
+ #: includes/wp-structuring-admin-post.php:178
64
+ msgid "Top Page"
65
+ msgstr "トップページ"
66
+
67
+ #: includes/wp-structuring-admin-post.php:168
68
+ #: includes/wp-structuring-admin-post.php:179
69
+ #: includes/wp-structuring-admin-post.php:188
70
+ #: includes/wp-structuring-admin-post.php:196
71
+ #: includes/wp-structuring-admin-post.php:204
72
+ msgid "Post Page"
73
+ msgstr "投稿ページ"
74
+
75
+ #: includes/wp-structuring-admin-post.php:169
76
+ #: includes/wp-structuring-admin-post.php:180
77
+ msgid "Fixed Page"
78
+ msgstr "固定ページ"
79
+
80
+ #: wp-structuring-markup.php:78 wp-structuring-markup.php:79
81
+ msgid "Scheme.org Setting"
82
+ msgstr "Scheme.org 設定"
83
+
84
+ #: wp-structuring-markup.php:86 wp-structuring-markup.php:87
85
+ msgid "Setting All"
86
+ msgstr "設定一覧"
87
+
88
+ #: wp-structuring-markup.php:94
89
+ msgid "Scheme.org Setting Post"
90
+ msgstr "新規登録"
91
+
92
+ #. Plugin Name of the plugin/theme
93
+ msgid "Markup (JSON-LD) structured in schema.org"
94
+ msgstr ""
95
+
96
+ #. Plugin URI of the plugin/theme
97
+ msgid "https://github.com/miiitaka/wp-structuring-markup"
98
+ msgstr ""
99
+
100
+ #. Description of the plugin/theme
101
+ msgid ""
102
+ "It is plug in to implement structured markup (JSON-LD syntax) by schema.org "
103
+ "definition on an article or the fixed page."
104
+ msgstr ""
105
+ "このプラグインは、投稿ページ、固定ページなどにschema.org定義の構造化マークアップ( JSON -LDの構文)を実装するプラグインです。"
106
+
107
+ #. Author of the plugin/theme
108
+ msgid "Kazuya Takami"
109
+ msgstr ""
110
+
111
+ #. Author URI of the plugin/theme
112
+ msgid "http://programp.com/"
113
+ msgstr ""
languages/wp-structuring-markup.pot ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2015 Markup (JSON-LD) structured in schema.org
2
+ # This file is distributed under the same license as the Markup (JSON-LD) structured in schema.org package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Markup (JSON-LD) structured in schema.org 1.3.0\n"
6
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-structuring-"
7
+ "markup\n"
8
+ "POT-Creation-Date: 2015-10-24 10:02:34+00:00\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "PO-Revision-Date: 2015-MO-DA HO:MI+ZONE\n"
13
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
+ "Language-Team: LANGUAGE <LL@li.org>\n"
15
+
16
+ #: includes/wp-structuring-admin-list.php:65
17
+ msgid "Schema.org Setting List"
18
+ msgstr ""
19
+
20
+ #: includes/wp-structuring-admin-list.php:66 wp-structuring-markup.php:95
21
+ msgid "Add New"
22
+ msgstr ""
23
+
24
+ #: includes/wp-structuring-admin-list.php:77
25
+ msgid "Schema Type"
26
+ msgstr ""
27
+
28
+ #: includes/wp-structuring-admin-list.php:78
29
+ #: includes/wp-structuring-admin-post.php:161
30
+ msgid "Output Page"
31
+ msgstr ""
32
+
33
+ #: includes/wp-structuring-admin-list.php:79
34
+ msgid "Register Date"
35
+ msgstr ""
36
+
37
+ #: includes/wp-structuring-admin-list.php:80
38
+ msgid "Update Date"
39
+ msgstr ""
40
+
41
+ #: includes/wp-structuring-admin-list.php:99
42
+ msgid "Edit"
43
+ msgstr ""
44
+
45
+ #: includes/wp-structuring-admin-list.php:102
46
+ msgid "Delete"
47
+ msgstr ""
48
+
49
+ #: includes/wp-structuring-admin-list.php:109
50
+ msgid "Without registration."
51
+ msgstr ""
52
+
53
+ #: includes/wp-structuring-admin-post.php:120
54
+ msgid "Schema.org Post"
55
+ msgstr ""
56
+
57
+ #: includes/wp-structuring-admin-post.php:166
58
+ #: includes/wp-structuring-admin-post.php:177
59
+ msgid "All Page"
60
+ msgstr ""
61
+
62
+ #: includes/wp-structuring-admin-post.php:167
63
+ #: includes/wp-structuring-admin-post.php:178
64
+ msgid "Top Page"
65
+ msgstr ""
66
+
67
+ #: includes/wp-structuring-admin-post.php:168
68
+ #: includes/wp-structuring-admin-post.php:179
69
+ #: includes/wp-structuring-admin-post.php:188
70
+ #: includes/wp-structuring-admin-post.php:196
71
+ #: includes/wp-structuring-admin-post.php:204
72
+ msgid "Post Page"
73
+ msgstr ""
74
+
75
+ #: includes/wp-structuring-admin-post.php:169
76
+ #: includes/wp-structuring-admin-post.php:180
77
+ msgid "Fixed Page"
78
+ msgstr ""
79
+
80
+ #: wp-structuring-markup.php:78 wp-structuring-markup.php:79
81
+ msgid "Scheme.org Setting"
82
+ msgstr ""
83
+
84
+ #: wp-structuring-markup.php:86 wp-structuring-markup.php:87
85
+ msgid "Setting All"
86
+ msgstr ""
87
+
88
+ #: wp-structuring-markup.php:94
89
+ msgid "Scheme.org Setting Post"
90
+ msgstr ""
91
+
92
+ #. Plugin Name of the plugin/theme
93
+ msgid "Markup (JSON-LD) structured in schema.org"
94
+ msgstr ""
95
+
96
+ #. Plugin URI of the plugin/theme
97
+ msgid "https://github.com/miiitaka/wp-structuring-markup"
98
+ msgstr ""
99
+
100
+ #. Description of the plugin/theme
101
+ msgid ""
102
+ "It is plug in to implement structured markup (JSON-LD syntax) by schema.org "
103
+ "definition on an article or the fixed page."
104
+ msgstr ""
105
+
106
+ #. Author of the plugin/theme
107
+ msgid "Kazuya Takami"
108
+ msgstr ""
109
+
110
+ #. Author URI of the plugin/theme
111
+ msgid "http://programp.com/"
112
+ msgstr ""
readme.txt CHANGED
@@ -1,37 +1,27 @@
1
  === Markup (JSON-LD) structured in schema.org ===
2
  Contributors: miiitaka
3
- Tags: schema, json, seo, post, posts, google,
4
  Requires at least: 4.3.1
5
  Tested up to: 4.3.1
6
- Stable tag: 1.2.1
7
 
8
- It is plug in to implement structured markup (JSON-LD syntax) by schema.org definition on an article or the fixed page.
9
 
10
  == Description ==
11
 
12
- It is plug in to implement structured markup (JSON-LD syntax) by schema.org definition on an article or the fixed page.
13
  Base knowledge is "https://schema.org/" and "https://developers.google.com/structured-data/"
14
 
15
- [ Schema.org Type ]
 
16
 
17
- = Website =
18
 
19
- * https://schema.org/WebSite
20
-
21
- = Organization =
22
-
23
- * https://schema.org/Organization
24
-
25
- = Article =
26
-
27
- * http://schema.org/Article
28
-
29
- = BlogPosting =
30
-
31
- * http://schema.org/BlogPosting
32
-
33
- == Installation ==
34
- * http://schema.org/NewsArticle
35
 
36
  == Installation ==
37
 
@@ -42,6 +32,10 @@ Base knowledge is "https://schema.org/" and "https://developers.google.com/struc
42
 
43
  == Changelog ==
44
 
 
 
 
 
45
  = 1.2.1 =
46
 
47
  * Updated : Read admin menu css -> wp_register_style setting
1
  === Markup (JSON-LD) structured in schema.org ===
2
  Contributors: miiitaka
3
+ Tags: schema, schema.org, json, json-ld, seo, post, posts, google
4
  Requires at least: 4.3.1
5
  Tested up to: 4.3.1
6
+ Stable tag: 1.3.0
7
 
8
+ It is plug in to implement structured markup (JSON-LD syntax) by schema.org definition on an post page, fixed page and etc.
9
 
10
  == Description ==
11
 
12
+ It is plug in to implement structured markup (JSON-LD syntax) by schema.org definition on an post page, fixed page and etc.
13
  Base knowledge is "https://schema.org/" and "https://developers.google.com/structured-data/"
14
 
15
+ このプラグインは、投稿ページ、固定ページなどにschema.org定義の構造化マークアップ( JSON -LDの構文)を実装するプラグインです。
16
+ 基本知識は、https://schema.org/ や https://developers.google.com/structured-data/ を参考にしてください。
17
 
18
+ = Schema.org Type =
19
 
20
+ * Website: https://schema.org/WebSite
21
+ * Organization: https://schema.org/Organization
22
+ * Article: http://schema.org/Article
23
+ * BlogPosting: http://schema.org/BlogPosting
24
+ * NewsArticle: http://schema.org/NewsArticle
 
 
 
 
 
 
 
 
 
 
 
25
 
26
  == Installation ==
27
 
32
 
33
  == Changelog ==
34
 
35
+ = 1.3.0 =
36
+
37
+ * Added : Localizing into Japanese.
38
+
39
  = 1.2.1 =
40
 
41
  * Updated : Read admin menu css -> wp_register_style setting
trunk/css/style.css ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .schema-admin-table {
2
+ margin: 15px 0 15px 0;
3
+ }
4
+ .schema-admin-table caption {
5
+ border-left: solid 4px #00a0d2;
6
+ margin: 0 0 10px 0;
7
+ padding: 3px 0 3px 7px;
8
+ text-align: left;
9
+ }
10
+ .schema-admin-table th {
11
+ text-align: right;
12
+ width: 100px;
13
+ }
14
+ .schema-admin-table td label{
15
+ margin: 0 10px 0 0;
16
+ }
17
+ .schema-admin-table small {
18
+ margin: 0 0 0 10px;
19
+ }
20
+ .schema-admin-table input[type="checkbox"] {
21
+ margin: 0 5px 0 0;
22
+ }
trunk/includes/wp-structuring-admin-db.php ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ define( 'WP_STRUCTURING_MARKUP_DB', 'structuring_markup' );
3
+
4
+ /**
5
+ * Schema.org Admin DB Connection
6
+ *
7
+ * @author Kazuya Takami
8
+ * @version 1.0.0
9
+ * @since 1.0.0
10
+ */
11
+ class Structuring_Markup_Admin_Db {
12
+ private $table_name;
13
+
14
+ /**
15
+ * Constructor Define.
16
+ *
17
+ * @since 1.0.0
18
+ */
19
+ public function __construct() {
20
+ global $wpdb;
21
+ $this->table_name = $wpdb->prefix . WP_STRUCTURING_MARKUP_DB;
22
+ }
23
+
24
+ /**
25
+ * Create Table.
26
+ *
27
+ * @since 1.0.0
28
+ */
29
+ public function create_table() {
30
+ global $wpdb;
31
+
32
+ $prepared = $wpdb->prepare( "SHOW TABLES LIKE %s", $this->table_name );
33
+ $is_db_exists = $wpdb->get_var( $prepared );
34
+
35
+ if ( is_null( $is_db_exists ) ) {
36
+ $charset_collate = $wpdb->get_charset_collate();
37
+
38
+ $query = " CREATE TABLE " . $this->table_name;
39
+ $query .= " (id mediumint(9) NOT NULL AUTO_INCREMENT PRIMARY KEY";
40
+ $query .= ",type tinytext NOT NULL";
41
+ $query .= ",output text NOT NULL";
42
+ $query .= ",options text NOT NULL";
43
+ $query .= ",register_date datetime DEFAULT '0000-00-00 00:00:00' NOT NULL";
44
+ $query .= ",update_date datetime DEFAULT '0000-00-00 00:00:00' NOT NULL";
45
+ $query .= ",UNIQUE KEY id (id)) " . $charset_collate;
46
+
47
+ require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
48
+ dbDelta( $query );
49
+ }
50
+ }
51
+
52
+ /**
53
+ * Get Data.
54
+ *
55
+ * @since 1.0.0
56
+ * @param integer $id
57
+ * @return array $results
58
+ */
59
+ public function get_options( $id ) {
60
+ global $wpdb;
61
+
62
+ $query = "SELECT * FROM " . $this->table_name . " WHERE id = %d";
63
+ $data = array( $id );
64
+ $prepared = $wpdb->prepare( $query, $data );
65
+ $args = $wpdb->get_row( $prepared );
66
+ $results = array();
67
+
68
+ if ( $args ) {
69
+ $results['id'] = $args->id;
70
+ $results['type'] = $args->type;
71
+ $results['output'] = unserialize( $args->output );
72
+ $results['option'] = unserialize( $args->options );
73
+ }
74
+ return (array) $results;
75
+ }
76
+
77
+ /**
78
+ * Get All Data.
79
+ *
80
+ * @since 1.0.0
81
+ * @return array $results
82
+ */
83
+ public function get_list_options() {
84
+ global $wpdb;
85
+
86
+ $query = "SELECT * FROM " . $this->table_name . " ORDER BY update_date DESC";
87
+
88
+ return (array) $wpdb->get_results( $query );
89
+ }
90
+
91
+ /**
92
+ * Get Select Data.
93
+ *
94
+ * @since 1.0.0
95
+ * @param array $output
96
+ * @return array $results
97
+ */
98
+ public function get_select_options( $output ) {
99
+ global $wpdb;
100
+
101
+ $query = "SELECT * FROM " . $this->table_name . " WHERE output LIKE '%%%s%%'";
102
+ $data = array( $output );
103
+ $prepared = $wpdb->prepare( $query, $data );
104
+ $results = $wpdb->get_results( $prepared );
105
+
106
+ return (array) $results;
107
+ }
108
+
109
+ /**
110
+ * Insert Data.
111
+ *
112
+ * @since 1.0.0
113
+ * @param array $post($_POST)
114
+ * @return integer $id
115
+ */
116
+ public function insert_options( array $post ) {
117
+ global $wpdb;
118
+
119
+ $data = array(
120
+ 'type' => $post['type'],
121
+ 'output' => serialize( $post['output'] ),
122
+ 'options' => isset( $post['option'] ) ? serialize( $post['option'] ) : "",
123
+ 'register_date' => date( "Y-m-d H:i:s" ),
124
+ 'update_date' => date( "Y-m-d H:i:s" )
125
+ );
126
+ $prepared = array( '%s', '%s', '%s' );
127
+
128
+ $wpdb->insert( $this->table_name, $data, $prepared );
129
+
130
+ return (int) $wpdb->insert_id;
131
+ }
132
+
133
+ /**
134
+ * Update Data.
135
+ *
136
+ * @since 1.0.0
137
+ * @param array $post($_POST)
138
+ */
139
+ public function update_options( array $post ) {
140
+ global $wpdb;
141
+
142
+ $data = array(
143
+ 'type' => $post['type'],
144
+ 'output' => serialize( $post['output'] ),
145
+ 'options' => isset( $post['option'] ) ? serialize( $post['option'] ) : "",
146
+ 'update_date' => date( "Y-m-d H:i:s" )
147
+ );
148
+ $key = array( 'id' => $post['id'] );
149
+ $prepared = array( '%s', '%s', '%s' );
150
+ $key_prepared = array( '%d' );
151
+
152
+ $wpdb->update( $this->table_name, $data, $key, $prepared, $key_prepared );
153
+ }
154
+
155
+ /**
156
+ * Delete Data.
157
+ *
158
+ * @since 1.0.0
159
+ * @param integer $id
160
+ */
161
+ public function delete_options( $id ) {
162
+ global $wpdb;
163
+
164
+ $key = array( 'id' => $id );
165
+ $key_prepared = array( '%d' );
166
+
167
+ $wpdb->delete( $this->table_name, $key, $key_prepared );
168
+ }
169
+ }
trunk/includes/wp-structuring-admin-list.php ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Schema.org Admin List
4
+ *
5
+ * @author Kazuya Takami
6
+ * @version 1.2.0
7
+ * @since 1.0.0
8
+ * @see wp-structuring-admin-db.php
9
+ */
10
+ class Structuring_Markup_Admin_List {
11
+
12
+ /**
13
+ * Variable definition.
14
+ *
15
+ * @since 1.3.0
16
+ */
17
+ private $text_domain;
18
+
19
+ /** Schema.org Type defined. */
20
+ private $type_array = array(
21
+ "website" => "Web Site",
22
+ "organization" => "Organization",
23
+ "article" => "Article",
24
+ "blog_posting" => "Blog Posting",
25
+ "news_article" => "News Article"
26
+ );
27
+
28
+ /**
29
+ * Constructor Define.
30
+ *
31
+ * @since 1.0.0
32
+ * @version 1.3.0
33
+ * @param String $text_domain
34
+ */
35
+ function __construct( $text_domain ) {
36
+ $this->text_domain = $text_domain;
37
+
38
+ $db = new Structuring_Markup_Admin_Db();
39
+ $mode = "";
40
+
41
+ if ( isset( $_GET['mode'] ) && $_GET['mode'] === 'delete' ) {
42
+ if ( isset( $_GET['schema_post_id'] ) && is_numeric( $_GET['schema_post_id'] ) ) {
43
+ $db->delete_options( $_GET['schema_post_id'] );
44
+ $mode = "delete";
45
+ }
46
+ }
47
+
48
+ $this->page_render( $db, $mode );
49
+ }
50
+
51
+ /**
52
+ * LIST Page HTML Render.
53
+ *
54
+ * @since 1.0.0
55
+ * @version 1.3.0
56
+ * @param Structuring_Markup_Admin_Db $db
57
+ * @param String $mode
58
+ */
59
+ private function page_render( Structuring_Markup_Admin_Db $db, $mode = "" ) {
60
+ $post_url = admin_url() . 'admin.php?page=' . $this->text_domain . '/includes/wp-structuring-admin-post.php';
61
+ $self_url = $_SERVER['PHP_SELF'] . '?' . esc_html( $_SERVER['QUERY_STRING'] );
62
+
63
+ $html = '';
64
+ $html .= '<div class="wrap">';
65
+ $html .= '<h1>' . esc_html__( 'Schema.org Setting List', $this->text_domain );
66
+ $html .= '<a href="' . $post_url . '" class="page-title-action">' . esc_html__( 'Add New', $this->text_domain ) . '</a>';
67
+ $html .= '</h1>';
68
+ echo $html;
69
+
70
+ if ( $mode === "delete" ) {
71
+ $this->information_render();
72
+ }
73
+
74
+ $html = '<hr>';
75
+ $html .= '<table class="wp-list-table widefat fixed striped posts">';
76
+ $html .= '<tr>';
77
+ $html .= '<th scope="row">' . esc_html__( 'Schema Type', $this->text_domain ) . '</th>';
78
+ $html .= '<th scope="row">' . esc_html__( 'Output Page', $this->text_domain ) . '</th>';
79
+ $html .= '<th scope="row">' . esc_html__( 'Register Date', $this->text_domain ) . '</th>';
80
+ $html .= '<th scope="row">' . esc_html__( 'Update Date', $this->text_domain ) . '</th>';
81
+ $html .= '<th scope="row">&nbsp;</th>';
82
+ $html .= '</tr>';
83
+ echo $html;
84
+
85
+ $results = $db->get_list_options();
86
+
87
+ if ( $results ) {
88
+ foreach ( $results as $row ) {
89
+ $html = '';
90
+ $html .= '<tr>';
91
+ $html .= '<td>';
92
+ $html .= '<a href="' . $post_url . '&mode=edit&schema_post_id=' . esc_html( $row->id ) . '">' . $this->type_array[esc_html( $row->type )] . '</a>';
93
+ $html .= '</td>';
94
+ $html .= '<td>' . $this->unserialize_output( $row->output ) . '</td>';
95
+ $html .= '<td>' . esc_html( $row->register_date ) . '</td>';
96
+ $html .= '<td>' . esc_html( $row->update_date ) . '</td>';
97
+ $html .= '<td>';
98
+ $html .= '<a href="' . $post_url . '&mode=edit&schema_post_id=' . esc_html( $row->id ) . '">';
99
+ $html .= esc_html__( 'Edit', $this->text_domain );
100
+ $html .= '</a>&nbsp;&nbsp;&nbsp;&nbsp;';
101
+ $html .= '<a href="' . $self_url . '&mode=delete&schema_post_id=' . esc_html( $row->id ) . '">';
102
+ $html .= esc_html__( 'Delete', $this->text_domain );
103
+ $html .= '</a>';
104
+ $html .= '</td>';
105
+ $html .= '</tr>';
106
+ echo $html;
107
+ }
108
+ } else {
109
+ echo '<td colspan="3">' . esc_html__( 'Without registration.', $this->text_domain ) . '</td>';
110
+ }
111
+
112
+ $html = '</table>';
113
+ $html .= '</div>';
114
+ echo $html;
115
+ }
116
+
117
+ /**
118
+ * LIST Page HTML Render.
119
+ *
120
+ * @since 1.0.0
121
+ * @param object $obj
122
+ * @return string $args
123
+ */
124
+ private function unserialize_output( $obj ) {
125
+ $args = unserialize( $obj );
126
+ return (string) implode( ",", $args );
127
+ }
128
+
129
+ /**
130
+ * Information Message Render
131
+ *
132
+ * @since 1.0.0
133
+ */
134
+ private function information_render() {
135
+ $html = '<div id="message" class="updated notice notice-success is-dismissible below-h2">';
136
+ $html .= '<p>Deletion succeeds.</p>';
137
+ $html .= '<button type="button" class="notice-dismiss">';
138
+ $html .= '<span class="screen-reader-text">Dismiss this notice.</span>';
139
+ $html .= '</button>';
140
+ $html .= '</div>';
141
+
142
+ echo $html;
143
+ }
144
+ }
trunk/includes/wp-structuring-admin-post.php ADDED
@@ -0,0 +1,271 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Schema.org Admin Post
4
+ *
5
+ * @author Kazuya Takami
6
+ * @version 1.2.0
7
+ * @since 1.0.0
8
+ */
9
+ class Structuring_Markup_Admin_Post {
10
+
11
+ /**
12
+ * Variable definition.
13
+ *
14
+ * @since 1.3.0
15
+ */
16
+ private $text_domain;
17
+
18
+ /** Schema.org Type defined. */
19
+ private $type_array = array(
20
+ array("type" => "website", "display" => "Web Site"),
21
+ array("type" => "organization", "display" => "Organization"),
22
+ array("type" => "article", "display" => "Article"),
23
+ array("type" => "blog_posting", "display" => "Blog Posting"),
24
+ array("type" => "news_article", "display" => "News Article")
25
+ );
26
+
27
+ /**
28
+ * Constructor Define.
29
+ *
30
+ * @since 1.0.0
31
+ * @version 1.3.0
32
+ * @param String $text_domain
33
+ */
34
+ public function __construct( $text_domain ) {
35
+ $this->text_domain = $text_domain;
36
+
37
+ /**
38
+ * Input Mode
39
+ *
40
+ * "" : Input Start
41
+ * "edit" : Edit Mode
42
+ */
43
+ $mode = isset( $_GET['mode'] ) ? esc_html( $_GET['mode'] ) : "";
44
+
45
+ /**
46
+ * Update Status
47
+ *
48
+ * "ok" : Successful update
49
+ * "output" : Output No Check
50
+ */
51
+ $status = "";
52
+
53
+ /** DB Connect */
54
+ $db = new Structuring_Markup_Admin_Db();
55
+
56
+ /** Set Default Parameter for Array */
57
+ $options = array(
58
+ "id" => "",
59
+ "type" => "website",
60
+ "output" => array(),
61
+ "option" => array()
62
+ );
63
+
64
+ /** Key Set */
65
+ if ( isset( $_GET['schema_post_id'] ) && is_numeric( $_GET['schema_post_id'] ) ) {
66
+ $options['id'] = esc_html( $_GET['schema_post_id'] );
67
+ }
68
+
69
+ /** Type Set */
70
+ if ( isset( $_GET['type'] ) ) {
71
+ foreach ( $this->type_array as $value ) {
72
+ if ( $_GET['type'] === $value['type'] ) {
73
+ $options['type'] = esc_html( $_GET['type'] );
74
+ break;
75
+ }
76
+ }
77
+ }
78
+
79
+ /** DataBase Update & Insert Mode */
80
+ if ( isset( $_POST['id'] ) && is_numeric( $_POST['id'] ) ) {
81
+ if ( isset( $_POST['output'] ) ) {
82
+ $db->update_options( $_POST );
83
+ $options['id'] = $_POST['id'];
84
+ $status = "ok";
85
+ } else {
86
+ $status = "output";
87
+ }
88
+ } else {
89
+ if ( isset( $_POST['id'] ) && $_POST['id'] === '' ) {
90
+ if ( isset( $_POST['output'] ) ) {
91
+ $options['id'] = $db->insert_options( $_POST );
92
+ $status = "ok";
93
+ $mode = "edit";
94
+ } else {
95
+ $status = "output";
96
+ }
97
+ }
98
+ }
99
+
100
+ /** Mode Judgment */
101
+ if ( isset( $options['id'] ) && is_numeric( $options['id'] ) ) {
102
+ $options = $db->get_options( $options['id'] );
103
+ }
104
+
105
+ $this->page_render( $options, $mode, $status );
106
+ }
107
+
108
+ /**
109
+ * Setting Page of the Admin Screen.
110
+ *
111
+ * @since 1.0.0
112
+ * @version 1.3.0
113
+ * @param array $options
114
+ * @param string $mode
115
+ * @param string $status
116
+ */
117
+ private function page_render( array $options, $mode, $status ) {
118
+ $html = '';
119
+ $html .= '<div class="wrap">';
120
+ $html .= '<h1>' . esc_html__( 'Schema.org Register', $this->text_domain ) . '</h1>';
121
+ echo $html;
122
+
123
+ switch ( $status ) {
124
+ case "ok":
125
+ $this->information_render();
126
+ break;
127
+ case "output":
128
+ $this->output_error_render();
129
+ break;
130
+ default:
131
+ break;
132
+ }
133
+
134
+ $html = '<hr>';
135
+ $html .= '<form method="get" action="">';
136
+ $html .= '<input type="hidden" name="page" value="wp-structuring-markup/includes/wp-structuring-admin-post.php">';
137
+ $html .= '<table class="schema-admin-table">';
138
+ $html .= '<tr><th><label for="type">Schema Type :</label></th><td>';
139
+ $html .= '<select id="type" name="type" onchange="this.form.submit();">';
140
+ foreach ( $this->type_array as $value ) {
141
+ $html .= '<option value="' . $value['type'] . '"';
142
+ if ( $value['type'] === $options['type'] ) {
143
+ $html .= ' selected';
144
+ } else {
145
+ if ( $mode === "edit" ) {
146
+ $html .= ' disabled';
147
+ }
148
+ }
149
+ $html .= '>' . $value['display'] . '</option>';
150
+ }
151
+ $html .= '</select>';
152
+ $html .= '</td></tr></table>';
153
+ $html .= '</form>';
154
+ echo $html;
155
+
156
+ /** Output Page Select */
157
+ $html = '<form method="post" action="">';
158
+ $html .= '<input type="hidden" name="id" value="' . esc_attr( $options['id'] ) . '">';
159
+ $html .= '<input type="hidden" name="type" value="' . esc_attr( $options['type'] ) . '">';
160
+ $html .= '<table class="schema-admin-table">';
161
+ $html .= '<tr><th>' . esc_html__( 'Output Page', $this->text_domain ) . ':</th><td>';
162
+ echo $html;
163
+
164
+ switch ( $options['type'] ) {
165
+ case 'website':
166
+ $this->output_checkbox_render( $options['output'], "all", "All", esc_html__( 'All Page', $this->text_domain ) );
167
+ $this->output_checkbox_render( $options['output'], "home", "Top", esc_html__( 'Top Page', $this->text_domain ) );
168
+ $this->output_checkbox_render( $options['output'], "post", "Post", esc_html__( 'Post Page', $this->text_domain ) );
169
+ $this->output_checkbox_render( $options['output'], "page", "Fixed", esc_html__( 'Fixed Page', $this->text_domain ) );
170
+ $html = '</td></tr></table><hr>';
171
+ echo $html;
172
+
173
+ require_once( plugin_dir_path( __FILE__ ) . 'wp-structuring-admin-type-website.php' );
174
+ new Structuring_Markup_Type_Website( $options['option'] );
175
+ break;
176
+ case 'organization':
177
+ $this->output_checkbox_render( $options['output'], "all", "All", esc_html__( 'All Page', $this->text_domain ) );
178
+ $this->output_checkbox_render( $options['output'], "home", "Top", esc_html__( 'Top Page', $this->text_domain ) );
179
+ $this->output_checkbox_render( $options['output'], "post", "Post", esc_html__( 'Post Page', $this->text_domain ) );
180
+ $this->output_checkbox_render( $options['output'], "page", "Fixed", esc_html__( 'Fixed Page', $this->text_domain ) );
181
+ $html = '</td></tr></table><hr>';
182
+ echo $html;
183
+
184
+ require_once ( plugin_dir_path( __FILE__ ) . 'wp-structuring-admin-type-organization.php' );
185
+ new Structuring_Markup_Type_Organization( $options['option'] );
186
+ break;
187
+ case 'article':
188
+ $this->output_checkbox_render( $options['output'], "post", "Post", esc_html__( 'Post Page', $this->text_domain ) );
189
+ $html = '</td></tr></table><hr>';
190
+ echo $html;
191
+
192
+ require_once ( plugin_dir_path( __FILE__ ) . 'wp-structuring-admin-type-article.php' );
193
+ new Structuring_Markup_Type_Article();
194
+ break;
195
+ case 'blog_posting':
196
+ $this->output_checkbox_render( $options['output'], "post", "Post", esc_html__( 'Post Page', $this->text_domain ) );
197
+ $html = '</td></tr></table><hr>';
198
+ echo $html;
199
+
200
+ require_once ( plugin_dir_path( __FILE__ ) . 'wp-structuring-admin-type-blog-posting.php' );
201
+ new Structuring_Markup_Type_Blog_Posting();
202
+ break;
203
+ case 'news_article':
204
+ $this->output_checkbox_render( $options['output'], "post", "Post", esc_html__( 'Post Page', $this->text_domain ) );
205
+ $html = '</td></tr></table><hr>';
206
+ echo $html;
207
+
208
+ require_once ( plugin_dir_path( __FILE__ ) . 'wp-structuring-admin-type-news-article.php' );
209
+ new Structuring_Markup_Type_NewsArticle();
210
+ break;
211
+ }
212
+
213
+ $html = '</form>';
214
+ $html .= '</div>';
215
+ echo $html;
216
+ }
217
+
218
+ /**
219
+ * CheckBox Build Render
220
+ *
221
+ * @since 1.0.0
222
+ * @param array $option['output']
223
+ * @param string $output
224
+ * @param string $value
225
+ * @param string $display
226
+ * @return string $html
227
+ */
228
+ private function output_checkbox_render( array $option, $output, $value, $display ) {
229
+ $html = '<label>';
230
+ $html .= '<input type="checkbox" name="output[' . $output . ']" value="' . $value . '""';
231
+
232
+ if ( isset( $option[$output] ) ) {
233
+ $html .= ' checked';
234
+ }
235
+ $html .= '>' . $display . '</label>';
236
+
237
+ echo $html;
238
+ }
239
+
240
+ /**
241
+ * Information Message Render
242
+ *
243
+ * @since 1.0.0
244
+ */
245
+ private function information_render() {
246
+ $html = '<div id="message" class="updated notice notice-success is-dismissible below-h2">';
247
+ $html .= '<p>Schema.org Information Update.</p>';
248
+ $html .= '<button type="button" class="notice-dismiss">';
249
+ $html .= '<span class="screen-reader-text">Dismiss this notice.</span>';
250
+ $html .= '</button>';
251
+ $html .= '</div>';
252
+
253
+ echo $html;
254
+ }
255
+
256
+ /**
257
+ * Error Message Render
258
+ *
259
+ * @since 1.0.0
260
+ */
261
+ private function output_error_render() {
262
+ $html = '<div id="notice" class="notice notice-error is-dismissible below-h2">';
263
+ $html .= '<p>Output No Select.</p>';
264
+ $html .= '<button type="button" class="notice-dismiss">';
265
+ $html .= '<span class="screen-reader-text">Dismiss this notice.</span>';
266
+ $html .= '</button>';
267
+ $html .= '</div>';
268
+
269
+ echo $html;
270
+ }
271
+ }
trunk/includes/wp-structuring-admin-type-article.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Schema.org Type Article
4
+ *
5
+ * @author Kazuya Takami
6
+ * @version 1.1.0
7
+ * @since 1.1.0
8
+ * @see wp-structuring-admin-db.php
9
+ * @link http://schema.org/Article
10
+ */
11
+ class Structuring_Markup_Type_Article {
12
+
13
+ /**
14
+ * Constructor Define.
15
+ *
16
+ * @since 1.1.0
17
+ */
18
+ public function __construct()
19
+ {
20
+ $this->page_render();
21
+ }
22
+
23
+ /**
24
+ * Form Layout Render
25
+ *
26
+ * @since 1.1.0
27
+ */
28
+ private function page_render()
29
+ {
30
+ $html = '<table class="schema-admin-table">';
31
+ $html .= '<caption>Basic Setting( Post Page Only )</caption>';
32
+ $html .= '<tr><th>headline :</th><td><small>Default : post_title</small></td></tr>';
33
+ $html .= '<tr><th>datePublished :</th><td><small>Default : get_the_time( DATE_ISO8601, ID )</small></td></tr>';
34
+ $html .= '<tr><th>author :</th><td><small>Default : get_the_author_meta( "display_name", author_ID )</small></td></tr>';
35
+ $html .= '<tr><th>image :</th><td><small>Default : thumbnail</small></td></tr>';
36
+ $html .= '<tr><th>description :</th><td><small>Default : post_excerpt</small></td></tr>';
37
+ $html .= '<tr><th>articleBody :</th><td><small>Default : post_content</small></td></tr>';
38
+ $html .= '</table>';
39
+ echo $html;
40
+
41
+ submit_button();
42
+ }
43
+ }
trunk/includes/wp-structuring-admin-type-blog-posting.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Schema.org Type BlogPosting
4
+ *
5
+ * @author Kazuya Takami
6
+ * @version 1.2.0
7
+ * @since 1.2.0
8
+ * @see wp-structuring-admin-db.php
9
+ * @link http://schema.org/BlogPosting
10
+ */
11
+ class Structuring_Markup_Type_Blog_Posting {
12
+
13
+ /**
14
+ * Constructor Define.
15
+ *
16
+ * @since 1.2.0
17
+ */
18
+ public function __construct()
19
+ {
20
+ $this->page_render();
21
+ }
22
+
23
+ /**
24
+ * Form Layout Render
25
+ *
26
+ * @since 1.2.0
27
+ */
28
+ private function page_render()
29
+ {
30
+ $html = '<table class="schema-admin-table">';
31
+ $html .= '<caption>Basic Setting( Post Page Only )</caption>';
32
+ $html .= '<tr><th>headline :</th><td><small>Default : post_title</small></td></tr>';
33
+ $html .= '<tr><th>datePublished :</th><td><small>Default : get_the_time( DATE_ISO8601, ID )</small></td></tr>';
34
+ $html .= '<tr><th>dateModified :</th><td><small>Default : get_the_modified_time( DATE_ISO8601, ID )</small></td></tr>';
35
+ $html .= '<tr><th>author :</th><td><small>Default : get_the_author_meta( "display_name", author_ID )</small></td></tr>';
36
+ $html .= '<tr><th>image :</th><td><small>Default : thumbnail</small></td></tr>';
37
+ $html .= '<tr><th>description :</th><td><small>Default : post_excerpt</small></td></tr>';
38
+ $html .= '<tr><th>articleBody :</th><td><small>Default : post_content</small></td></tr>';
39
+ $html .= '</table>';
40
+ echo $html;
41
+
42
+ submit_button();
43
+ }
44
+ }
trunk/includes/wp-structuring-admin-type-news-article.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Schema.org Type News Article
4
+ *
5
+ * @author Kazuya Takami
6
+ * @version 1.0.0
7
+ * @since 1.0.0
8
+ * @see wp-structuring-admin-db.php
9
+ * @link http://schema.org/NewsArticle
10
+ * @link https://developers.google.com/structured-data/rich-snippets/articles
11
+ */
12
+ class Structuring_Markup_Type_NewsArticle {
13
+
14
+ /**
15
+ * Constructor Define.
16
+ *
17
+ * @since 1.0.0
18
+ */
19
+ public function __construct()
20
+ {
21
+ $this->page_render();
22
+ }
23
+
24
+ /**
25
+ * Form Layout Render
26
+ *
27
+ * @since 1.0.0
28
+ */
29
+ private function page_render()
30
+ {
31
+ $html = '<table class="schema-admin-table">';
32
+ $html .= '<caption>Basic Setting( Post Page Only )</caption>';
33
+ $html .= '<tr><th>headline :</th><td><small>Default : post_title</small></td></tr>';
34
+ $html .= '<tr><th>datePublished :</th><td><small>Default : get_the_time( DATE_ISO8601, ID )</small></td></tr>';
35
+ $html .= '<tr><th>image :</th><td><small>Default : thumbnail</small></td></tr>';
36
+ $html .= '<tr><th>description :</th><td><small>Default : post_excerpt</small></td></tr>';
37
+ $html .= '<tr><th>articleBody :</th><td><small>Default : post_content</small></td></tr>';
38
+ $html .= '</table>';
39
+ echo $html;
40
+
41
+ echo '<p>Setting Knowledge : <a href="https://developers.google.com/structured-data/rich-snippets/articles" target="_blank">https://developers.google.com/structured-data/rich-snippets/articles</a></p>';
42
+ submit_button();
43
+ }
44
+ }
trunk/includes/wp-structuring-admin-type-organization.php ADDED
@@ -0,0 +1,176 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Schema.org Type Organization
4
+ *
5
+ * @author Kazuya Takami
6
+ * @version 1.0.0
7
+ * @since 1.0.0
8
+ * @see wp-structuring-admin-db.php
9
+ * @link https://schema.org/Organization
10
+ * @link https://developers.google.com/structured-data/customize/overview
11
+ * @link https://developers.google.com/structured-data/customize/logos
12
+ * @link https://developers.google.com/structured-data/customize/contact-points
13
+ * @link https://developers.google.com/structured-data/customize/social-profiles
14
+ */
15
+ class Structuring_Markup_Type_Organization {
16
+
17
+ /** contactType defined. */
18
+ private $contact_type_array = array(
19
+ array("type" => "customer_support", "display" => "customer support"),
20
+ array("type" => "technical_support", "display" => "technical support"),
21
+ array("type" => "billing_support", "display" => "billing support"),
22
+ array("type" => "bill_payment", "display" => "bill payment"),
23
+ array("type" => "sales", "display" => "sales"),
24
+ array("type" => "reservations", "display" => "reservations"),
25
+ array("type" => "credit_card_support", "display" => "credit card support"),
26
+ array("type" => "emergency", "display" => "emergency"),
27
+ array("type" => "baggage_tracking", "display" => "baggage tracking"),
28
+ array("type" => "roadside_assistance", "display" => "roadside assistance"),
29
+ array("type" => "package_tracking", "display" => "package tracking")
30
+ );
31
+ /** Social Profile */
32
+ private $social_array = array(
33
+ array("type" => "facebook", "display" => "Facebook"),
34
+ array("type" => "twitter", "display" => "Twitter"),
35
+ array("type" => "google", "display" => "Google+"),
36
+ array("type" => "instagram", "display" => "Instagram"),
37
+ array("type" => "youtube", "display" => "Youtube"),
38
+ array("type" => "linkedin", "display" => "LinkedIn"),
39
+ array("type" => "myspace", "display" => "Myspace"),
40
+ array("type" => "pinterest", "display" => "Pinterest"),
41
+ array("type" => "soundcloud", "display" => "SoundCloud"),
42
+ array("type" => "tumblr", "display" => "Tumblr")
43
+ );
44
+
45
+ /**
46
+ * Constructor Define.
47
+ *
48
+ * @since 1.0.0
49
+ * @param array $option
50
+ */
51
+ public function __construct( array $option )
52
+ {
53
+ /** Default Value Set */
54
+ if ( empty( $option ) ) {
55
+ $option = $this->get_default_options( $option );
56
+ }
57
+ $this->page_render( $option );
58
+ }
59
+
60
+ /**
61
+ * Form Layout Render
62
+ *
63
+ * @since 1.0.0
64
+ * @param array $option
65
+ */
66
+ private function page_render( array $option )
67
+ {
68
+ /** Logos */
69
+ $html = '<table class="schema-admin-table">';
70
+ $html .= '<caption>Logos</caption>';
71
+ $html .= '<tr><th><label for="name">Organization Name :</label></th><td>';
72
+ $html .= '<input type="text" name="option[' . "name" . ']" id="name" class="regular-text" required value="' . esc_attr( $option['name'] ) . '">';
73
+ $html .= '<small>Default : bloginfo("name")</small>';
74
+ $html .= '</td></tr>';
75
+ $html .= '<tr><th><label for="url">url :</label></th><td>';
76
+ $html .= '<input type="text" name="option[' . "url" . ']" id="url" class="regular-text" required value="' . esc_attr( $option['url'] ) . '">';
77
+ $html .= '<small>Default : bloginfo("url")</small>';
78
+ $html .= '</td></tr>';
79
+ $html .= '<tr><th><label for="logo">logo :</label></th><td>';
80
+ $html .= '<input type="text" name="option[' . "logo" . ']" id="logo" class="regular-text" required value="' . esc_attr( $option['logo'] ) . '">';
81
+ $html .= '<small>Default : bloginfo("logo") + "/images/logo.png"</small>';
82
+ $html .= '</td></tr>';
83
+ $html .= '</table>';
84
+ echo $html;
85
+
86
+ /** Corporate Contact */
87
+ $html = '<table class="schema-admin-table">';
88
+ $html .= '<caption>Corporate Contact</caption>';
89
+ $html .= '<tr><th><label for="contact_point">contactPoint :</label></th><td>';
90
+ $html .= '<input type="checkbox" name="option[' . "contact_point" . ']" id="contact_point" value="on"';
91
+ if ( isset( $option['contact_point'] ) && $option['contact_point'] === 'on' ) {
92
+ $html .= ' checked="checked"';
93
+ }
94
+ $html .= '>Active';
95
+ $html .= '</td></tr>';
96
+ $html .= '<tr><th><label for="telephone">telephone :</label></th><td>';
97
+ $html .= '<input type="text" name="option[' . "telephone" . ']" id="telephone" class="regular-text" value="' . esc_attr( $option['telephone'] ) . '">';
98
+ $html .= '<small>Default : +1-880-555-1212</small>';
99
+ $html .= '</td></tr>';
100
+ $html .= '<tr><th><label for="contact_type">contactType :</label></th><td>';
101
+ $html .= '<select id="contact_type" name="option[' . "contact_type" . ']">';
102
+ foreach ( $this->contact_type_array as $value ) {
103
+ $html .= '<option value="' . $value['type'] . '"';
104
+ if ( $value['type'] === $option['contact_type'] ) {
105
+ $html .= ' selected';
106
+ }
107
+ $html .= '>' . $value['display'] . '</option>';
108
+ }
109
+ $html .= '</select>';
110
+ $html .= '<small>Default : "customer support"</small>';
111
+ $html .= '</td></tr>';
112
+ $html .= '<tr><th><label for="area_served">areaServed :</label></th><td>';
113
+ $html .= '<input type="text" name="option[' . "area_served" . ']" id="area_served" class="regular-text" value="' . esc_attr( $option['area_served'] ) . '">';
114
+ $html .= '<small>Default : "US"&nbsp;&nbsp;Multiple : "US,CA"</small>';
115
+ $html .= '</td></tr>';
116
+ $html .= '<tr><th>contactOption :</th><td>';
117
+ $html .= '<label><input type="checkbox" name="option[' . "contact_point_1" . ']" id="contact_point_1" value="on"';
118
+ if ( isset( $option['contact_point_1'] ) && $option['contact_point_1'] === 'on' ) {
119
+ $html .= ' checked="checked"';
120
+ }
121
+ $html .= '>HearingImpairedSupported</label><br>';
122
+ $html .= '<label><input type="checkbox" name="option[' . "contact_point_2" . ']" id="contact_point_2" value="on"';
123
+ if ( isset( $option['contact_point_2'] ) && $option['contact_point_2'] === 'on' ) {
124
+ $html .= ' checked="checked"';
125
+ }
126
+ $html .= '>TollFree</label><br>';
127
+ $html .= '</td></tr>';
128
+ $html .= '<tr><th><label for="available_language">available<br>Language :</label></th><td>';
129
+ $html .= '<input type="text" name="option[' . "available_language" . ']" id="available_language" class="regular-text" value="' . esc_attr( $option['available_language'] ) . '">';
130
+ $html .= '<small>Default : "English"&nbsp;&nbsp;Multiple : "French,English"</small>';
131
+ $html .= '</td></tr>';
132
+ $html .= '</table>';
133
+ echo $html;
134
+
135
+ /** Social Profiles */
136
+ $html = '<table class="schema-admin-table">';
137
+ $html .= '<caption>Social Profiles</caption>';
138
+ foreach ( $this->social_array as $value ) {
139
+ $html .= '<tr><th><label for="' . $value['type'] . '">' . $value['display'] . ' :</label></th><td>';
140
+ $html .= '<input type="text" name="option[' . "social" . '][' . $value['type'] . ']" id="' . $value['type'] . '" class="regular-text" value="' . esc_attr( $option['social'][$value['type']] ) . '">';
141
+ $html .= '</td></tr>';
142
+ }
143
+ $html .= '</table>';
144
+ echo $html;
145
+
146
+ echo '<p>Setting Knowledge : <a href="https://developers.google.com/structured-data/customize/overview" target="_blank">https://developers.google.com/structured-data/customize/overview</a></p>';
147
+ submit_button();
148
+ }
149
+
150
+ /**
151
+ * Return the default options array
152
+ *
153
+ * @since 1.0.0
154
+ * @param array $args
155
+ * @return array $args
156
+ */
157
+ private function get_default_options( array $args ) {
158
+ $args['id'] = '';
159
+ $args['name'] = get_bloginfo('name');
160
+ $args['url'] = get_bloginfo('url');
161
+ $args['logo'] = get_bloginfo('url') . '/images/logo.png';
162
+ $args['contact_point'] = '';
163
+ $args['telephone'] = '+1-880-555-1212';
164
+ $args['contact_type'] = 'customer_support';
165
+ $args['area_served'] = 'US';
166
+ $args['contact_option_1'] = '';
167
+ $args['contact_option_2'] = '';
168
+ $args['available_language'] = 'English';
169
+
170
+ foreach ( $this->social_array as $value ) {
171
+ $args['social'][$value['type']] = '';
172
+ }
173
+
174
+ return (array) $args;
175
+ }
176
+ }
trunk/includes/wp-structuring-admin-type-website.php ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Schema.org Type WebSite
4
+ *
5
+ * @author Kazuya Takami
6
+ * @version 1.0.0
7
+ * @since 1.0.0
8
+ * @see wp-structuring-admin-db.php
9
+ * @link https://schema.org/WebSite
10
+ * @link https://developers.google.com/structured-data/slsb-overview
11
+ * @link https://developers.google.com/structured-data/site-name
12
+ */
13
+ class Structuring_Markup_Type_Website {
14
+
15
+ /**
16
+ * Constructor Define.
17
+ *
18
+ * @since 1.0.0
19
+ * @param array $option
20
+ */
21
+ public function __construct( array $option )
22
+ {
23
+ /** Default Value Set */
24
+ if ( empty( $option ) ) {
25
+ $option = $this->get_default_options( $option );
26
+ }
27
+ $this->page_render( $option );
28
+ }
29
+
30
+ /**
31
+ * Form Layout Render
32
+ *
33
+ * @since 1.0.0
34
+ * @param array $option
35
+ */
36
+ private function page_render( array $option )
37
+ {
38
+ $html = '<table class="schema-admin-table">';
39
+ $html .= '<caption>Basic Setting</caption>';
40
+ $html .= '<tr><th><label for="name">name :</label></th><td>';
41
+ $html .= '<input type="text" name="option[' . "name" . ']" id="name" class="regular-text" required value="' . esc_attr( $option['name'] ) . '">';
42
+ $html .= '<small>Default : bloginfo("name")</small>';
43
+ $html .= '</td></tr>';
44
+ $html .= '<tr><th><label for="alternateName">alternateName :</label></th><td>';
45
+ $html .= '<input type="text" name="option[' . "alternateName" . ']" id="alternateName" class="regular-text" value="' . esc_attr( $option['alternateName'] ) . '">';
46
+ $html .= '<small>Default : bloginfo("name")</small>';
47
+ $html .= '</td></tr>';
48
+ $html .= '<tr><th><label for="url">url :</label></th><td>';
49
+ $html .= '<input type="text" name="option[' . "url" . ']" id="url" class="regular-text" required value="' . esc_attr( $option['url'] ) . '">';
50
+ $html .= '<small>Default : bloginfo("url")</small>';
51
+ $html .= '</td></tr>';
52
+ $html .= '</table>';
53
+ echo $html;
54
+
55
+ $html = '<table class="schema-admin-table">';
56
+ $html .= '<caption>Sitelink Search Box</caption>';
57
+ $html .= '<tr><th><label for="potential_action">potentialAction Active :</label></th><td>';
58
+ $html .= '<input type="checkbox" name="option[' . "potential_action" . ']" id="potential_action" value="on"';
59
+ if ( isset( $option['potential_action'] ) && $option['potential_action'] === 'on' ) {
60
+ $html .= ' checked="checked"';
61
+ }
62
+ $html .= '>Active';
63
+ $html .= '</td></tr>';
64
+ $html .= '<tr><th><label for="target">target :</label></th><td>';
65
+ $html .= '<input type="text" name="option[' . "target" . ']" id="target" class="regular-text" value="' . esc_attr( $option['target'] ) . '">';
66
+ $html .= '<small>Default : bloginfo("url") + /?s=</small>';
67
+ $html .= '</td></tr>';
68
+ $html .= '</table>';
69
+ echo $html;
70
+
71
+ echo '<p>Setting Knowledge : <a href="https://developers.google.com/structured-data/slsb-overview" target="_blank">https://developers.google.com/structured-data/slsb-overview</a></p>';
72
+ submit_button();
73
+ }
74
+
75
+ /**
76
+ * Return the default options array
77
+ *
78
+ * @since 1.0.0
79
+ * @param array $args
80
+ * @return array $args
81
+ */
82
+ private function get_default_options( array $args ) {
83
+ $args['id'] = '';
84
+ $args['name'] = get_bloginfo('name');
85
+ $args['alternateName'] = $args['name'];
86
+ $args['url'] = get_bloginfo('url');
87
+ $args['potential_action'] = '';
88
+ $args['target'] = $args['url'] . '/?s=';
89
+
90
+ return (array) $args;
91
+ }
92
+ }
trunk/includes/wp-structuring-display.php ADDED
@@ -0,0 +1,250 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Schema.org Display
4
+ *
5
+ * @author Kazuya Takami
6
+ * @version 1.2.1
7
+ * @since 1.0.0
8
+ */
9
+ class Structuring_Markup_Display {
10
+
11
+ /**
12
+ * Constructor Define.
13
+ *
14
+ * @since 1.0.0
15
+ */
16
+ public function __construct() {
17
+ $db = new Structuring_Markup_Admin_Db();
18
+ $this->set_schema( $db );
19
+ }
20
+
21
+ /**
22
+ * Setting schema.org
23
+ *
24
+ * @since 1.0.0
25
+ * @param Structuring_Markup_Admin_Db $db
26
+ */
27
+ private function set_schema( Structuring_Markup_Admin_Db $db ) {
28
+ $this->get_schema_data( $db, 'all' );
29
+ if ( is_home() ) {
30
+ $this->get_schema_data( $db, 'home' );
31
+ }
32
+ if ( is_single() ) {
33
+ $this->get_schema_data( $db, 'post' );
34
+ }
35
+ if ( is_page() ) {
36
+ $this->get_schema_data( $db, 'page' );
37
+ }
38
+ }
39
+
40
+ /**
41
+ * Setting JSON-LD Template
42
+ *
43
+ * @since 1.0.0
44
+ * @version 1.2.0
45
+ * @param Structuring_Markup_Admin_Db $db
46
+ * @param string $output
47
+ */
48
+ private function get_schema_data( Structuring_Markup_Admin_Db $db, $output ) {
49
+ $results = $db->get_select_options( $output );
50
+
51
+ if ( isset( $results ) ) {
52
+ foreach ( $results as $row ) {
53
+ if ( isset( $row->type ) ) {
54
+ switch ( $row->type ) {
55
+ case 'website':
56
+ if ( isset( $row->options ) ) {
57
+ $this->set_schema_website( unserialize( $row->options ) );
58
+ }
59
+ break;
60
+ case 'organization':
61
+ if ( isset( $row->options ) ) {
62
+ $this->set_schema_organization( unserialize( $row->options ) );
63
+ }
64
+ break;
65
+ case 'article':
66
+ if ( isset( $row->options ) ) {
67
+ $this->set_schema_article();
68
+ }
69
+ break;
70
+ case 'blog_posting':
71
+ if ( isset( $row->options ) ) {
72
+ $this->set_schema_blog_posting();
73
+ }
74
+ break;
75
+ case 'news_article':
76
+ if ( isset( $row->options ) ) {
77
+ $this->set_schema_news_article();
78
+ }
79
+ break;
80
+ }
81
+ }
82
+ }
83
+ }
84
+ }
85
+
86
+ /**
87
+ * Setting JSON-LD Template
88
+ *
89
+ * @since 1.0.0
90
+ * @param array $args
91
+ */
92
+ private function set_schema_json( array $args ) {
93
+ echo '<script type="application/ld+json">' , PHP_EOL;
94
+ echo json_encode( $args, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT ) , PHP_EOL;
95
+ echo '</script>' , PHP_EOL;
96
+ }
97
+
98
+ /**
99
+ * Setting JSON-LD Template
100
+ *
101
+ * @since 1.1.3
102
+ * @param string $text
103
+ * @return string $text
104
+ */
105
+ private function escape_text_tags( $text ) {
106
+ return str_replace( array( "\r", "\n" ), '', strip_tags( $text ) );
107
+ }
108
+
109
+ /**
110
+ * Setting schema.org WebSite
111
+ *
112
+ * @since 1.0.0
113
+ * @param array $options
114
+ */
115
+ private function set_schema_website( array $options ) {
116
+ $args = array(
117
+ "@context" => "http://schema.org",
118
+ "@type" => "WebSite",
119
+ "name" => isset( $options['name'] ) ? esc_html( $options['name'] ) : "",
120
+ "alternateName" => isset( $options['alternateName'] ) ? esc_html( $options['alternateName'] ) : "",
121
+ "url" => isset( $options['url'] ) ? esc_html( $options['url'] ) : ""
122
+ );
123
+
124
+ if ( isset( $options['potential_action'] ) && $options['potential_action'] === 'on' ) {
125
+ $potential_action["potentialAction"] = array(
126
+ "@type" => "SearchAction",
127
+ "target" => isset( $options['target'] ) ? esc_html( $options['target'] ) . "{search_term_string}" : "",
128
+ "query-input" => isset( $options['target'] ) ? "required name=search_term_string" : ""
129
+ );
130
+ $args = array_merge( $args, $potential_action );
131
+ }
132
+
133
+ $this->set_schema_json( $args );
134
+ }
135
+
136
+ /**
137
+ * Setting schema.org Organization
138
+ *
139
+ * @since 1.0.0
140
+ * @version 1.2.1
141
+ * @param array $options
142
+ */
143
+ private function set_schema_organization( array $options ) {
144
+ /** Logos */
145
+ $args = array(
146
+ "@context" => "http://schema.org",
147
+ "@type" => "Organization",
148
+ "name" => isset( $options['name'] ) ? esc_html( $options['name'] ) : "",
149
+ "url" => isset( $options['url'] ) ? esc_html( $options['url'] ) : "",
150
+ "logo" => isset( $options['logo'] ) ? esc_html( $options['logo'] ) : ""
151
+ );
152
+
153
+ /** Corporate Contact */
154
+ if ( isset( $options['contact_point'] ) && $options['contact_point'] === 'on' ) {
155
+ $contact_point["contactPoint"] = array(
156
+ array(
157
+ "@type" => "ContactPoint",
158
+ "telephone" => isset( $options['telephone'] ) ? esc_html( $options['telephone'] ) : "",
159
+ "contactType" => isset( $options['contact_type'] ) ? esc_html( $options['contact_type'] ) : ""
160
+ )
161
+ );
162
+ $args = array_merge( $args, $contact_point );
163
+ }
164
+
165
+ /** Social Profiles */
166
+ if ( isset( $options['social'] ) ) {
167
+ $socials["sameAs"] = array();
168
+
169
+ foreach ( $options['social'] as $value ) {
170
+ if ( !empty( $value ) ) {
171
+ $socials["sameAs"][] = esc_html( $value );
172
+ }
173
+ }
174
+ $args = array_merge( $args, $socials );
175
+ }
176
+ $this->set_schema_json( $args );
177
+ }
178
+
179
+ /**
180
+ * Setting schema.org Article
181
+ *
182
+ * @since 1.1.0
183
+ * @version 1.1.3
184
+ */
185
+ private function set_schema_article() {
186
+ global $post;
187
+ if ( has_post_thumbnail( $post->ID ) ) {
188
+ $images = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full' );
189
+ $args = array(
190
+ "@context" => "http://schema.org",
191
+ "@type" => "Article",
192
+ "headline" => $this->escape_text_tags( $post->post_title ),
193
+ "datePublished" => get_the_time( DATE_ISO8601, $post->ID ),
194
+ "author" => $this->escape_text_tags( get_the_author_meta( 'display_name', $post->post_author ) ),
195
+ "image" => array( $images[0] ),
196
+ "description" => $this->escape_text_tags( $post->post_excerpt ),
197
+ "articleBody" => $this->escape_text_tags( $post->post_content )
198
+ );
199
+ $this->set_schema_json( $args );
200
+ }
201
+ }
202
+
203
+ /**
204
+ * Setting schema.org BlogPosting
205
+ *
206
+ * @since 1.2.0
207
+ * @version 1.2.0
208
+ */
209
+ private function set_schema_blog_posting() {
210
+ global $post;
211
+ if ( has_post_thumbnail( $post->ID ) ) {
212
+ $images = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full' );
213
+ $args = array(
214
+ "@context" => "http://schema.org",
215
+ "@type" => "BlogPosting",
216
+ "headline" => $this->escape_text_tags( $post->post_title ),
217
+ "datePublished" => get_the_time( DATE_ISO8601, $post->ID ),
218
+ "dateModified" => get_the_modified_time( DATE_ISO8601, $post->ID ),
219
+ "author" => $this->escape_text_tags( get_the_author_meta( 'display_name', $post->post_author ) ),
220
+ "image" => array( $images[0] ),
221
+ "description" => $this->escape_text_tags( $post->post_excerpt ),
222
+ "articleBody" => $this->escape_text_tags( $post->post_content )
223
+ );
224
+ $this->set_schema_json( $args );
225
+ }
226
+ }
227
+
228
+ /**
229
+ * Setting schema.org NewsArticle
230
+ *
231
+ * @since 1.0.0
232
+ * @version 1.1.3
233
+ */
234
+ private function set_schema_news_article() {
235
+ global $post;
236
+ if ( has_post_thumbnail( $post->ID ) ) {
237
+ $images = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full' );
238
+ $args = array(
239
+ "@context" => "http://schema.org",
240
+ "@type" => "NewsArticle",
241
+ "headline" => $this->escape_text_tags( $post->post_title ),
242
+ "datePublished" => get_the_time( DATE_ISO8601, $post->ID ),
243
+ "image" => array( $images[0] ),
244
+ "description" => $this->escape_text_tags( $post->post_excerpt ),
245
+ "articleBody" => $this->escape_text_tags( $post->post_content )
246
+ );
247
+ $this->set_schema_json( $args );
248
+ }
249
+ }
250
+ }
trunk/languages/wp-structuring-markup-ja.mo ADDED
Binary file
trunk/languages/wp-structuring-markup-ja.po ADDED
@@ -0,0 +1,113 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2015 Markup (JSON-LD) structured in schema.org
2
+ # This file is distributed under the same license as the Markup (JSON-LD) structured in schema.org package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Markup (JSON-LD) structured in schema.org 1.3.0\n"
6
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-structuring-"
7
+ "markup\n"
8
+ "POT-Creation-Date: 2015-10-24 10:02:34+00:00\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "PO-Revision-Date: 2015-MO-DA HO:MI+ZONE\n"
13
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
+ "Language-Team: LANGUAGE <LL@li.org>\n"
15
+
16
+ #: includes/wp-structuring-admin-list.php:65
17
+ msgid "Schema.org Setting List"
18
+ msgstr "Schema.org 設定一覧"
19
+
20
+ #: includes/wp-structuring-admin-list.php:66 wp-structuring-markup.php:95
21
+ msgid "Add New"
22
+ msgstr "新規追加"
23
+
24
+ #: includes/wp-structuring-admin-list.php:77
25
+ msgid "Schema Type"
26
+ msgstr ""
27
+
28
+ #: includes/wp-structuring-admin-list.php:78
29
+ #: includes/wp-structuring-admin-post.php:161
30
+ msgid "Output Page"
31
+ msgstr "出力ページ"
32
+
33
+ #: includes/wp-structuring-admin-list.php:79
34
+ msgid "Register Date"
35
+ msgstr "登録日"
36
+
37
+ #: includes/wp-structuring-admin-list.php:80
38
+ msgid "Update Date"
39
+ msgstr "更新日"
40
+
41
+ #: includes/wp-structuring-admin-list.php:99
42
+ msgid "Edit"
43
+ msgstr "編集"
44
+
45
+ #: includes/wp-structuring-admin-list.php:102
46
+ msgid "Delete"
47
+ msgstr "削除"
48
+
49
+ #: includes/wp-structuring-admin-list.php:109
50
+ msgid "Without registration."
51
+ msgstr "登録されていません。"
52
+
53
+ #: includes/wp-structuring-admin-post.php:120
54
+ msgid "Schema.org Register"
55
+ msgstr "Scheme.org 登録"
56
+
57
+ #: includes/wp-structuring-admin-post.php:166
58
+ #: includes/wp-structuring-admin-post.php:177
59
+ msgid "All Page"
60
+ msgstr "全てのページ"
61
+
62
+ #: includes/wp-structuring-admin-post.php:167
63
+ #: includes/wp-structuring-admin-post.php:178
64
+ msgid "Top Page"
65
+ msgstr "トップページ"
66
+
67
+ #: includes/wp-structuring-admin-post.php:168
68
+ #: includes/wp-structuring-admin-post.php:179
69
+ #: includes/wp-structuring-admin-post.php:188
70
+ #: includes/wp-structuring-admin-post.php:196
71
+ #: includes/wp-structuring-admin-post.php:204
72
+ msgid "Post Page"
73
+ msgstr "投稿ページ"
74
+
75
+ #: includes/wp-structuring-admin-post.php:169
76
+ #: includes/wp-structuring-admin-post.php:180
77
+ msgid "Fixed Page"
78
+ msgstr "固定ページ"
79
+
80
+ #: wp-structuring-markup.php:78 wp-structuring-markup.php:79
81
+ msgid "Scheme.org Setting"
82
+ msgstr "Scheme.org 設定"
83
+
84
+ #: wp-structuring-markup.php:86 wp-structuring-markup.php:87
85
+ msgid "Setting All"
86
+ msgstr "設定一覧"
87
+
88
+ #: wp-structuring-markup.php:94
89
+ msgid "Scheme.org Setting Post"
90
+ msgstr "新規登録"
91
+
92
+ #. Plugin Name of the plugin/theme
93
+ msgid "Markup (JSON-LD) structured in schema.org"
94
+ msgstr ""
95
+
96
+ #. Plugin URI of the plugin/theme
97
+ msgid "https://github.com/miiitaka/wp-structuring-markup"
98
+ msgstr ""
99
+
100
+ #. Description of the plugin/theme
101
+ msgid ""
102
+ "It is plug in to implement structured markup (JSON-LD syntax) by schema.org "
103
+ "definition on an article or the fixed page."
104
+ msgstr ""
105
+ "このプラグインは、投稿ページ、固定ページなどにschema.org定義の構造化マークアップ( JSON -LDの構文)を実装するプラグインです。"
106
+
107
+ #. Author of the plugin/theme
108
+ msgid "Kazuya Takami"
109
+ msgstr ""
110
+
111
+ #. Author URI of the plugin/theme
112
+ msgid "http://programp.com/"
113
+ msgstr ""
trunk/languages/wp-structuring-markup.pot ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (C) 2015 Markup (JSON-LD) structured in schema.org
2
+ # This file is distributed under the same license as the Markup (JSON-LD) structured in schema.org package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Markup (JSON-LD) structured in schema.org 1.3.0\n"
6
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wp-structuring-"
7
+ "markup\n"
8
+ "POT-Creation-Date: 2015-10-24 10:02:34+00:00\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "PO-Revision-Date: 2015-MO-DA HO:MI+ZONE\n"
13
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
+ "Language-Team: LANGUAGE <LL@li.org>\n"
15
+
16
+ #: includes/wp-structuring-admin-list.php:65
17
+ msgid "Schema.org Setting List"
18
+ msgstr ""
19
+
20
+ #: includes/wp-structuring-admin-list.php:66 wp-structuring-markup.php:95
21
+ msgid "Add New"
22
+ msgstr ""
23
+
24
+ #: includes/wp-structuring-admin-list.php:77
25
+ msgid "Schema Type"
26
+ msgstr ""
27
+
28
+ #: includes/wp-structuring-admin-list.php:78
29
+ #: includes/wp-structuring-admin-post.php:161
30
+ msgid "Output Page"
31
+ msgstr ""
32
+
33
+ #: includes/wp-structuring-admin-list.php:79
34
+ msgid "Register Date"
35
+ msgstr ""
36
+
37
+ #: includes/wp-structuring-admin-list.php:80
38
+ msgid "Update Date"
39
+ msgstr ""
40
+
41
+ #: includes/wp-structuring-admin-list.php:99
42
+ msgid "Edit"
43
+ msgstr ""
44
+
45
+ #: includes/wp-structuring-admin-list.php:102
46
+ msgid "Delete"
47
+ msgstr ""
48
+
49
+ #: includes/wp-structuring-admin-list.php:109
50
+ msgid "Without registration."
51
+ msgstr ""
52
+
53
+ #: includes/wp-structuring-admin-post.php:120
54
+ msgid "Schema.org Post"
55
+ msgstr ""
56
+
57
+ #: includes/wp-structuring-admin-post.php:166
58
+ #: includes/wp-structuring-admin-post.php:177
59
+ msgid "All Page"
60
+ msgstr ""
61
+
62
+ #: includes/wp-structuring-admin-post.php:167
63
+ #: includes/wp-structuring-admin-post.php:178
64
+ msgid "Top Page"
65
+ msgstr ""
66
+
67
+ #: includes/wp-structuring-admin-post.php:168
68
+ #: includes/wp-structuring-admin-post.php:179
69
+ #: includes/wp-structuring-admin-post.php:188
70
+ #: includes/wp-structuring-admin-post.php:196
71
+ #: includes/wp-structuring-admin-post.php:204
72
+ msgid "Post Page"
73
+ msgstr ""
74
+
75
+ #: includes/wp-structuring-admin-post.php:169
76
+ #: includes/wp-structuring-admin-post.php:180
77
+ msgid "Fixed Page"
78
+ msgstr ""
79
+
80
+ #: wp-structuring-markup.php:78 wp-structuring-markup.php:79
81
+ msgid "Scheme.org Setting"
82
+ msgstr ""
83
+
84
+ #: wp-structuring-markup.php:86 wp-structuring-markup.php:87
85
+ msgid "Setting All"
86
+ msgstr ""
87
+
88
+ #: wp-structuring-markup.php:94
89
+ msgid "Scheme.org Setting Post"
90
+ msgstr ""
91
+
92
+ #. Plugin Name of the plugin/theme
93
+ msgid "Markup (JSON-LD) structured in schema.org"
94
+ msgstr ""
95
+
96
+ #. Plugin URI of the plugin/theme
97
+ msgid "https://github.com/miiitaka/wp-structuring-markup"
98
+ msgstr ""
99
+
100
+ #. Description of the plugin/theme
101
+ msgid ""
102
+ "It is plug in to implement structured markup (JSON-LD syntax) by schema.org "
103
+ "definition on an article or the fixed page."
104
+ msgstr ""
105
+
106
+ #. Author of the plugin/theme
107
+ msgid "Kazuya Takami"
108
+ msgstr ""
109
+
110
+ #. Author URI of the plugin/theme
111
+ msgid "http://programp.com/"
112
+ msgstr ""
trunk/readme.txt ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ === Markup (JSON-LD) structured in schema.org ===
2
+ Contributors: miiitaka
3
+ Tags: schema, schema.org, json, json-ld, seo, post, posts, google
4
+ Requires at least: 4.3.1
5
+ Tested up to: 4.3.1
6
+ Stable tag: 1.3.0
7
+
8
+ It is plug in to implement structured markup (JSON-LD syntax) by schema.org definition on an post page, fixed page and etc.
9
+
10
+ == Description ==
11
+
12
+ It is plug in to implement structured markup (JSON-LD syntax) by schema.org definition on an post page, fixed page and etc.
13
+ Base knowledge is "https://schema.org/" and "https://developers.google.com/structured-data/"
14
+
15
+ このプラグインは、投稿ページ、固定ページなどにschema.org定義の構造化マークアップ( JSON -LDの構文)を実装するプラグインです。
16
+ 基本知識は、https://schema.org/ や https://developers.google.com/structured-data/ を参考にしてください。
17
+
18
+ = Schema.org Type =
19
+
20
+ * Website: https://schema.org/WebSite
21
+ * Organization: https://schema.org/Organization
22
+ * Article: http://schema.org/Article
23
+ * BlogPosting: http://schema.org/BlogPosting
24
+ * NewsArticle: http://schema.org/NewsArticle
25
+
26
+ == Installation ==
27
+
28
+ * A plug-in installation screen is displayed in the WordPress admin panel.
29
+ * It installs in `wp-content/plugins`.
30
+ * The plug-in is activated.
31
+ * Open 'Schema.org Setting' menu.
32
+
33
+ == Changelog ==
34
+
35
+ = 1.3.0 =
36
+
37
+ * Added : Localizing into Japanese.
38
+
39
+ = 1.2.1 =
40
+
41
+ * Updated : Read admin menu css -> wp_register_style setting
42
+ * Fixed : Typo Missing.
43
+
44
+ = 1.2.0 =
45
+
46
+ * Added : Schema.org type "BlogPosting".
47
+
48
+ = 1.1.3 =
49
+
50
+ * Fixed : To escape a newline code and the tag of the body attribute in Type "Article" and "NewsArticle".
51
+
52
+ = 1.1.2 =
53
+
54
+ * Updated : Schema.org type "Article" image attribute.
55
+
56
+ = 1.1.0 =
57
+
58
+ * Added : Schema.org type "Article".
59
+
60
+ = 1.0.1 - 1.0.8 =
61
+
62
+ * Fixed : Missing plugin path setting.
63
+
64
+ = 1.0.0 =
65
+
66
+ * First release of this plugin.
67
+
68
+ == Contact ==
69
+
70
+ email to foundationmeister[at]outlook.com
71
+ twitter @miiitaka
trunk/uninstall.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( !defined( 'WP_UNINSTALL_PLUGIN' ) ) {
3
+ exit;
4
+ }
5
+ new Structuring_Markup_Uninstall();
6
+
7
+ /**
8
+ * Schema.org Plugin Uninstall
9
+ *
10
+ * @author Kazuya Takami
11
+ * @version 1.0.0
12
+ * @since 1.0.0
13
+ */
14
+ class Structuring_Markup_Uninstall {
15
+
16
+ /**
17
+ * Constructor Define.
18
+ *
19
+ * @since 1.0.0
20
+ */
21
+ function __construct() {
22
+ $this->drop_table();
23
+ }
24
+
25
+ /**
26
+ * Drop Table.
27
+ *
28
+ * @since 1.0.0
29
+ */
30
+ private function drop_table() {
31
+ global $wpdb;
32
+ $table_name = $wpdb->prefix . "structuring_markup";
33
+ $wpdb->query( "DROP TABLE IF EXISTS " . $table_name );
34
+ }
35
+ }
trunk/wp-structuring-markup.php ADDED
@@ -0,0 +1,154 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ Plugin Name: Markup (JSON-LD) structured in schema.org
4
+ Plugin URI: https://github.com/miiitaka/wp-structuring-markup
5
+ Description: It is plug in to implement structured markup (JSON-LD syntax) by schema.org definition on an article or the fixed page.
6
+ Version: 1.3.0
7
+ Author: Kazuya Takami
8
+ Author URI: http://programp.com/
9
+ License: GPLv2 or later
10
+ Text Domain: wp-structuring-markup
11
+ Domain Path: /languages
12
+ */
13
+ require_once( plugin_dir_path( __FILE__ ) . 'includes/wp-structuring-admin-db.php' );
14
+
15
+ new Structuring_Markup();
16
+
17
+ /**
18
+ * Schema.org Basic Class
19
+ *
20
+ * @author Kazuya Takami
21
+ * @since 1.0.0
22
+ * @version 1.3.0
23
+ */
24
+ class Structuring_Markup {
25
+
26
+ /**
27
+ * Variable definition.
28
+ *
29
+ * @since 1.3.0
30
+ */
31
+ private $text_domain = 'wp-structuring-markup';
32
+
33
+ /**
34
+ * Constructor Define.
35
+ *
36
+ * @since 1.0.0
37
+ * @version 1.3.0
38
+ */
39
+ public function __construct() {
40
+ add_action( 'plugins_loaded', array( $this, 'plugins_loaded' ) );
41
+
42
+ $db = new Structuring_Markup_Admin_Db();
43
+ $db->create_table();
44
+
45
+ if ( is_admin() ) {
46
+ add_action( 'admin_init', array( $this, 'admin_init' ) );
47
+ add_action( 'admin_menu', array( $this, 'admin_menu' ) );
48
+ } else {
49
+ add_action( 'wp_head', array( $this, 'wp_head' ) );
50
+ }
51
+ }
52
+
53
+ /**
54
+ * admin init.
55
+ *
56
+ * @since 1.3.0
57
+ * @version 1.3.0
58
+ */
59
+ public function admin_init() {
60
+ wp_register_style( 'wp-structuring-markup-admin-style', plugins_url( 'css/style.css', __FILE__ ) );
61
+ }
62
+
63
+ /**
64
+ * i18n.
65
+ *
66
+ * @since 1.3.0
67
+ * @version 1.3.0
68
+ */
69
+ public function plugins_loaded() {
70
+ load_plugin_textdomain(
71
+ $this->text_domain,
72
+ false,
73
+ dirname( plugin_basename( __FILE__ ) ) . '/languages'
74
+ );
75
+ }
76
+
77
+ /**
78
+ * Add Menu to the Admin Screen.
79
+ *
80
+ * @since 1.0.0
81
+ * @version 1.2.1
82
+ */
83
+ public function admin_menu() {
84
+ add_menu_page(
85
+ esc_html__( 'Scheme.org Setting', $this->text_domain ),
86
+ esc_html__( 'Scheme.org Setting', $this->text_domain ),
87
+ 'manage_options',
88
+ plugin_basename( __FILE__ ),
89
+ array( $this, 'list_page_render' )
90
+ );
91
+ add_submenu_page(
92
+ __FILE__,
93
+ esc_html__( 'Setting All', $this->text_domain ),
94
+ esc_html__( 'Setting All', $this->text_domain ),
95
+ 'manage_options',
96
+ plugin_basename( __FILE__ ),
97
+ array( $this, 'list_page_render' )
98
+ );
99
+ $page = add_submenu_page(
100
+ __FILE__,
101
+ esc_html__( 'Scheme.org Setting Post', $this->text_domain ),
102
+ esc_html__( 'Add New', $this->text_domain ),
103
+ 'manage_options',
104
+ plugin_dir_path( __FILE__ ) . 'includes/wp-structuring-admin-post.php',
105
+ array( $this, 'post_page_render' )
106
+ );
107
+
108
+ /* Using registered $page handle to hook stylesheet loading */
109
+ add_action( 'admin_print_styles-' . $page, array( $this, 'add_style' ) );
110
+ }
111
+
112
+ /**
113
+ * CSS admin add.
114
+ *
115
+ * @since 1.0.0
116
+ * @version 1.3.0
117
+ */
118
+ public function add_style() {
119
+ wp_enqueue_style( 'wp-structuring-markup-admin-style' );
120
+ }
121
+
122
+ /**
123
+ * LIST Page Template Require.
124
+ *
125
+ * @since 1.0.0
126
+ * @version 1.3.0
127
+ */
128
+ public function list_page_render() {
129
+ require_once( plugin_dir_path( __FILE__ ) . 'includes/wp-structuring-admin-list.php' );
130
+ new Structuring_Markup_Admin_List( $this->text_domain );
131
+ }
132
+
133
+ /**
134
+ * POST Page Template Require.
135
+ *
136
+ * @since 1.0.0
137
+ * @version 1.3.0
138
+ */
139
+ public function post_page_render() {
140
+ require_once( plugin_dir_path( __FILE__ ) . 'includes/wp-structuring-admin-post.php' );
141
+ new Structuring_Markup_Admin_Post( $this->text_domain );
142
+ }
143
+
144
+ /**
145
+ * Display Page Template Require.
146
+ *
147
+ * @since 1.3.0
148
+ * @version 1.3.0
149
+ */
150
+ public function wp_head() {
151
+ require_once( plugin_dir_path( __FILE__ ) . 'includes/wp-structuring-display.php' );
152
+ new Structuring_Markup_Display();
153
+ }
154
+ }
wp-structuring-markup.php CHANGED
@@ -3,13 +3,14 @@
3
  Plugin Name: Markup (JSON-LD) structured in schema.org
4
  Plugin URI: https://github.com/miiitaka/wp-structuring-markup
5
  Description: It is plug in to implement structured markup (JSON-LD syntax) by schema.org definition on an article or the fixed page.
6
- Version: 1.2.1
7
  Author: Kazuya Takami
8
  Author URI: http://programp.com/
9
  License: GPLv2 or later
10
  Text Domain: wp-structuring-markup
 
11
  */
12
- require_once( plugin_dir_path( __FILE__ ) . 'wp-structuring-admin-db.php' );
13
 
14
  new Structuring_Markup();
15
 
@@ -18,17 +19,26 @@ new Structuring_Markup();
18
  *
19
  * @author Kazuya Takami
20
  * @since 1.0.0
21
- * @version 1.2.1
22
  */
23
  class Structuring_Markup {
24
 
 
 
 
 
 
 
 
25
  /**
26
  * Constructor Define.
27
  *
28
  * @since 1.0.0
29
- * @version 1.2.1
30
  */
31
  public function __construct() {
 
 
32
  $db = new Structuring_Markup_Admin_Db();
33
  $db->create_table();
34
 
@@ -37,40 +47,54 @@ class Structuring_Markup {
37
  add_action( 'admin_init', function () {
38
  wp_register_style( 'wp-structuring-markup-admin-style', plugins_url( 'css/style.css', __FILE__ ) );
39
  });
40
- add_action( 'admin_menu', array( $this, 'set_menu' ) );
41
  } else {
42
- add_action( 'wp_head', array( $this, 'display_page_render' ) );
43
  }
44
  }
45
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46
  /**
47
  * Add Menu to the Admin Screen.
48
  *
49
  * @since 1.0.0
50
  * @version 1.2.1
51
  */
52
- public function set_menu() {
53
  add_menu_page(
54
- 'Scheme.org Setting',
55
- 'Scheme.org Setting',
56
  'manage_options',
57
  plugin_basename( __FILE__ ),
58
  array( $this, 'list_page_render' )
59
  );
60
  add_submenu_page(
61
  __FILE__,
62
- 'Setting All',
63
- 'Setting All',
64
  'manage_options',
65
  plugin_basename( __FILE__ ),
66
  array( $this, 'list_page_render' )
67
  );
68
  $page = add_submenu_page(
69
  __FILE__,
70
- 'Scheme.org Setting Post',
71
- 'Add New',
72
  'manage_options',
73
- plugin_dir_path( __FILE__ ) . 'wp-structuring-admin-post.php',
74
  array( $this, 'post_page_render' )
75
  );
76
 
@@ -83,30 +107,33 @@ class Structuring_Markup {
83
  /**
84
  * LIST Page Template Require.
85
  *
86
- * @since 1.0.0
 
87
  */
88
  public function list_page_render() {
89
- require_once( plugin_dir_path( __FILE__ ) . 'wp-structuring-admin-list.php' );
90
- new Structuring_Markup_Admin_List();
91
  }
92
 
93
  /**
94
  * POST Page Template Require.
95
  *
96
- * @since 1.0.0
 
97
  */
98
  public function post_page_render() {
99
- require_once( plugin_dir_path( __FILE__ ) . 'wp-structuring-admin-post.php' );
100
- new Structuring_Markup_Admin_Post();
101
  }
102
 
103
  /**
104
  * Display Page Template Require.
105
  *
106
- * @since 1.0.0
 
107
  */
108
- public function display_page_render() {
109
- require_once( plugin_dir_path( __FILE__ ) . 'wp-structuring-display.php' );
110
  new Structuring_Markup_Display();
111
  }
112
  }
3
  Plugin Name: Markup (JSON-LD) structured in schema.org
4
  Plugin URI: https://github.com/miiitaka/wp-structuring-markup
5
  Description: It is plug in to implement structured markup (JSON-LD syntax) by schema.org definition on an article or the fixed page.
6
+ Version: 1.3.0
7
  Author: Kazuya Takami
8
  Author URI: http://programp.com/
9
  License: GPLv2 or later
10
  Text Domain: wp-structuring-markup
11
+ Domain Path: /languages
12
  */
13
+ require_once( plugin_dir_path( __FILE__ ) . 'includes/wp-structuring-admin-db.php' );
14
 
15
  new Structuring_Markup();
16
 
19
  *
20
  * @author Kazuya Takami
21
  * @since 1.0.0
22
+ * @version 1.3.0
23
  */
24
  class Structuring_Markup {
25
 
26
+ /**
27
+ * Variable definition.
28
+ *
29
+ * @since 1.3.0
30
+ */
31
+ private $text_domain = 'wp-structuring-markup';
32
+
33
  /**
34
  * Constructor Define.
35
  *
36
  * @since 1.0.0
37
+ * @version 1.3.0
38
  */
39
  public function __construct() {
40
+ add_action( 'plugins_loaded', array( $this, 'plugins_loaded' ) );
41
+
42
  $db = new Structuring_Markup_Admin_Db();
43
  $db->create_table();
44
 
47
  add_action( 'admin_init', function () {
48
  wp_register_style( 'wp-structuring-markup-admin-style', plugins_url( 'css/style.css', __FILE__ ) );
49
  });
50
+ add_action( 'admin_menu', array( $this, 'admin_menu' ) );
51
  } else {
52
+ add_action( 'wp_head', array( $this, 'wp_head' ) );
53
  }
54
  }
55
 
56
+ /**
57
+ * i18n.
58
+ *
59
+ * @since 1.3.0
60
+ * @version 1.3.0
61
+ */
62
+ public function plugins_loaded() {
63
+ load_plugin_textdomain(
64
+ $this->text_domain,
65
+ false,
66
+ dirname( plugin_basename( __FILE__ ) ) . '/languages'
67
+ );
68
+ }
69
+
70
  /**
71
  * Add Menu to the Admin Screen.
72
  *
73
  * @since 1.0.0
74
  * @version 1.2.1
75
  */
76
+ public function admin_menu() {
77
  add_menu_page(
78
+ esc_html__( 'Scheme.org Setting', $this->text_domain ),
79
+ esc_html__( 'Scheme.org Setting', $this->text_domain ),
80
  'manage_options',
81
  plugin_basename( __FILE__ ),
82
  array( $this, 'list_page_render' )
83
  );
84
  add_submenu_page(
85
  __FILE__,
86
+ esc_html__( 'Setting All', $this->text_domain ),
87
+ esc_html__( 'Setting All', $this->text_domain ),
88
  'manage_options',
89
  plugin_basename( __FILE__ ),
90
  array( $this, 'list_page_render' )
91
  );
92
  $page = add_submenu_page(
93
  __FILE__,
94
+ esc_html__( 'Scheme.org Setting Post', $this->text_domain ),
95
+ esc_html__( 'Add New', $this->text_domain ),
96
  'manage_options',
97
+ plugin_dir_path( __FILE__ ) . 'includes/wp-structuring-admin-post.php',
98
  array( $this, 'post_page_render' )
99
  );
100
 
107
  /**
108
  * LIST Page Template Require.
109
  *
110
+ * @since 1.0.0
111
+ * @version 1.3.0
112
  */
113
  public function list_page_render() {
114
+ require_once( plugin_dir_path( __FILE__ ) . 'includes/wp-structuring-admin-list.php' );
115
+ new Structuring_Markup_Admin_List( $this->text_domain );
116
  }
117
 
118
  /**
119
  * POST Page Template Require.
120
  *
121
+ * @since 1.0.0
122
+ * @version 1.3.0
123
  */
124
  public function post_page_render() {
125
+ require_once( plugin_dir_path( __FILE__ ) . 'includes/wp-structuring-admin-post.php' );
126
+ new Structuring_Markup_Admin_Post( $this->text_domain );
127
  }
128
 
129
  /**
130
  * Display Page Template Require.
131
  *
132
+ * @since 1.3.0
133
+ * @version 1.3.0
134
  */
135
+ public function wp_head() {
136
+ require_once( plugin_dir_path( __FILE__ ) . 'includes/wp-structuring-display.php' );
137
  new Structuring_Markup_Display();
138
  }
139
  }