WordPressでロトAPIを使用して当選番号を表示する方法

Last Updated:2024年06月16日| コメントを残す

WordPress サイトに最近の宝くじ当選番号を表示したい場合は、Rodo APIを使用して当選番号をクロールできます。この記事では、今回のロト当選番号と過去3回の宝くじ当選番号を表示する方法について説明します。

WordPressでロトAPIを使用して当選番号を表示する方法

ロトAPIを使用してロト当選番号をクロールする方法が次の記事に紹介されています。

Pythonで書かれたサンプルコードを参照できます。

上記の記事に示されているPythonコードを適用して WordPressに今回のロト当選番号を表示できます。

最新回折の宝くじ当選番号

先週の当選番号をクロールして表示したい場合は、以下のコードをテーマ関数ファイルに追加してください。なるべく チャイルドテーマ(子テーマ)を作成して子テーマ内の関数ファイル(functions.php)に追加しなければ、テーマが更新されても変更や変更は消えません。

// 최신 회차 당첨번호를 가져오는 함수

function get_max_draw_number() {
	$url = "https://dhlottery.co.kr/common.do?method=main";
	$html = file_get_contents($url);

	if ($html === false) {
		return null;
	}

	// 정규식을 사용하여 회차 번호를 추출합니다.
	if (preg_match('/id="lottoDrwNo">(\d+)<\/strong>/', $html, $matches)) {
		return intval($matches[1]);
	} else {
		return null;
	}
}

// 주어진 회차 번호로부터 로또번호를 가져오는 함수
function get_lotto_numbers($drawNumber) {
	$url = "https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo={$drawNumber}";
	$ch = curl_init();
	
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	
	$response = curl_exec($ch);
	curl_close($ch);
	
	$data = json_decode($response, true);
	
	if ($data['returnValue'] == 'success') {
		return array(
			'drawNo' => $data['drwNo'],
			'date' => date("Y년 m월 d일", strtotime($data['drwNoDate'])),
			'lottoNumb' => array(
				$data['drwtNo1'], 
				$data['drwtNo2'], 
				$data['drwtNo3'], 
				$data['drwtNo4'], 
				$data['drwtNo5'], 
				$data['drwtNo6']
			),
			'bonusNumb' => $data['bnusNo']
		);
	} else {
		return null;
	}
}

// 숏코드 핸들러 함수
function display_latest_lotto_numbers() {
	$output = '<div class="latest-lotto"><h2>최근 로또 당첨번호</h2>';
	
	// 최신 회차 번호를 가져오기
	$latestDrawNumber = get_max_draw_number();
	if ($latestDrawNumber === null) {
		$output .= "<p>Failed to retrieve the latest draw number.</p>";
	} else {
		// 최신 회차 로또번호 가져오기
		$lottoNumbers = get_lotto_numbers($latestDrawNumber);

		if ($lottoNumbers) {
			$output .= "<h3>" . $lottoNumbers['drawNo'] . "회(" . $lottoNumbers['date'] . ")</h3>";
			$output .= "<p>";
			foreach ($lottoNumbers['lottoNumb'] as $number) {
				$output .= "<span class='lotto-number'>" . $number . "</span> ";
			}
			$output .= "(보너스: <span class='lotto-number bonus'>" . $lottoNumbers['bonusNumb'] . "</span>)</p>";
		} else {
			$output .= "<p>Failed to retrieve lotto numbers for draw " . $latestDrawNumber . ".</p>";
		}
	}

	$output .= '</div>';

	return $output;
}

// 숏코드 등록
add_shortcode('latest_lotto_numbers', 'display_latest_lotto_numbers');

FTP / SFTPに接続してテーマファイル(例:/wp-content/themes/チャイルド-テーマ-名前/functions.php)に追加してください。 テーマファイルエディタは、できるだけ無効にすることが望ましい。

過去3回の当選番号を表示する

過去3回目の宝くじ当選番号をリストしたい場合は、次のコードでテストできます。

// functions.php 파일에 추가

