Version Description
- title / description / robots
- %term_description%
- description%term_description%
- description
Download this release
Release Info
Developer | looswebstudio |
Plugin | SEO SIMPLE PACK |
Version | 1.2.1 |
Comparing to | |
See all releases |
Code changes from version 1.2.0 to 1.2.1
- assets/css/ssp.css +11 -3
- class/ssp_activate.php +7 -8
- class/ssp_data.php +3 -2
- class/ssp_init.php +26 -18
- class/ssp_metabox.php +201 -68
- class/ssp_methods.php +18 -5
- class/ssp_output.php +89 -61
- inc/page_help.php +1 -1
- inc/parts/tab_ogp.php +6 -3
- readme.txt +9 -2
- seo-simple-pack.php +2 -2
assets/css/ssp.css
CHANGED
@@ -171,9 +171,9 @@
|
|
171 |
#ssp_wrap table.form-table td{
|
172 |
padding-left: 40px;
|
173 |
}
|
174 |
-
#ssp_wrap #post_type .tr_desc{
|
175 |
display: none;
|
176 |
-
}
|
177 |
/*
|
178 |
ssp_item
|
179 |
*/
|
@@ -285,7 +285,6 @@ tr[data-disable="1"] + tr + tr + tr{
|
|
285 |
|
286 |
|
287 |
/* タブコンテンツ */
|
288 |
-
|
289 |
.nav-tab{
|
290 |
cursor: pointer;
|
291 |
}
|
@@ -356,4 +355,13 @@ input:checked + .slider:before {
|
|
356 |
|
357 |
.slider.round:before {
|
358 |
border-radius: 50%;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
359 |
}
|
171 |
#ssp_wrap table.form-table td{
|
172 |
padding-left: 40px;
|
173 |
}
|
174 |
+
/* #ssp_wrap #post_type .tr_desc{
|
175 |
display: none;
|
176 |
+
} */
|
177 |
/*
|
178 |
ssp_item
|
179 |
*/
|
285 |
|
286 |
|
287 |
/* タブコンテンツ */
|
|
|
288 |
.nav-tab{
|
289 |
cursor: pointer;
|
290 |
}
|
355 |
|
356 |
.slider.round:before {
|
357 |
border-radius: 50%;
|
358 |
+
}
|
359 |
+
|
360 |
+
/* タームメタ */
|
361 |
+
.form-table .ssp_term_meta_title td{
|
362 |
+
padding-left: 0;
|
363 |
+
}
|
364 |
+
.ssp_term_meta_title h2{
|
365 |
+
border-top: dashed 1px #ccc;
|
366 |
+
padding: 16px 0 0;
|
367 |
}
|
class/ssp_activate.php
CHANGED
@@ -21,21 +21,20 @@ class SSP_Activate {
|
|
21 |
$SSP_ogp = SSP_Data::DEFAULT_OGP;
|
22 |
|
23 |
update_option( SSP_Data::DB_NAME[ 'installed' ], 1 );
|
24 |
-
update_option( SSP_Data::DB_NAME[ 'notification' ], 'hide' );
|
|
|
|
|
|
|
|
|
25 |
|
26 |
} else {
|
27 |
|
28 |
//データが残っている場合 : 既存設定取得
|
29 |
-
$SSP_settings = get_option( SSP_Data::DB_NAME[ 'settings' ] );
|
30 |
-
$SSP_ogp = get_option( SSP_Data::DB_NAME[ 'ogp' ] );
|
31 |
|
32 |
}
|
33 |
|
34 |
-
//DB更新
|
35 |
-
update_option( SSP_Data::DB_NAME[ 'settings' ], $SSP_settings );
|
36 |
-
update_option( SSP_Data::DB_NAME[ 'ogp' ], $SSP_ogp );
|
37 |
-
|
38 |
-
|
39 |
}
|
40 |
|
41 |
|
21 |
$SSP_ogp = SSP_Data::DEFAULT_OGP;
|
22 |
|
23 |
update_option( SSP_Data::DB_NAME[ 'installed' ], 1 );
|
24 |
+
// update_option( SSP_Data::DB_NAME[ 'notification' ], 'hide' );
|
25 |
+
|
26 |
+
//DB更新
|
27 |
+
update_option( SSP_Data::DB_NAME[ 'settings' ], $SSP_settings );
|
28 |
+
update_option( SSP_Data::DB_NAME[ 'ogp' ], $SSP_ogp );
|
29 |
|
30 |
} else {
|
31 |
|
32 |
//データが残っている場合 : 既存設定取得
|
33 |
+
// $SSP_settings = get_option( SSP_Data::DB_NAME[ 'settings' ] );
|
34 |
+
// $SSP_ogp = get_option( SSP_Data::DB_NAME[ 'ogp' ] );
|
35 |
|
36 |
}
|
37 |
|
|
|
|
|
|
|
|
|
|
|
38 |
}
|
39 |
|
40 |
|
class/ssp_data.php
CHANGED
@@ -61,7 +61,7 @@ class SSP_Data {
|
|
61 |
|
62 |
|
63 |
/**
|
64 |
-
*
|
65 |
*/
|
66 |
const DEFAULT_SETTINGS = [
|
67 |
'home_title' => '%_site_title_% %_sep_% %_phrase_%',
|
@@ -86,7 +86,8 @@ class SSP_Data {
|
|
86 |
'media_desc' => '%_page_contents_%',
|
87 |
'cat_noindex' => true,
|
88 |
'cat_title' => '%_cat_name_% %_sep_% %_site_title_%',
|
89 |
-
'cat_desc' => 'カテゴリー「%_cat_name_%」の一覧ページです。',
|
|
|
90 |
'tag_noindex' => true,
|
91 |
'tag_title' => '%_tag_name_% %_sep_% %_site_title_%',
|
92 |
'tag_desc' => 'タグ「%_tag_name_%」の一覧ページです。',
|
61 |
|
62 |
|
63 |
/**
|
64 |
+
* 基本設定のデフォルト値
|
65 |
*/
|
66 |
const DEFAULT_SETTINGS = [
|
67 |
'home_title' => '%_site_title_% %_sep_% %_phrase_%',
|
86 |
'media_desc' => '%_page_contents_%',
|
87 |
'cat_noindex' => true,
|
88 |
'cat_title' => '%_cat_name_% %_sep_% %_site_title_%',
|
89 |
+
// 'cat_desc' => 'カテゴリー「%_cat_name_%」の一覧ページです。',
|
90 |
+
'cat_desc' => '%_term_description_%',
|
91 |
'tag_noindex' => true,
|
92 |
'tag_title' => '%_tag_name_% %_sep_% %_site_title_%',
|
93 |
'tag_desc' => 'タグ「%_tag_name_%」の一覧ページです。',
|
class/ssp_init.php
CHANGED
@@ -9,7 +9,9 @@ class SSP_Init {
|
|
9 |
|
10 |
$this->set_ssp_data();
|
11 |
$this->set_hooks();
|
12 |
-
|
|
|
|
|
13 |
|
14 |
}
|
15 |
|
@@ -22,8 +24,12 @@ class SSP_Init {
|
|
22 |
//サイト基本情報取得
|
23 |
SSP_Data::$site_title = esc_html( get_option( 'blogname' ) );
|
24 |
SSP_Data::$site_catch_phrase = esc_html( get_option( 'blogdescription' ) );
|
25 |
-
SSP_Data::$settings = get_option( SSP_Data::DB_NAME[ 'settings' ] );
|
26 |
-
SSP_Data::$ogp = get_option( SSP_Data::DB_NAME[ 'ogp' ] );
|
|
|
|
|
|
|
|
|
27 |
|
28 |
}
|
29 |
|
@@ -39,14 +45,14 @@ class SSP_Init {
|
|
39 |
add_action( 'admin_menu', ['SSP_Menu', 'add_menus'] );
|
40 |
add_action( 'wp_head', [ 'SSP_Output', 'main' ], 10 );
|
41 |
add_action( 'template_redirect', [ 'SSP_Methods', 'redirect' ], 1 );
|
42 |
-
|
43 |
-
|
44 |
remove_action('wp_head', '_wp_render_title_tag', 1);
|
45 |
|
46 |
}
|
47 |
|
48 |
/**
|
49 |
-
* 更新に関する通知
|
50 |
*/
|
51 |
private function set_notification() {
|
52 |
|
@@ -65,18 +71,20 @@ class SSP_Init {
|
|
65 |
|
66 |
// 以前から使用中の方へ向けてのメッセージ
|
67 |
$notification_db = get_option( SSP_Data::DB_NAME[ 'notification' ] );
|
68 |
-
if( $notification_db === 'show') {
|
69 |
-
add_action( 'admin_notices', function() {
|
70 |
-
|
71 |
-
<
|
72 |
-
<
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
<
|
78 |
-
|
79 |
-
|
|
|
|
|
80 |
} );
|
81 |
}
|
82 |
|
9 |
|
10 |
$this->set_ssp_data();
|
11 |
$this->set_hooks();
|
12 |
+
SSP_MetaBox::init();
|
13 |
+
|
14 |
+
//$this->set_notification(); //OFF中
|
15 |
|
16 |
}
|
17 |
|
24 |
//サイト基本情報取得
|
25 |
SSP_Data::$site_title = esc_html( get_option( 'blogname' ) );
|
26 |
SSP_Data::$site_catch_phrase = esc_html( get_option( 'blogdescription' ) );
|
27 |
+
SSP_Data::$settings = get_option( SSP_Data::DB_NAME[ 'settings' ] ) ?: SSP_Data::DEFAULT_SETTINGS;
|
28 |
+
SSP_Data::$ogp = get_option( SSP_Data::DB_NAME[ 'ogp' ] ) ?: SSP_Data::DEFAULT_OGP;
|
29 |
+
|
30 |
+
//default設定とマージ
|
31 |
+
SSP_Data::$settings = array_merge( SSP_Data::DEFAULT_SETTINGS, SSP_Data::$settings );
|
32 |
+
SSP_Data::$ogp = array_merge( SSP_Data::DEFAULT_OGP, SSP_Data::$ogp );
|
33 |
|
34 |
}
|
35 |
|
45 |
add_action( 'admin_menu', ['SSP_Menu', 'add_menus'] );
|
46 |
add_action( 'wp_head', [ 'SSP_Output', 'main' ], 10 );
|
47 |
add_action( 'template_redirect', [ 'SSP_Methods', 'redirect' ], 1 );
|
48 |
+
|
49 |
+
//titleタグの除去
|
50 |
remove_action('wp_head', '_wp_render_title_tag', 1);
|
51 |
|
52 |
}
|
53 |
|
54 |
/**
|
55 |
+
* 更新に関する通知 :: 〜OFF中〜
|
56 |
*/
|
57 |
private function set_notification() {
|
58 |
|
71 |
|
72 |
// 以前から使用中の方へ向けてのメッセージ
|
73 |
$notification_db = get_option( SSP_Data::DB_NAME[ 'notification' ] );
|
74 |
+
if( $notification_db === 'show' ) {
|
75 |
+
add_action( 'admin_notices', function() {
|
76 |
+
?>
|
77 |
+
<div class="notice notice-error ssp_notice">
|
78 |
+
<p>
|
79 |
+
<b>[ SEO SIMPLE PACK 更新に伴うお知らせ ]</b><br>
|
80 |
+
個別ページごとの <code>meta robots</code> の設定方法が新しくなりました!<br>
|
81 |
+
以前のバージョンで個別設定をしていた場合は、お手数ですが再度設定をお願いいたします。
|
82 |
+
</p>
|
83 |
+
<form action="" method="post">
|
84 |
+
<button type="submit" name="ssp_notice_close" class="notice-dismiss"><span>この通知を非表示にする</span></button>
|
85 |
+
</form>
|
86 |
+
</div>
|
87 |
+
<?php
|
88 |
} );
|
89 |
}
|
90 |
|
class/ssp_metabox.php
CHANGED
@@ -10,19 +10,44 @@ class SSP_MetaBox {
|
|
10 |
/**
|
11 |
* metabox names
|
12 |
*/
|
13 |
-
const
|
14 |
-
'robots'
|
15 |
'title' => 'ssp_meta_title',
|
16 |
'description' => 'ssp_meta_description',
|
17 |
'keyword' => 'ssp_meta_keyword',
|
18 |
];
|
19 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
|
21 |
/**
|
22 |
* Add metabox.
|
23 |
-
*
|
24 |
*/
|
25 |
-
public static function
|
26 |
$args = ['public' => true, '_builtin' => false];
|
27 |
$post_types = get_post_types( $args, 'names', 'and' );
|
28 |
$screens = array_merge( ['post','page'], $post_types );
|
@@ -38,7 +63,6 @@ class SSP_MetaBox {
|
|
38 |
);
|
39 |
}
|
40 |
|
41 |
-
|
42 |
/**
|
43 |
* Metabox cintents.
|
44 |
*
|
@@ -46,17 +70,17 @@ class SSP_MetaBox {
|
|
46 |
*/
|
47 |
public static function ssp_metabox_callback( $post ) {
|
48 |
|
49 |
-
$val_robots = get_post_meta( $post->ID, self::
|
50 |
-
$val_title = get_post_meta( $post->ID, self::
|
51 |
-
$val_description = get_post_meta( $post->ID, self::
|
52 |
-
$val_keyword = get_post_meta( $post->ID, self::
|
53 |
|
54 |
//更新に伴う調節
|
55 |
if ( $val_robots === "noindex,follow" ) {
|
56 |
-
update_post_meta( $post->ID, self::
|
57 |
$val_robots = "noindex";
|
58 |
} elseif ( $val_robots === "index,nofollow" ) {
|
59 |
-
update_post_meta( $post->ID, self::
|
60 |
$val_robots = "nofollow";
|
61 |
}
|
62 |
|
@@ -70,57 +94,61 @@ class SSP_MetaBox {
|
|
70 |
?>
|
71 |
<div id="ssp_wrap" class="ssp_metabox">
|
72 |
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
</div>
|
93 |
-
|
94 |
-
|
95 |
-
<label for="<?=self::METANAME['title']?>">このページのタイトルタグを上書きする</label>
|
96 |
-
<div class="ssp_meta_inner">
|
97 |
-
<input type="text" id="<?=self::METANAME['title']?>" name="<?=self::METANAME['title']?>" value="<?=esc_html( $val_title)?>">
|
98 |
-
<p class="ssp_note">
|
99 |
-
<i><a href="<?=admin_url('admin.php?page=ssp_help')?>" target="_blank">スニペットタグ</a> ( <code>%_site_title_%</code>など )が使用可能です。空白の場合、デフォルトの形式で出力されます。</i>
|
100 |
-
</p>
|
101 |
-
</div>
|
102 |
-
|
103 |
-
<label for="<?=self::METANAME['description']?>">このページのディスクリプション</label>
|
104 |
-
<div class="ssp_meta_inner">
|
105 |
-
<textarea id="<?=self::METANAME['description']?>" name="<?=self::METANAME['description']?>"><?=esc_html( $val_description )?></textarea>
|
106 |
-
<p class="ssp_note">
|
107 |
-
<i>空白の場合、コンテンツから自動でディスクリプションタグが生成されます。</i>
|
108 |
-
</p>
|
109 |
-
</div>
|
110 |
-
|
111 |
-
<label for="<?=self::METANAME['keyword']?>">このページのキーワード</label>
|
112 |
-
<div class="ssp_meta_inner">
|
113 |
-
<input type="text" id="<?=self::METANAME['keyword']?>" name="<?=self::METANAME['keyword']?>" value="<?=esc_html( $val_keyword )?>">
|
114 |
-
<p class="ssp_note">
|
115 |
-
<i>空白の場合、<a href="<?=admin_url('admin.php?page=ssp_main_setting')?>" target="_blank">「SEO PACK」の「基本設定」</a>の「キーワード」設定が使用されます。</i>
|
116 |
-
</p>
|
117 |
-
</div>
|
118 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
<?php
|
120 |
// nonceフィールド追加
|
121 |
wp_nonce_field( SSP_Data::NOUNCE_ACTION, SSP_Data::NOUNCE_NAME );
|
122 |
}
|
123 |
|
|
|
|
|
|
|
|
|
124 |
public static function save_ssp_metabox( $post_id ) {
|
125 |
|
126 |
/* Debug デバッグ には exit() 使う*/
|
@@ -172,26 +200,131 @@ class SSP_MetaBox {
|
|
172 |
|
173 |
// Make sure that it is set.
|
174 |
// 保存したい情報が渡ってきているか確認
|
175 |
-
if ( !isset( $_POST[self::
|
176 |
-
!isset( $_POST[self::
|
177 |
-
!isset( $_POST[self::
|
178 |
-
!isset( $_POST[self::
|
179 |
return;
|
180 |
}
|
181 |
|
182 |
// Sanitize user input.
|
183 |
// 入力された値をサニタイズ
|
184 |
-
$meta_robots = sanitize_text_field( $_POST[self::
|
185 |
-
$meta_title = sanitize_text_field( $_POST[self::
|
186 |
-
$meta_description = sanitize_text_field( $_POST[self::
|
187 |
-
$meta_keyword = sanitize_text_field( $_POST[self::
|
188 |
|
189 |
// Update the meta field in the database.
|
190 |
// データベースのポストメタに値を保存
|
191 |
-
update_post_meta( $post_id, self::
|
192 |
-
update_post_meta( $post_id, self::
|
193 |
-
update_post_meta( $post_id, self::
|
194 |
-
update_post_meta( $post_id, self::
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
195 |
}
|
196 |
}
|
197 |
|
10 |
/**
|
11 |
* metabox names
|
12 |
*/
|
13 |
+
const P_METANAME = [
|
14 |
+
'robots' => 'ssp_meta_robots',
|
15 |
'title' => 'ssp_meta_title',
|
16 |
'description' => 'ssp_meta_description',
|
17 |
'keyword' => 'ssp_meta_keyword',
|
18 |
];
|
19 |
|
20 |
+
/**
|
21 |
+
* metabox names
|
22 |
+
*/
|
23 |
+
const T_METANAME = [
|
24 |
+
'robots' => 'ssp_meta_robots',
|
25 |
+
'title' => 'ssp_meta_title',
|
26 |
+
'description' => 'ssp_meta_description',
|
27 |
+
];
|
28 |
+
|
29 |
+
/**
|
30 |
+
* init
|
31 |
+
*/
|
32 |
+
public static function init() {
|
33 |
+
//post meta
|
34 |
+
add_action( 'add_meta_boxes', [ 'SSP_MetaBox', 'ssp_add_metabox' ], 1);
|
35 |
+
add_action( 'save_post', [ 'SSP_MetaBox', 'save_ssp_metabox'] );
|
36 |
+
|
37 |
+
//term meta
|
38 |
+
// add_action('category_add_form_fields', [ 'SSP_MetaBox', 'ssp_add_term_fields' ]);
|
39 |
+
// add_action('post_tag_add_form_fields', [ 'SSP_MetaBox', 'ssp_add_term_fields' ]);
|
40 |
+
add_action('category_edit_form_fields', [ 'SSP_MetaBox', 'ssp_add_term_edit_fields' ], 20);
|
41 |
+
add_action('post_tag_edit_form_fields', [ 'SSP_MetaBox', 'ssp_add_term_edit_fields' ], 20);
|
42 |
+
add_action( 'created_term', [ 'SSP_MetaBox', 'ssp_save_term_filds' ] ); //新規追加用 保存処理フック
|
43 |
+
add_action( 'edited_terms', [ 'SSP_MetaBox', 'ssp_save_term_filds' ] ); //編集ページ用 保存処理フック
|
44 |
+
}
|
45 |
+
|
46 |
|
47 |
/**
|
48 |
* Add metabox.
|
|
|
49 |
*/
|
50 |
+
public static function ssp_add_metabox() {
|
51 |
$args = ['public' => true, '_builtin' => false];
|
52 |
$post_types = get_post_types( $args, 'names', 'and' );
|
53 |
$screens = array_merge( ['post','page'], $post_types );
|
63 |
);
|
64 |
}
|
65 |
|
|
|
66 |
/**
|
67 |
* Metabox cintents.
|
68 |
*
|
70 |
*/
|
71 |
public static function ssp_metabox_callback( $post ) {
|
72 |
|
73 |
+
$val_robots = get_post_meta( $post->ID, self::P_METANAME['robots'], true );
|
74 |
+
$val_title = get_post_meta( $post->ID, self::P_METANAME['title'], true );
|
75 |
+
$val_description = get_post_meta( $post->ID, self::P_METANAME['description'], true );
|
76 |
+
$val_keyword = get_post_meta( $post->ID, self::P_METANAME['keyword'], true );
|
77 |
|
78 |
//更新に伴う調節
|
79 |
if ( $val_robots === "noindex,follow" ) {
|
80 |
+
update_post_meta( $post->ID, self::P_METANAME['robots'], "noindex");
|
81 |
$val_robots = "noindex";
|
82 |
} elseif ( $val_robots === "index,nofollow" ) {
|
83 |
+
update_post_meta( $post->ID, self::P_METANAME['robots'], "nofollow");
|
84 |
$val_robots = "nofollow";
|
85 |
}
|
86 |
|
94 |
?>
|
95 |
<div id="ssp_wrap" class="ssp_metabox">
|
96 |
|
97 |
+
<label for="<?=self::P_METANAME['robots']?>">このページの robotsタグ (インデックスさせるかどうか)</label>
|
98 |
+
<div class="ssp_meta_inner">
|
99 |
+
<select name="<?=self::P_METANAME['robots']?>" id="<?=self::P_METANAME['robots']?>">
|
100 |
+
<option value="">-- デフォルト設定のまま --</option>
|
101 |
+
<?php foreach ($robots_arr as $key => $value) {
|
102 |
+
if ( $value === $val_robots ) {
|
103 |
+
echo '<option value="', $value ,'" selected>', $key ,'</option>';
|
104 |
+
} else {
|
105 |
+
echo '<option value="', $value ,'">', $key ,'</option>';
|
106 |
+
}
|
107 |
+
} ?>
|
108 |
+
</select>
|
109 |
+
<p class="ssp_note">
|
110 |
+
<i>
|
111 |
+
例:「サイトマップ」など、インデックスさせたくない特別なページには「インデックスさせない(noindex)」を設定してください。
|
112 |
+
<br>
|
113 |
+
投稿ページの デフォルト設定 は <a href="<?=admin_url('admin.php?page=ssp_main_setting')?>" target="_blank">「SEO PACK」の「一般設定」</a>から<a href="<?=admin_url('admin.php?page=ssp_main_setting#post_type')?>" target="_blank">「投稿ページ」タブ</a> をご確認ください。
|
114 |
+
</i>
|
115 |
+
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
</div>
|
117 |
+
|
118 |
+
|
119 |
+
<label for="<?=self::P_METANAME['title']?>">このページのタイトルタグを上書きする</label>
|
120 |
+
<div class="ssp_meta_inner">
|
121 |
+
<input type="text" id="<?=self::P_METANAME['title']?>" name="<?=self::P_METANAME['title']?>" value="<?=esc_html( $val_title)?>">
|
122 |
+
<p class="ssp_note">
|
123 |
+
<i><a href="<?=admin_url('admin.php?page=ssp_help')?>" target="_blank">スニペットタグ</a> ( <code>%_site_title_%</code>など )が使用可能です。空白の場合、デフォルトの形式で出力されます。</i>
|
124 |
+
</p>
|
125 |
+
</div>
|
126 |
+
|
127 |
+
<label for="<?=self::P_METANAME['description']?>">このページのディスクリプション</label>
|
128 |
+
<div class="ssp_meta_inner">
|
129 |
+
<textarea id="<?=self::P_METANAME['description']?>" name="<?=self::P_METANAME['description']?>"><?=esc_html( $val_description )?></textarea>
|
130 |
+
<p class="ssp_note">
|
131 |
+
<i>空白の場合、コンテンツから自動でディスクリプションタグが生成されます。</i>
|
132 |
+
</p>
|
133 |
+
</div>
|
134 |
+
|
135 |
+
<label for="<?=self::P_METANAME['keyword']?>">このページのキーワード</label>
|
136 |
+
<div class="ssp_meta_inner">
|
137 |
+
<input type="text" id="<?=self::P_METANAME['keyword']?>" name="<?=self::P_METANAME['keyword']?>" value="<?=esc_html( $val_keyword )?>">
|
138 |
+
<p class="ssp_note">
|
139 |
+
<i>空白の場合、<a href="<?=admin_url('admin.php?page=ssp_main_setting')?>" target="_blank">「SEO PACK」の「基本設定」</a>の「キーワード」設定が使用されます。</i>
|
140 |
+
</p>
|
141 |
+
</div>
|
142 |
+
</div>
|
143 |
<?php
|
144 |
// nonceフィールド追加
|
145 |
wp_nonce_field( SSP_Data::NOUNCE_ACTION, SSP_Data::NOUNCE_NAME );
|
146 |
}
|
147 |
|
148 |
+
|
149 |
+
/**
|
150 |
+
* Save post meta
|
151 |
+
*/
|
152 |
public static function save_ssp_metabox( $post_id ) {
|
153 |
|
154 |
/* Debug デバッグ には exit() 使う*/
|
200 |
|
201 |
// Make sure that it is set.
|
202 |
// 保存したい情報が渡ってきているか確認
|
203 |
+
if ( !isset( $_POST[self::P_METANAME['robots']] ) ||
|
204 |
+
!isset( $_POST[self::P_METANAME['title']] ) ||
|
205 |
+
!isset( $_POST[self::P_METANAME['description']] ) ||
|
206 |
+
!isset( $_POST[self::P_METANAME['keyword']] ) ) {
|
207 |
return;
|
208 |
}
|
209 |
|
210 |
// Sanitize user input.
|
211 |
// 入力された値をサニタイズ
|
212 |
+
$meta_robots = sanitize_text_field( $_POST[self::P_METANAME['robots']] );
|
213 |
+
$meta_title = sanitize_text_field( $_POST[self::P_METANAME['title']] );
|
214 |
+
$meta_description = sanitize_text_field( $_POST[self::P_METANAME['description']] );
|
215 |
+
$meta_keyword = sanitize_text_field( $_POST[self::P_METANAME['keyword']] );
|
216 |
|
217 |
// Update the meta field in the database.
|
218 |
// データベースのポストメタに値を保存
|
219 |
+
update_post_meta( $post_id, self::P_METANAME['robots'], $meta_robots );
|
220 |
+
update_post_meta( $post_id, self::P_METANAME['title'], $meta_title );
|
221 |
+
update_post_meta( $post_id, self::P_METANAME['description'], $meta_description );
|
222 |
+
update_post_meta( $post_id, self::P_METANAME['keyword'], $meta_keyword );
|
223 |
+
}
|
224 |
+
|
225 |
+
|
226 |
+
/**
|
227 |
+
* ターム「新規追加」画面にフィールド追加
|
228 |
+
*/
|
229 |
+
public static function ssp_add_term_fields() {
|
230 |
+
$robots_arr = [
|
231 |
+
"インデックスさせる" => "index,follow",
|
232 |
+
"インデックスさせない (noindex)" => "noindex",
|
233 |
+
"リンクを辿らせない (nofollow)" => "nofollow",
|
234 |
+
"キャッシュさせない (noarchive)" => "noarchive",
|
235 |
+
"noindex,nofollow" => "noindex,nofollow",
|
236 |
+
];
|
237 |
+
?>
|
238 |
+
<div class="form-field">
|
239 |
+
<label for="<?=self::T_METANAME['robots']?>">【SSP】このタームアーカイブページの robotsタグ設定</label>
|
240 |
+
<select name="<?=self::T_METANAME['robots']?>" id="<?=self::T_METANAME['robots']?>">
|
241 |
+
<option value="">-- デフォルト設定のまま --</option>
|
242 |
+
<?php foreach ($robots_arr as $key => $value) {
|
243 |
+
if ( $value === $val_robots ) {
|
244 |
+
echo '<option value="', $value ,'" selected>', $key ,'</option>';
|
245 |
+
} else {
|
246 |
+
echo '<option value="', $value ,'">', $key ,'</option>';
|
247 |
+
}
|
248 |
+
} ?>
|
249 |
+
</select>
|
250 |
+
</div>
|
251 |
+
<div class="form-field">
|
252 |
+
<label for="<?=self::T_METANAME['title']?>">【SSP】このタームアーカイブページの titleタグ</label>
|
253 |
+
<input type="text" name="<?=self::T_METANAME['title']?>" id="<?=self::T_METANAME['title']?>">
|
254 |
+
</div>
|
255 |
+
<div class="form-field">
|
256 |
+
<label for="<?=self::T_METANAME['description']?>">【SSP】このタームアーカイブページの descriptionタグ</label>
|
257 |
+
<textarea name="<?=self::T_METANAME['description']?>" id="<?=self::T_METANAME['description']?>" cols="40" rows="5"></textarea>
|
258 |
+
</div>
|
259 |
+
<?php
|
260 |
+
}
|
261 |
+
|
262 |
+
/**
|
263 |
+
* ターム「編集」画面にフィールド追加
|
264 |
+
*/
|
265 |
+
public static function ssp_add_term_edit_fields( $term ) {
|
266 |
+
$robots_arr = [
|
267 |
+
"インデックスさせる" => "index,follow",
|
268 |
+
"インデックスさせない (noindex)" => "noindex",
|
269 |
+
"リンクを辿らせない (nofollow)" => "nofollow",
|
270 |
+
"キャッシュさせない (noarchive)" => "noarchive",
|
271 |
+
"noindex,nofollow" => "noindex,nofollow",
|
272 |
+
];
|
273 |
+
$val_robots = get_term_meta( $term->term_id, self::T_METANAME['robots'], true );
|
274 |
+
$val_title = get_term_meta( $term->term_id, self::T_METANAME['title'], true );
|
275 |
+
$val_description = get_term_meta( $term->term_id, self::T_METANAME['description'], true );
|
276 |
+
?>
|
277 |
+
<tr class="ssp_term_meta_title">
|
278 |
+
<td colspan="2">
|
279 |
+
<h2>SEO SIMPLE PACKの設定</h2>
|
280 |
+
</td>
|
281 |
+
</tr>
|
282 |
+
<tr class="form-field">
|
283 |
+
<th>
|
284 |
+
<label for="<?=self::T_METANAME['robots']?>">このタームアーカイブページの robotsタグ</label>
|
285 |
+
</th>
|
286 |
+
<td>
|
287 |
+
<select name="<?=self::T_METANAME['robots']?>" id="<?=self::T_METANAME['robots']?>">
|
288 |
+
<option value="">-- デフォルト設定のまま --</option>
|
289 |
+
<?php foreach ($robots_arr as $key => $value) {
|
290 |
+
if ( $value === $val_robots ) {
|
291 |
+
echo '<option value="', $value ,'" selected>', $key ,'</option>';
|
292 |
+
} else {
|
293 |
+
echo '<option value="', $value ,'">', $key ,'</option>';
|
294 |
+
}
|
295 |
+
} ?>
|
296 |
+
</select>
|
297 |
+
</td>
|
298 |
+
</tr>
|
299 |
+
<tr class="form-field">
|
300 |
+
<th>
|
301 |
+
<label for="<?=self::T_METANAME['title']?>">このタームアーカイブページの titleタグ</label>
|
302 |
+
</th>
|
303 |
+
<td>
|
304 |
+
<input type="text" name="<?=self::T_METANAME['title']?>" id="<?=self::T_METANAME['title']?>" value="<?=$val_title?>">
|
305 |
+
</td>
|
306 |
+
</tr>
|
307 |
+
<tr class="form-field">
|
308 |
+
<th>
|
309 |
+
<label for="<?=self::T_METANAME['description']?>">このタームアーカイブページの descriptionタグ</label>
|
310 |
+
</th>
|
311 |
+
<td>
|
312 |
+
<textarea name="<?=self::T_METANAME['description']?>" id="<?=self::T_METANAME['description']?>" cols="40" rows="5"><?=$val_description?></textarea>
|
313 |
+
</td>
|
314 |
+
</tr>
|
315 |
+
<?php
|
316 |
+
}
|
317 |
+
|
318 |
+
|
319 |
+
/**
|
320 |
+
* Save term meta
|
321 |
+
*/
|
322 |
+
public static function ssp_save_term_filds( $term_id ) {
|
323 |
+
foreach ( self::T_METANAME as $label => $keyname) {
|
324 |
+
if ( isset( $_POST[$keyname] ) ) {
|
325 |
+
update_term_meta( $term_id, $keyname, $_POST[$keyname]);
|
326 |
+
}
|
327 |
+
}
|
328 |
}
|
329 |
}
|
330 |
|
class/ssp_methods.php
CHANGED
@@ -168,6 +168,8 @@ class SSP_Methods {
|
|
168 |
$str = str_replace ('%_page_contents_%', '<span>投稿コンテンツ</span>', $str);
|
169 |
$str = str_replace ('%_date_%', '<span>日付</span>', $str);
|
170 |
$str = str_replace ('%_format_name_%', '<span>フォーマット名</span>', $str);
|
|
|
|
|
171 |
|
172 |
if (strpos($str, '%_sep_%') !== false) {
|
173 |
|
@@ -225,21 +227,32 @@ class SSP_Methods {
|
|
225 |
//Get DB name.
|
226 |
$db_name = $P[ 'db_name' ];
|
227 |
|
|
|
228 |
if ( !in_array( $db_name, SSP_Data::DB_NAME ) ) {
|
229 |
exit( 'DataBase was not found' );
|
230 |
}
|
231 |
|
232 |
-
//Get DB
|
233 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
234 |
|
235 |
-
if ( $db_data === false ) {
|
236 |
exit( 'DataBase was not found' );
|
237 |
-
|
|
|
238 |
|
239 |
//Delete unexpected data form the POST data.
|
|
|
240 |
foreach ( $P as $key => $v ) {
|
241 |
|
242 |
-
if ( !
|
243 |
|
244 |
unset( $P[ $key ] );
|
245 |
|
168 |
$str = str_replace ('%_page_contents_%', '<span>投稿コンテンツ</span>', $str);
|
169 |
$str = str_replace ('%_date_%', '<span>日付</span>', $str);
|
170 |
$str = str_replace ('%_format_name_%', '<span>フォーマット名</span>', $str);
|
171 |
+
$str = str_replace ('%_term_description_%', '<span>タームの説明</span>', $str);
|
172 |
+
|
173 |
|
174 |
if (strpos($str, '%_sep_%') !== false) {
|
175 |
|
227 |
//Get DB name.
|
228 |
$db_name = $P[ 'db_name' ];
|
229 |
|
230 |
+
//SSP用のデータベースが登録されていなければ exit
|
231 |
if ( !in_array( $db_name, SSP_Data::DB_NAME ) ) {
|
232 |
exit( 'DataBase was not found' );
|
233 |
}
|
234 |
|
235 |
+
//Get DB 設定可能なデータのリストを取得
|
236 |
+
//$db_data = get_option( $db_name );
|
237 |
+
if ( $db_name === SSP_Data::DB_NAME['settings'] ) {
|
238 |
+
|
239 |
+
$db_data_key = array_keys( SSP_Data::DEFAULT_SETTINGS );
|
240 |
+
|
241 |
+
} elseif ( $db_name === SSP_Data::DB_NAME['ogp'] ) {
|
242 |
+
|
243 |
+
$db_data_key = array_keys( SSP_Data::DEFAULT_OGP );
|
244 |
+
|
245 |
+
} else {
|
246 |
|
|
|
247 |
exit( 'DataBase was not found' );
|
248 |
+
|
249 |
+
}
|
250 |
|
251 |
//Delete unexpected data form the POST data.
|
252 |
+
//設定可能なデータだけを抽出 (送信ボタンのデータなどは削除)
|
253 |
foreach ( $P as $key => $v ) {
|
254 |
|
255 |
+
if ( !in_array( $key, $db_data_key) ) {
|
256 |
|
257 |
unset( $P[ $key ] );
|
258 |
|
class/ssp_output.php
CHANGED
@@ -194,9 +194,9 @@ class SSP_Output {
|
|
194 |
break;
|
195 |
|
196 |
case $is_[ 'singular' ] :
|
197 |
-
$
|
198 |
-
if ( $
|
199 |
-
$title = $
|
200 |
} else {
|
201 |
$pt = self::$obj->post_type;
|
202 |
$title = SSP_Data::$settings[ $pt.'_title' ];
|
@@ -205,18 +205,21 @@ class SSP_Output {
|
|
205 |
|
206 |
case $is_[ 'category' ] :
|
207 |
|
208 |
-
$
|
|
|
209 |
break;
|
210 |
|
211 |
case $is_[ 'tag' ] :
|
212 |
|
213 |
-
$
|
|
|
214 |
break;
|
215 |
|
216 |
case $is_[ 'tax' ] :
|
217 |
|
|
|
218 |
$term = self::$obj->taxonomy;
|
219 |
-
$title = SSP_Data::$settings[ $term.'_title' ];
|
220 |
break;
|
221 |
|
222 |
case $is_[ 'pt_archive' ] :
|
@@ -271,9 +274,9 @@ class SSP_Output {
|
|
271 |
|
272 |
case $is_[ 'singular' ] :
|
273 |
|
274 |
-
$
|
275 |
-
if ( $
|
276 |
-
$robots = $
|
277 |
} else {
|
278 |
$pt = self::$obj->post_type;
|
279 |
$is_noindex = SSP_Data::$settings[ $pt.'_noindex' ];
|
@@ -283,21 +286,37 @@ class SSP_Output {
|
|
283 |
|
284 |
case $is_[ 'category' ] :
|
285 |
|
286 |
-
$
|
287 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
288 |
break;
|
289 |
|
290 |
case $is_[ 'tag' ] :
|
291 |
|
292 |
-
$
|
293 |
-
|
|
|
|
|
|
|
|
|
|
|
294 |
break;
|
295 |
|
296 |
case $is_[ 'tax' ] :
|
297 |
|
298 |
-
$
|
299 |
-
|
300 |
-
|
|
|
|
|
|
|
|
|
|
|
301 |
break;
|
302 |
|
303 |
case $is_[ 'pt_archive' ] :
|
@@ -350,7 +369,7 @@ class SSP_Output {
|
|
350 |
if( $is_[ 'singular' ] ) {
|
351 |
|
352 |
//メタボックスが入力されていれば上書きする
|
353 |
-
$metabox_keyword = get_post_meta(self::$obj->ID, SSP_MetaBox::
|
354 |
if ( $metabox_keyword ) {
|
355 |
$keyword = $metabox_keyword;
|
356 |
}
|
@@ -379,7 +398,7 @@ class SSP_Output {
|
|
379 |
|
380 |
case $is_[ 'singular' ] :
|
381 |
|
382 |
-
$metabox_desc = get_post_meta( self::$obj->ID, SSP_MetaBox::
|
383 |
|
384 |
if ( $metabox_desc !== "" ) {
|
385 |
//メタボックスが入力されていれば優先
|
@@ -392,7 +411,8 @@ class SSP_Output {
|
|
392 |
|
393 |
case $is_[ 'category' ] :
|
394 |
|
395 |
-
$
|
|
|
396 |
break;
|
397 |
|
398 |
case $is_[ 'tag' ] :
|
@@ -896,69 +916,77 @@ class SSP_Output {
|
|
896 |
*/
|
897 |
private static function replace_snippets ( $str ) {
|
898 |
|
899 |
-
$obj
|
900 |
-
$obj_post_title = ( isset( $obj->post_title ) ) ? $obj->post_title : "";
|
901 |
-
$obj_cat_name = ( isset( $obj->cat_name ) ) ? $obj->cat_name : "";
|
902 |
-
$obj_name = ( isset( $obj->name ) ) ? $obj->name : "";
|
903 |
-
$obj_label = ( isset( $obj->label ) ) ? $obj->label : "";
|
904 |
-
|
905 |
$str = str_replace ( '%_site_title_%', SSP_Data::$site_title, $str );
|
906 |
$str = str_replace ( '%_phrase_%', SSP_Data::$site_catch_phrase, $str );
|
907 |
$str = str_replace ( '%_description_%', SSP_Data::$settings[ 'home_desc' ], $str );
|
908 |
-
$str = str_replace ( '%_page_title_%', $obj_post_title, $str );
|
909 |
-
$str = str_replace ( '%_cat_name_%', $obj_cat_name, $str );
|
910 |
-
$str = str_replace ( '%_tag_name_%', $obj_name, $str );
|
911 |
-
$str = str_replace ( '%_term_name_%', $obj_name, $str );
|
912 |
-
$str = str_replace ( '%_post_type_%', $obj_label, $str );
|
913 |
-
$str = str_replace ( '%_format_name_%', $obj_name, $str );
|
914 |
|
|
|
|
|
|
|
|
|
915 |
|
916 |
-
|
917 |
|
918 |
-
|
919 |
-
|
920 |
-
|
|
|
|
|
|
|
921 |
|
922 |
-
|
923 |
-
}
|
924 |
|
925 |
-
|
|
|
|
|
|
|
926 |
|
927 |
-
$
|
928 |
-
$content = strip_tags( mb_substr( $content, 0, 300 ) );
|
929 |
-
$content = preg_replace( '/(\\n)*( )*/', "", $content );
|
930 |
|
931 |
-
|
|
|
|
|
932 |
|
933 |
-
|
|
|
934 |
|
935 |
-
|
|
|
|
|
|
|
936 |
|
937 |
-
$
|
938 |
-
|
939 |
-
$date = get_query_var( 'year' )."年".get_query_var( 'monthnum' )."月".get_query_var( 'day' )."日";
|
940 |
-
}
|
941 |
-
elseif ( is_month() ) {
|
942 |
-
$date = get_query_var( 'year' )."年".get_query_var( 'monthnum' )."月";
|
943 |
-
}
|
944 |
-
elseif ( is_year() ) {
|
945 |
-
$date = get_query_var( 'year' )."年";
|
946 |
-
}
|
947 |
|
948 |
-
$str
|
949 |
|
950 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
951 |
|
952 |
-
|
953 |
|
954 |
-
|
955 |
|
956 |
-
|
957 |
|
958 |
-
|
959 |
|
960 |
-
|
|
|
|
|
961 |
|
|
|
|
|
|
|
962 |
}
|
963 |
|
964 |
if ( strpos( $str, '%_sep_%' ) !== false ) {
|
194 |
break;
|
195 |
|
196 |
case $is_[ 'singular' ] :
|
197 |
+
$meta_title = get_post_meta(self::$obj->ID, SSP_MetaBox::P_METANAME['title'], true);
|
198 |
+
if ( $meta_title ) {
|
199 |
+
$title = $meta_title;
|
200 |
} else {
|
201 |
$pt = self::$obj->post_type;
|
202 |
$title = SSP_Data::$settings[ $pt.'_title' ];
|
205 |
|
206 |
case $is_[ 'category' ] :
|
207 |
|
208 |
+
$meta_title = get_term_meta(self::$obj->term_id, SSP_MetaBox::T_METANAME['title'], true);
|
209 |
+
$title = $meta_title ?: SSP_Data::$settings[ 'cat_title' ];
|
210 |
break;
|
211 |
|
212 |
case $is_[ 'tag' ] :
|
213 |
|
214 |
+
$meta_title = get_term_meta(self::$obj->term_id, SSP_MetaBox::T_METANAME['title'], true);
|
215 |
+
$title = $meta_title ?: SSP_Data::$settings[ 'tag_title' ];
|
216 |
break;
|
217 |
|
218 |
case $is_[ 'tax' ] :
|
219 |
|
220 |
+
$meta_title = get_term_meta(self::$obj->term_id, SSP_MetaBox::T_METANAME['title'], true);
|
221 |
$term = self::$obj->taxonomy;
|
222 |
+
$title = $meta_title ?: SSP_Data::$settings[ $term.'_title' ];
|
223 |
break;
|
224 |
|
225 |
case $is_[ 'pt_archive' ] :
|
274 |
|
275 |
case $is_[ 'singular' ] :
|
276 |
|
277 |
+
$meta_robots = get_post_meta(self::$obj->ID, SSP_MetaBox::P_METANAME['robots'], true);
|
278 |
+
if ( $meta_robots ) {
|
279 |
+
$robots = $meta_robots;
|
280 |
} else {
|
281 |
$pt = self::$obj->post_type;
|
282 |
$is_noindex = SSP_Data::$settings[ $pt.'_noindex' ];
|
286 |
|
287 |
case $is_[ 'category' ] :
|
288 |
|
289 |
+
$meta_robots = get_term_meta(self::$obj->term_id, SSP_MetaBox::T_METANAME['robots'], true);
|
290 |
+
if ( $meta_robots ) {
|
291 |
+
$robots = $meta_robots;
|
292 |
+
} else {
|
293 |
+
$is_noindex = SSP_Data::$settings[ 'cat_noindex' ];
|
294 |
+
$robots = $is_noindex ? 'noindex' : "";
|
295 |
+
}
|
296 |
+
|
297 |
break;
|
298 |
|
299 |
case $is_[ 'tag' ] :
|
300 |
|
301 |
+
$meta_robots = get_term_meta(self::$obj->term_id, SSP_MetaBox::T_METANAME['robots'], true);
|
302 |
+
if ( $meta_robots ) {
|
303 |
+
$robots = $meta_robots;
|
304 |
+
} else {
|
305 |
+
$is_noindex = SSP_Data::$settings[ 'tag_noindex' ];
|
306 |
+
$robots = $is_noindex ? 'noindex' : "";
|
307 |
+
}
|
308 |
break;
|
309 |
|
310 |
case $is_[ 'tax' ] :
|
311 |
|
312 |
+
$meta_robots = get_term_meta(self::$obj->term_id, SSP_MetaBox::T_METANAME['robots'], true);
|
313 |
+
if ( $meta_robots ) {
|
314 |
+
$robots = $meta_robots;
|
315 |
+
} else {
|
316 |
+
$term = self::$obj->taxonomy;
|
317 |
+
$is_noindex = SSP_Data::$settings[ $term.'_noindex' ];
|
318 |
+
$robots = $is_noindex ? 'noindex' : "";
|
319 |
+
}
|
320 |
break;
|
321 |
|
322 |
case $is_[ 'pt_archive' ] :
|
369 |
if( $is_[ 'singular' ] ) {
|
370 |
|
371 |
//メタボックスが入力されていれば上書きする
|
372 |
+
$metabox_keyword = get_post_meta(self::$obj->ID, SSP_MetaBox::P_METANAME['keyword'], true);
|
373 |
if ( $metabox_keyword ) {
|
374 |
$keyword = $metabox_keyword;
|
375 |
}
|
398 |
|
399 |
case $is_[ 'singular' ] :
|
400 |
|
401 |
+
$metabox_desc = get_post_meta( self::$obj->ID, SSP_MetaBox::P_METANAME['description'], true );
|
402 |
|
403 |
if ( $metabox_desc !== "" ) {
|
404 |
//メタボックスが入力されていれば優先
|
411 |
|
412 |
case $is_[ 'category' ] :
|
413 |
|
414 |
+
$meta_description = get_term_meta(self::$obj->term_id, SSP_MetaBox::T_METANAME['description'], true);
|
415 |
+
$description = $meta_description ?: SSP_Data::$settings[ 'cat_desc' ];
|
416 |
break;
|
417 |
|
418 |
case $is_[ 'tag' ] :
|
916 |
*/
|
917 |
private static function replace_snippets ( $str ) {
|
918 |
|
919 |
+
$obj = self::$obj;
|
|
|
|
|
|
|
|
|
|
|
920 |
$str = str_replace ( '%_site_title_%', SSP_Data::$site_title, $str );
|
921 |
$str = str_replace ( '%_phrase_%', SSP_Data::$site_catch_phrase, $str );
|
922 |
$str = str_replace ( '%_description_%', SSP_Data::$settings[ 'home_desc' ], $str );
|
|
|
|
|
|
|
|
|
|
|
|
|
923 |
|
924 |
+
if ( is_singular() ) {
|
925 |
+
//投稿ページ
|
926 |
+
$title = get_the_title();
|
927 |
+
$str = str_replace ( '%_page_title_%', $title, $str );
|
928 |
|
929 |
+
if ( strpos( $str, '%_page_contents_%' ) !== false ) {
|
930 |
|
931 |
+
$content = $obj->post_content;
|
932 |
+
$content = strip_shortcodes( strip_tags( $content ) );
|
933 |
+
$content = str_replace(array("\r\n", "\r", "\n", " "), '', $content); //改行削除
|
934 |
+
// $content = htmlspecialchars( $content, ENT_QUOTES, 'UTF-8' ); //出力時にesc_
|
935 |
+
$content = mb_substr( $content, 0, 300 );
|
936 |
+
$str = str_replace ( '%_page_contents_%', $content, $str );
|
937 |
|
938 |
+
}
|
|
|
939 |
|
940 |
+
} elseif ( is_category() || is_tag() || is_tax() ) {
|
941 |
+
//タームアーカイブ
|
942 |
+
$str = str_replace ( array('%_cat_name_%','%_tag_name_%','%_term_name_%'), $obj->name, $str );
|
943 |
+
$str = str_replace ('%_term_description_%', strip_shortcodes( $obj->description ), $str );
|
944 |
|
945 |
+
if ( strpos( $str, '%_tax_name_%' ) !== false ) {
|
|
|
|
|
946 |
|
947 |
+
$taxonomy_slug = ( isset( $obj->taxonomy ) ) ? $obj->taxonomy : "";
|
948 |
+
$taxonomy_var = get_taxonomy($taxonomy_slug);
|
949 |
+
$taxonomy_label = ( $taxonomy_var ) ? $taxonomy_var->label : "";
|
950 |
|
951 |
+
$str = str_replace ( '%_tax_name_%', $taxonomy_label, $str );
|
952 |
+
}
|
953 |
|
954 |
+
} else {
|
955 |
+
//その他のページ
|
956 |
+
$obj_name = ( isset( $obj->name ) ) ? $obj->name : "";
|
957 |
+
$obj_label = ( isset( $obj->label ) ) ? $obj->label : "";
|
958 |
|
959 |
+
$str = str_replace ( '%_post_type_%', $obj_label, $str );
|
960 |
+
$str = str_replace ( '%_format_name_%', $obj_name, $str );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
961 |
|
962 |
+
if ( strpos( $str, '%_date_%' ) !== false ) {
|
963 |
|
964 |
+
$date = "";
|
965 |
+
if ( is_day() ) {
|
966 |
+
$date = get_query_var( 'year' )."年".get_query_var( 'monthnum' )."月".get_query_var( 'day' )."日";
|
967 |
+
}
|
968 |
+
elseif ( is_month() ) {
|
969 |
+
$date = get_query_var( 'year' )."年".get_query_var( 'monthnum' )."月";
|
970 |
+
}
|
971 |
+
elseif ( is_year() ) {
|
972 |
+
$date = get_query_var( 'year' )."年";
|
973 |
+
}
|
974 |
|
975 |
+
$str = str_replace ('%_date_%', $date, $str);
|
976 |
|
977 |
+
}
|
978 |
|
979 |
+
if ( strpos( $str, '%_author_name_%' ) !== false ) {
|
980 |
|
981 |
+
$str = str_replace ( '%_author_name_%', get_user_meta( 1, 'nickname', true ), $str );
|
982 |
|
983 |
+
}
|
984 |
+
|
985 |
+
if ( strpos( $str, '%_search_phrase_%' ) !== false ) {
|
986 |
|
987 |
+
$str = str_replace ( '%_search_phrase_%', get_search_query(), $str );
|
988 |
+
|
989 |
+
}
|
990 |
}
|
991 |
|
992 |
if ( strpos( $str, '%_sep_%' ) !== false ) {
|
inc/page_help.php
CHANGED
@@ -13,6 +13,7 @@
|
|
13 |
'cat_name' => 'カテゴリー名',
|
14 |
'tag_name' => 'タグ名',
|
15 |
'term_name' => 'ターム名',
|
|
|
16 |
'tax_name' => 'タクソノミー名',
|
17 |
'post_type' => '投稿タイプ名',
|
18 |
'page_contents' => 'ページコンテンツ ( get_the_content() で取得できる内容を元にした内容が入ります )',
|
@@ -20,7 +21,6 @@
|
|
20 |
'author_name' => '著者名( ニックネーム )',
|
21 |
'search_phrase' => '検索ワード',
|
22 |
'format_name' => '投稿フォーマット名',
|
23 |
-
|
24 |
'sep' => '区切り文字',
|
25 |
];
|
26 |
?>
|
13 |
'cat_name' => 'カテゴリー名',
|
14 |
'tag_name' => 'タグ名',
|
15 |
'term_name' => 'ターム名',
|
16 |
+
'term_description' => 'タームの説明',
|
17 |
'tax_name' => 'タクソノミー名',
|
18 |
'post_type' => '投稿タイプ名',
|
19 |
'page_contents' => 'ページコンテンツ ( get_the_content() で取得できる内容を元にした内容が入ります )',
|
21 |
'author_name' => '著者名( ニックネーム )',
|
22 |
'search_phrase' => '検索ワード',
|
23 |
'format_name' => '投稿フォーマット名',
|
|
|
24 |
'sep' => '区切り文字',
|
25 |
];
|
26 |
?>
|
inc/parts/tab_ogp.php
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
<tbody>
|
9 |
<tr valign="top">
|
10 |
<th scope="row">
|
11 |
-
<label for="singular_label">og:image
|
12 |
</th>
|
13 |
<td>
|
14 |
<input type="hidden" name="og_image" id="media_url" value="<?php echo esc_attr( SSP_Data::$ogp['og_image'] ); ?>" />
|
@@ -24,8 +24,11 @@
|
|
24 |
<button type="button" name="media_btn" id="media_btn" class="button button-primary">画像の選択</button>
|
25 |
<button type="button" name="crear_btn" id="crear_btn" class="button">クリア</button>
|
26 |
<p class="ssp_desc">
|
27 |
-
|
28 |
-
|
|
|
|
|
|
|
29 |
</p>
|
30 |
</td>
|
31 |
</tr>
|
8 |
<tbody>
|
9 |
<tr valign="top">
|
10 |
<th scope="row">
|
11 |
+
<label for="singular_label">og:image デフォルト画像</label>
|
12 |
</th>
|
13 |
<td>
|
14 |
<input type="hidden" name="og_image" id="media_url" value="<?php echo esc_attr( SSP_Data::$ogp['og_image'] ); ?>" />
|
24 |
<button type="button" name="media_btn" id="media_btn" class="button button-primary">画像の選択</button>
|
25 |
<button type="button" name="crear_btn" id="crear_btn" class="button">クリア</button>
|
26 |
<p class="ssp_desc">
|
27 |
+
<br>
|
28 |
+
サイト全体のデフォルト設定です。<br>
|
29 |
+
投稿ページ(<small>投稿・固定ページ・カスタム投稿タイプ</small>)では、「アイキャッチ画像」が優先されます。
|
30 |
+
<br><br>
|
31 |
+
Facebookでは画像サイズに1200×630pxを推奨しています。
|
32 |
</p>
|
33 |
</td>
|
34 |
</tr>
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: looswebstudio
|
|
3 |
Donate link: https://loos-web-studio.com/
|
4 |
Tags: SEO,meta,analytics,webmaster,simple,japan
|
5 |
Requires at least: 4.6
|
6 |
-
Tested up to: 5.
|
7 |
-
Stable tag: 1.2.
|
8 |
Requires PHP: 5.6
|
9 |
License: GPLv2 or later
|
10 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
@@ -108,6 +108,13 @@ wp_head内( `_wp_render_title_tag` )で出力される`title`タグは削除す
|
|
108 |
|
109 |
|
110 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
= 1.2.0 =
|
112 |
WordPress最新版への対応
|
113 |
|
3 |
Donate link: https://loos-web-studio.com/
|
4 |
Tags: SEO,meta,analytics,webmaster,simple,japan
|
5 |
Requires at least: 4.6
|
6 |
+
Tested up to: 5.2.1
|
7 |
+
Stable tag: 1.2.1
|
8 |
Requires PHP: 5.6
|
9 |
License: GPLv2 or later
|
10 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
108 |
|
109 |
|
110 |
== Changelog ==
|
111 |
+
= 1.2.1 =
|
112 |
+
- カテゴリー・タグの各タームのアーカイブページごとに title / description / robots の設定ができるようになりました。
|
113 |
+
- スニペットタグ「%_term_description_%」を追加。
|
114 |
+
- タームアーカイブのdescriptionのデフォルトを「%_term_description_%」に変更
|
115 |
+
- descriptionからショーコードを排除する仕様に変更
|
116 |
+
|
117 |
+
|
118 |
= 1.2.0 =
|
119 |
WordPress最新版への対応
|
120 |
|
seo-simple-pack.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: SEO SIMPLE PACK
|
4 |
Plugin URI: https://wemo.tech/1670
|
5 |
Description: シンプルなSEOプラグイン。ページ種別・投稿ごとにmetaタグやOGPタグを簡単に設定・カスタマイズできます。
|
6 |
-
Version: 1.2.
|
7 |
Author: LOOS WEB STUDIO
|
8 |
Author URI: https://loos-web-studio.com/
|
9 |
License: GPL2
|
@@ -56,7 +56,7 @@ if ( (double) $phpver < 5.6 ) {
|
|
56 |
* 定数宣言
|
57 |
*/
|
58 |
if ( ! defined( 'SSP_VERSION' ) ) {
|
59 |
-
define( 'SSP_VERSION', '1.2.
|
60 |
}
|
61 |
if ( ! defined( 'SSP_FILE' ) ) {
|
62 |
define( 'SSP_FILE', __FILE__ );
|
3 |
Plugin Name: SEO SIMPLE PACK
|
4 |
Plugin URI: https://wemo.tech/1670
|
5 |
Description: シンプルなSEOプラグイン。ページ種別・投稿ごとにmetaタグやOGPタグを簡単に設定・カスタマイズできます。
|
6 |
+
Version: 1.2.1
|
7 |
Author: LOOS WEB STUDIO
|
8 |
Author URI: https://loos-web-studio.com/
|
9 |
License: GPL2
|
56 |
* 定数宣言
|
57 |
*/
|
58 |
if ( ! defined( 'SSP_VERSION' ) ) {
|
59 |
+
define( 'SSP_VERSION', '1.2.1' );
|
60 |
}
|
61 |
if ( ! defined( 'SSP_FILE' ) ) {
|
62 |
define( 'SSP_FILE', __FILE__ );
|