PHP WordPress 自動化

WordPressでX(Twitter)ポスト用のライブ情報の文章を自動作成する

前回記事『WordPressでライブ情報をサイドバーに自動で表示する』と前々回記事『Webサイトでライブ情報をデータベース化して自動表示する-PHP、MySQL』の続きです。

せっかくライブ情報をデータベースに登録してるんで、Xのポスト用のライブ情報の文章を自動で作成するようにしました。

自動化するきっかけはこちら↓

注意

私の覚え書きなので、コードはこのまま使えません。

ショートコードの内容を変更する

前回記事の『WordPressでライブ情報をサイドバーに自動で表示する』で賢威の「Theme functions(functions.php)」の内容はブログのサイドバーと記事下のライブのお知らせ用だったので、ショートコードを改変します。

function get_sc_live_info($kbn) {
	global $wpdb;
	$today = date("Ymd");
  $data = array();
  $week = array("日", "月", "火", "水", "木", "金", "土");
	$data = $wpdb->get_results("SELECT * 
								              FROM live_sche 
									              LEFT OUTER JOIN m_live_place ON live_sche.live_place_id = m_live_place.live_place_id 
								              WHERE live_sche.live_date >= '$today'");
	ob_start();

  $txt = '';

	if(count($data) > 0){
		foreach($data as $key => $dt) {
			$y = intval(substr($dt->live_date, 0, 4));
			$m = intval(substr($dt->live_date, 4, 2));
			$d = intval(substr($dt->live_date, 6, 2));
			$w = $week[date("w",mktime(0,0,0,$m,$d,$y))];
			$adv = number_format($dt->advance);
			$door = number_format($dt->at_the_door);
			$stream = number_format($dt->stream);
			$one_drink = number_format($dt->one_drink);
			$img_url = "/live/".$y."/img/".$dt->live_date.".webp";
			if($key > 0){
        if($kbn[0] == 'side' OR $kbn[0] == 'kiji_bottom'){
          $txt .= "<p class=\"al-c\">----------------</p>";
        }else{
          $txt .= "<p> </p>";
        }
			}
			if($kbn[0] == 'side'){
				$width_size = "80%";
			}elseif($kbn[0] == 'kiji_bottom'){
				$width_size = "50%";
			}
			if($kbn[0] == 'side' OR $kbn[0] == 'kiji_bottom'){
				$txt .= "<p class=\"al-c\"><span class=\"b big\">{$y}.</span><span class=\"b big2\">{$m}.{$d}</span>({$w})</p>";
				$txt .= "<p class=\"al-c\"><a href=\"https://vasofatum.jp/live/\" target=\"_blank\"><span class=\"b big\">『{$dt->live_name}』</span></a><br>{$dt->live_place}</p>";
				$txt .= "<p class=\"al-c\">OPEN {$dt->live_open} / START {$dt->live_start}<br>";
        if($adv>0){
          $txt .= "ADV &yen{$adv} / DAY &yen{$door}<br>";
        }
        if($one_drink>0){
          $txt .= "※別途1ドリンク &yen{$one_drink}<br>";
        }
        if($stream>0){
          $txt .= "ツイキャス配信 &yen{$stream}<br>";
        }
        $txt .= "</p>";
				$txt .= "<p style=\"text-align:center;\"><img src=\"https://vasofatum.jp/{$img_url}\" alt=\"{$dt->live_name}\" style=\"width:{$width_size};\"></p>";
			}elseif($kbn[0] == 'x_post'){
        $txt .= "<div style=\"padding:20px;border:solid gray 1px;cursor: pointer;\" id=\"div_vars_x_post_{$dt->live_date}\" onclick=\"vars_x_post('{$dt->live_date}')\">ライブのお知らせ  ad";
        $txt .= "<br><br>{$y}.{$m}.{$d}({$w})";
        $txt .= "<br>『 {$dt->live_name} 』";
        $txt .= "<br><br>会場:{$dt->live_place}";
        $txt .= "<br>OPEN {$dt->live_open} / START {$dt->live_start}";
        if($adv>0){
          $txt .= "<br><br>ADV &yen{$adv} / DAY &yen{$door}";
        }
        if($one_drink>0){
          $txt .= "<br>※別途1ドリンク &yen{$one_drink}";
        }
        if($stream>0){
          $txt .= "<br>ツイキャス配信 &yen{$stream}";
        }
        $txt .= "<br><br>< 出演 >";
        $txt .= "<br>{$dt->booking_band}";
        $txt .= "</div>";
      }
		}
	}else{
		$txt = "<p class=\"al-c m40-t\">ライブは未定です</p>";
	}

  if($txt != ''){
    echo $txt;
  }
	return ob_get_clean();
}

add_shortcode('sc_live_info', 'get_sc_live_info');

追加したのは、ショートコードの引数の内容をXポスト用の「x_post」を追加して、どう表示したいかを書き込みました。

ポスト用文章自動作成用記事を作る

ブログの記事にショートコードを下記のように書きました。

[sc_live_info x_post]

x_post」の部分が引数です。

私だけが記事の閲覧が出来ればいいので、パスワードの設定もします。

これで、完成です♪

-PHP, WordPress, 自動化
-, , , , , , ,