// 최신 회차 번호를 가져오는 함수
function get_max_draw_number() {
	$url = "https://dhlottery.co.kr/common.do?method=main";
	$html = file_get_contents($url);

	if ($html === false) {
		return null;
	}

	// 정규식을 사용하여 회차 번호를 추출합니다.
	if (preg_match('/id="lottoDrwNo">(\d+)<\/strong>/', $html, $matches)) {
		return intval($matches[1]);
	} else {
		return null;
	}
}

// 주어진 회차 번호로부터 로또번호를 가져오는 함수
function get_lotto_numbers($drawNumber) {
	$url = "https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo={$drawNumber}";
	$ch = curl_init();
	
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	
	$response = curl_exec($ch);
	curl_close($ch);
	
	$data = json_decode($response, true);
	
	if ($data['returnValue'] == 'success') {
		return array(
			'drawNo' => $data['drwNo'],
			'date' => date("Y년 m월 d일", strtotime($data['drwNoDate'])),
			'lottoNumb' => array(
				$data['drwtNo1'], 
				$data['drwtNo2'], 
				$data['drwtNo3'], 
				$data['drwtNo4'], 
				$data['drwtNo5'], 
				$data['drwtNo6']
			),
			'bonusNumb' => $data['bnusNo']
		);
	} else {
		return null;
	}
}

// 숏코드 핸들러 함수
function display_latest_lotto_numbers() {
	$output = '<div class="latest-lotto"><h2>최근 3회의 로또 당첨번호</h2>';
	
	// 최신 회차 번호를 가져오기
	$latestDrawNumber = get_max_draw_number();
	if ($latestDrawNumber === null) {
		$output .= "<p>Failed to retrieve the latest draw number.</p>";
	} else {
		// 최신 3회 로또번호 가져오기
		for ($i = 0; $i < 3; $i++) {
			$drawNumber = $latestDrawNumber - $i;
			$lottoNumbers = get_lotto_numbers($drawNumber);

			if ($lottoNumbers) {
				$output .= "<h3>" . $lottoNumbers['drawNo'] . "회(" . $lottoNumbers['date'] . ")</h3>";
				$output .= "<p>";
				foreach ($lottoNumbers['lottoNumb'] as $number) {
					$output .= "<span class='lotto-number'>" . $number . "</span> ";
				}
				$output .= "(보너스: <span class='lotto-number bonus'>" . $lottoNumbers['bonusNumb'] . "</span>)</p>";
			} else {
				$output .= "<p>Failed to retrieve lotto numbers for draw " . $drawNumber . ".</p>";
			}
		}
	}

	$output .= '</div>';

	return $output;
}

// 숏코드 등록
add_shortcode('latest_lotto_numbers', 'display_latest_lotto_numbers');

このコードを適用して、差別当選番号を表示することも可能です。

ショートコードで番号を表示する

ロト番号を表示したい場所に、次の形式でショートコードを入力します。

[latest_lotto_numbers]

上記のコードでテストしてみると、すべてうまく動作しました。状況に応じてコードを適切に修正してください。

スタイルはCSSを使用して調整してください。たとえば、カラーサークル内に番号を表示したい場合 デザイン » カスタマイズ » 追加のCSSに次のカスタムCSSコードを入力してテストします。

.lotto-number {
	display: inline-block;
	width: 40px;
	height: 40px;
	line-height: 40px;
	margin: 5px;
	border-radius: 50%;
	background-color: #f1c40f;
	color: #fff;
	text-align: center;
	font-weight: bold;
	font-size: 18px;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
	transition: background-color 0.3s, box-shadow 0.3s;
}

.lotto-number.bonus {
	background-color: #e74c3c;
}

.lotto-number:hover {
	background-color: #e2b707;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
}

上記のコードを使用して、ロト番号ジェネレータページに最近3回当選番号を表示してみました。

道路番号抽出器の下には、次のようなレイアウトで当選番号が表示されます。

WordPressでロトAPIを使用して当選番号を表示する

参照


コメントを残す

コメント