質問するログイン新規登録

回答編集履歴

3

コメント追加

2019/06/15 05:40

投稿

Tomak
Tomak

スコア1652

answer CHANGED
@@ -12,6 +12,16 @@
12
12
  ```php
13
13
  // function.php
14
14
 
15
+ /**
16
+ * アフィリエイト用タグ出力
17
+ *
18
+ * ◎ショートコード
19
+ * [affiliate 属性名='アフィリエイトID']
20
+ * [affiliate 'アフィリエイトID']
21
+ *
22
+ * @param array $args array('アフィリエイトID') or array('vc_mylinkbox_id' => 'アフィリエイトID')
23
+ * @return string アフィリエイト用HTML文字列
24
+ */
15
25
  add_shortcode('affiliate', function ($args = [])
16
26
  {
17
27
  if (empty($args)) {
@@ -19,9 +29,13 @@
19
29
  }
20
30
 
21
31
  $keys = array_keys($args);
32
+
33
+ // 引数にアフィリエイト属性名(連想配列キー)がない場合「'vc_mylinkbox_id'」を補完
22
34
  $attr = is_numeric($keys[0]) ? 'vc_mylinkbox_id' : $keys[0];
23
- $id = array_shift($args);
24
35
 
36
+ // アフィリエイトID
37
+ $id = array_shift($args);
38
+
25
39
  return '<div '. $attr .'="'. $id .'"></div>';
26
40
  });
27
41
  ```

2

バグ修正2:return の $args も要変更だった

2019/06/15 05:40

投稿

Tomak
Tomak

スコア1652

answer CHANGED
@@ -20,8 +20,9 @@
20
20
 
21
21
  $keys = array_keys($args);
22
22
  $attr = is_numeric($keys[0]) ? 'vc_mylinkbox_id' : $keys[0];
23
+ $id = array_shift($args);
23
24
 
24
- return '<div '. $attr .'="'. $args[0][$attr] .'"></div>';
25
+ return '<div '. $attr .'="'. $id .'"></div>';
25
26
  });
26
27
  ```
27
28
 

1

バグ修正:array_keys($args[0]) → array_keys($args)

2019/06/15 05:26

投稿

Tomak
Tomak

スコア1652

answer CHANGED
@@ -18,7 +18,7 @@
18
18
  return '';
19
19
  }
20
20
 
21
- $keys = array_keys($args[0]);
21
+ $keys = array_keys($args);
22
22
  $attr = is_numeric($keys[0]) ? 'vc_mylinkbox_id' : $keys[0];
23
23
 
24
24
  return '<div '. $attr .'="'. $args[0][$attr] .'"></div>';