Pz-LinkCard - Version 1.7.9

Version Description

Download this release

Release Info

Developer poporon
Plugin Icon 128x128 Pz-LinkCard
Version 1.7.9
Comparing to
See all releases

Code changes from version 1.7.8 to 1.7.9

lib/pz-linkcard-style.php CHANGED
@@ -24,7 +24,9 @@
24
 
25
  $file_text = file_get_contents($temp_name);
26
  if ($file_text) {
27
-
 
 
28
  // オマケ書式
29
  switch ($this->options['special-format']) {
30
  case 'LkC': // Pz-LkC Default
24
 
25
  $file_text = file_get_contents($temp_name);
26
  if ($file_text) {
27
+ // バージョン
28
+ $file_text = str_replace('/*VERSION*/', $this->options['plugin-version'], $file_text );
29
+
30
  // オマケ書式
31
  switch ($this->options['special-format']) {
32
  case 'LkC': // Pz-LkC Default
pz-linkcard.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Pz-LinkCard
4
  Plugin URI: http://poporon.poponet.jp/pz-linkcard
5
  Description: リンクをカード形式で表示します。
6
- Version: 1.7.8
7
  Author: poporon
8
  Author URI: http://poporon.poponet.jp
9
  License: GPLv2 or later
@@ -122,7 +122,7 @@ class Pz_LinkCard {
122
  'presence' => null,
123
  'plugin-link' => null,
124
  'plugin-name' => 'Pz-LinkCard',
125
- 'plugin-version' => '1.7.8',
126
  'plugin-url' => 'http://poporon.poponet.jp/pz-linkcard',
127
  'pz-hbc-options' => null,
128
  'debug-time' => null
@@ -148,8 +148,6 @@ class Pz_LinkCard {
148
  // DB
149
  global $wpdb;
150
  $this->db_name = $wpdb->prefix.'pz_linkcard';
151
-
152
- echo 'db_name='.$this->db_name.'<br>';
153
 
154
  // バージョンが違っていたら、DBとオプションを更新する
155
  if ($this->options['plugin-version'] <> $this->defaults['plugin-version']) {
@@ -271,10 +269,17 @@ echo 'db_name='.$this->db_name.'<br>';
271
 
272
  // キャッシュやリンク先からリンクカードのHTMLを生成
273
  function pz_GetHTML($atts, $content = null) {
 
 
 
 
274
  $url = $this->pz_TrimURL( $atts['url'] );
275
  if (!isset($url) || $url == '' ) {
276
  return null;
277
  }
 
 
 
278
 
279
  // モバイルチェック
280
  if (function_exists('wp_is_mobile') && wp_is_mobile()) {
@@ -282,6 +287,9 @@ echo 'db_name='.$this->db_name.'<br>';
282
  } else {
283
  $is_mobile = false;
284
  }
 
 
 
285
 
286
  // リンク先URLからドメイン名を抽出
287
  if (preg_match('{https?://(.+?)/}i', $url.'/',$m)) {
@@ -303,6 +311,9 @@ echo 'db_name='.$this->db_name.'<br>';
303
  } else {
304
  $link_type = 0; // 外部サイト
305
  }
 
 
 
306
 
307
  // モバイルかPCかのクラス名を追加
308
  $class_id = 'linkcard';
@@ -322,6 +333,9 @@ echo 'db_name='.$this->db_name.'<br>';
322
  $data_id = $data['id'];
323
  $url = $data['url'];
324
  }
 
 
 
325
 
326
  // 内部リンクの処理
327
  if ( $link_type ) {
@@ -334,10 +348,22 @@ echo 'db_name='.$this->db_name.'<br>';
334
  $nofollow = '';
335
 
336
  // キャッシュが無い、もしくは常に最新を取得する、もしくは強制取得
337
- if ( is_null($data_id) || $this->options['in-get'] <> 2 || ( isset($atts['force']) && $atts['force'] == true ) ) {
 
 
 
338
  $data = $this->pz_GetPost( $data );
339
  $data['link_type'] = 1;
 
 
 
340
  $result = $this->pz_SetCache( $data );
 
 
 
 
 
 
341
  }
342
  }
343
 
@@ -354,6 +380,9 @@ echo 'db_name='.$this->db_name.'<br>';
354
 
355
  // キャッシュが無い、もしくは強制取得
356
  if ( is_null($data_id) || ( isset($atts['force']) && $atts['force'] == true ) ) {
 
 
 
357
  $result = $this->pz_GetCURL( $data );
358
  if ( isset($result) && is_array($result) && isset($result['url']) ) {
359
  $data = $result;
@@ -860,6 +889,9 @@ echo 'db_name='.$this->db_name.'<br>';
860
 
861
  // 記事内容
862
  $post_id = url_to_postid( $data['url'] ); // 記事IDを取得
 
 
 
863
  if ( $post_id ) {
864
  $result_code = 200; // 外部取得と同じコードをセット
865
  $post = get_post($post_id); // 記事情報
@@ -874,18 +906,30 @@ echo 'db_name='.$this->db_name.'<br>';
874
  }
875
  }
876
  $thumbnail_id = get_post_thumbnail_id( $post_id ); // サムネイル
 
 
 
877
  $attach = wp_get_attachment_image_src( $thumbnail_id , true );
878
  if (isset($attach) && count($attach) && isset($attach[0])) {
879
  $thumbnail = $attach[0];
880
  }
881
  } else {
882
  // カテゴリページ等は内部取得できないので外部取得する
883
- $data = $this->pz_GetCURL( $data );
884
- $title = $data['title'];
885
- $excerpt = $data['excerpt'];
886
- $site_name = $data['site_name'];
887
- $thumbnail = $data['thumbnail'];
888
- $result_code = $data['result_code'];
 
 
 
 
 
 
 
 
 
889
  }
890
 
891
  // タイトル整形
@@ -1132,6 +1176,10 @@ echo 'db_name='.$this->db_name.'<br>';
1132
  $match = null;
1133
  preg_match_all('/<\s*meta\s(?=[^>]*?\b(?:name|property)\s*=\s*(?|"\s*([^"]*?)\s*"|\'\s*([^\']*?)\s*\'|([^"\'>]*?)(?=\s*\/?\s*>|\s\w+\s*=)))[^>]*?\bcontent\s*=\s*(?|"\s*([^"]*?)\s*"|\'\s*([^\']*?)\s*\'|([^"\'>]*?)(?=\s*\/?\s*>|\s\w+\s*=))[^>]*>/is', $html, $match);
1134
  if (isset($match) && is_array($match) && count($match) == 3 && count($match[1]) > 0) {
 
 
 
 
1135
  $tags += array_combine($match[1], $match[2]);
1136
  }
1137
 
3
  Plugin Name: Pz-LinkCard
4
  Plugin URI: http://poporon.poponet.jp/pz-linkcard
5
  Description: リンクをカード形式で表示します。
6
+ Version: 1.7.9
7
  Author: poporon
8
  Author URI: http://poporon.poponet.jp
9
  License: GPLv2 or later
122
  'presence' => null,
123
  'plugin-link' => null,
124
  'plugin-name' => 'Pz-LinkCard',
125
+ 'plugin-version' => '1.7.9',
126
  'plugin-url' => 'http://poporon.poponet.jp/pz-linkcard',
127
  'pz-hbc-options' => null,
128
  'debug-time' => null
148
  // DB
149
  global $wpdb;
150
  $this->db_name = $wpdb->prefix.'pz_linkcard';
 
 
151
 
152
  // バージョンが違っていたら、DBとオプションを更新する
153
  if ($this->options['plugin-version'] <> $this->defaults['plugin-version']) {
269
 
270
  // キャッシュやリンク先からリンクカードのHTMLを生成
271
  function pz_GetHTML($atts, $content = null) {
272
+ if (isset($this->options['debug-time']) && $this->options['debug-time']) {
273
+ echo PHP_EOL.'<!-- Pz-LkC [DEBUG INFORMATION] /-->'.PHP_EOL;
274
+ }
275
+
276
  $url = $this->pz_TrimURL( $atts['url'] );
277
  if (!isset($url) || $url == '' ) {
278
  return null;
279
  }
280
+ if (isset($this->options['debug-time']) && $this->options['debug-time']) {
281
+ echo '<!-- Pz-LkC [URL='.$url.'] /-->'.PHP_EOL;
282
+ }
283
 
284
  // モバイルチェック
285
  if (function_exists('wp_is_mobile') && wp_is_mobile()) {
287
  } else {
288
  $is_mobile = false;
289
  }
290
+ if (isset($this->options['debug-time']) && $this->options['debug-time']) {
291
+ echo '<!-- Pz-LkC [MOBILE='.$is_mobile.'] /-->'.PHP_EOL;
292
+ }
293
 
294
  // リンク先URLからドメイン名を抽出
295
  if (preg_match('{https?://(.+?)/}i', $url.'/',$m)) {
311
  } else {
312
  $link_type = 0; // 外部サイト
313
  }
314
+ if (isset($this->options['debug-time']) && $this->options['debug-time']) {
315
+ echo '<!-- Pz-LkC [TYPE='.$link_type.'] /-->'.PHP_EOL;
316
+ }
317
 
318
  // モバイルかPCかのクラス名を追加
319
  $class_id = 'linkcard';
333
  $data_id = $data['id'];
334
  $url = $data['url'];
335
  }
336
+ if (isset($this->options['debug-time']) && $this->options['debug-time']) {
337
+ echo '<!-- Pz-LkC [CACHE='.$data_id.'] /-->'.PHP_EOL;
338
+ }
339
 
340
  // 内部リンクの処理
341
  if ( $link_type ) {
348
  $nofollow = '';
349
 
350
  // キャッシュが無い、もしくは常に最新を取得する、もしくは強制取得
351
+ if ( is_null($data_id) || ( isset($atts['force']) && $atts['force'] == true ) ) {
352
+ if (isset($this->options['debug-time']) && $this->options['debug-time']) {
353
+ echo '<!-- Pz-LkC [IN-POST] /-->'.PHP_EOL;
354
+ }
355
  $data = $this->pz_GetPost( $data );
356
  $data['link_type'] = 1;
357
+ if (isset($this->options['debug-time']) && $this->options['debug-time']) {
358
+ echo '<!-- Pz-LkC [IN-SET] /-->'.PHP_EOL;
359
+ }
360
  $result = $this->pz_SetCache( $data );
361
+ } elseif ($this->options['in-get'] <> 2) {
362
+ if (isset($this->options['debug-time']) && $this->options['debug-time']) {
363
+ echo '<!-- Pz-LkC [IN-POST] /-->'.PHP_EOL;
364
+ }
365
+ $data = $this->pz_GetPost( $data );
366
+ $data['link_type'] = 1;
367
  }
368
  }
369
 
380
 
381
  // キャッシュが無い、もしくは強制取得
382
  if ( is_null($data_id) || ( isset($atts['force']) && $atts['force'] == true ) ) {
383
+ if (isset($this->options['debug-time']) && $this->options['debug-time']) {
384
+ echo '<!-- Pz-LkC [OUT-CURL] /-->'.PHP_EOL;
385
+ }
386
  $result = $this->pz_GetCURL( $data );
387
  if ( isset($result) && is_array($result) && isset($result['url']) ) {
388
  $data = $result;
889
 
890
  // 記事内容
891
  $post_id = url_to_postid( $data['url'] ); // 記事IDを取得
892
+ if (isset($this->options['debug-time']) && $this->options['debug-time']) {
893
+ echo '<!-- Pz-LkC [PID='.$post_id.'] /-->'.PHP_EOL;
894
+ }
895
  if ( $post_id ) {
896
  $result_code = 200; // 外部取得と同じコードをセット
897
  $post = get_post($post_id); // 記事情報
906
  }
907
  }
908
  $thumbnail_id = get_post_thumbnail_id( $post_id ); // サムネイル
909
+ if (isset($this->options['debug-time']) && $this->options['debug-time']) {
910
+ echo '<!-- Pz-LkC [TID='.$thumbnail_id.'] /-->'.PHP_EOL;
911
+ }
912
  $attach = wp_get_attachment_image_src( $thumbnail_id , true );
913
  if (isset($attach) && count($attach) && isset($attach[0])) {
914
  $thumbnail = $attach[0];
915
  }
916
  } else {
917
  // カテゴリページ等は内部取得できないので外部取得する
918
+ //if (isset($this->options['debug-time']) && $this->options['debug-time']) {
919
+ // echo '<!-- Pz-LkC [IN-CURL] /-->'.PHP_EOL;
920
+ //}
921
+ //$data = $this->pz_GetCURL( $data );
922
+ //$title = $data['title'];
923
+ //$excerpt = $data['excerpt'];
924
+ //$site_name = $data['site_name'];
925
+ //$thumbnail = $data['thumbnail'];
926
+ //$result_code = $data['result_code'];
927
+ // カテゴリページ等は内部取得できないのでサイト名をセットする
928
+ $title = get_bloginfo('name');
929
+ $excerpt = get_bloginfo('description');
930
+ $site_name = get_bloginfo('name');
931
+ $thumbnail = '';
932
+ $result_code = '200';
933
  }
934
 
935
  // タイトル整形
1176
  $match = null;
1177
  preg_match_all('/<\s*meta\s(?=[^>]*?\b(?:name|property)\s*=\s*(?|"\s*([^"]*?)\s*"|\'\s*([^\']*?)\s*\'|([^"\'>]*?)(?=\s*\/?\s*>|\s\w+\s*=)))[^>]*?\bcontent\s*=\s*(?|"\s*([^"]*?)\s*"|\'\s*([^\']*?)\s*\'|([^"\'>]*?)(?=\s*\/?\s*>|\s\w+\s*=))[^>]*>/is', $html, $match);
1178
  if (isset($match) && is_array($match) && count($match) == 3 && count($match[1]) > 0) {
1179
+ foreach ($match[1] as &$m) {
1180
+ $m = strtolower($m);
1181
+ }
1182
+ unset($m);
1183
  $tags += array_combine($match[1], $match[2]);
1184
  }
1185
 
readme.txt CHANGED
@@ -155,6 +155,12 @@ A5.
155
 
156
  == Changelog ==
157
 
 
 
 
 
 
 
158
  Ver1.7.8
159
  * Fixed: Fixed a bug that table is not created.
160
 
155
 
156
  == Changelog ==
157
 
158
+ Ver1.7.8.2
159
+ * Fixed: Fixed a bug that table is not created.
160
+
161
+ * METAタグの名前が大文字が混ざっていると取得できなかったのを修正。(Thanks @J_kindan)
162
+ * 内部リンクが取得できない時に外部アクセスしていたのが高負荷に繋がっていたため、外部アクセスしないように修正。(Thanks @J_kindan)
163
+
164
  Ver1.7.8
165
  * Fixed: Fixed a bug that table is not created.
166
 
templete/pz-linkcard-templete.css CHANGED
@@ -1,4 +1,4 @@
1
- /* [Pz-LkC][1.7.6] CSS */
2
  .linkcard {
3
  /*MARGIN-TOP*/
4
  /*MARGIN-BOTTOM*/
1
+ /* [Pz-LkC][/*VERSION*/] CSS */
2
  .linkcard {
3
  /*MARGIN-TOP*/
4
  /*MARGIN-BOTTOM*/