/**
* Plugin Name: WP Yahoo RSS (With SEO Delay & Security Hardening)
* Plugin URI: https://gen.caca01.com/
* Description: Wordpress Yahoo RSS feed tweaked for only tyenews.com (Includes SEO Time Delay, Path locking, and Performance fix)
* Version: 1.0.9
* Author: Carter Wu (Final Patch: Route locking + Query Scoping + UTC Time) + Safe Cache Patch
* Author URI: https://gen.caca01.com/
* License: GPL-2.0+
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
* Text Domain: wp-yahoo-rss
*/
if (!defined('ABSPATH')) exit;
const YH_DELAY_MINUTES = 120;
const YH_QUERY_VAR = 'yh_feed_stats';
function yh_register_rewrite_rules() {
add_rewrite_rule('^yahoo-rss(?:/([^/]+))?/?$', 'index.php?' . YH_QUERY_VAR . '=true&type=$matches[1]', 'top');
}
add_filter('query_vars', 'yh_feed_query_vars');
function yh_feed_query_vars($query_vars) {
$query_vars[] = YH_QUERY_VAR;
$query_vars[] = 'type';
return $query_vars;
}
register_activation_hook(__FILE__, 'yh_feed_activate');
function yh_feed_activate() {
yh_register_rewrite_rules();
flush_rewrite_rules(false);
}
register_deactivation_hook(__FILE__, 'yh_feed_deactivate');
function yh_feed_deactivate() {
flush_rewrite_rules(false);
}
add_action('init', 'yh_feed_init');
function yh_feed_init() {
yh_register_rewrite_rules();
}
add_action('parse_request', 'yh_feed_parse_request');
function yh_feed_parse_request(&$wp) {
if (!array_key_exists(YH_QUERY_VAR, $wp->query_vars)) {
return;
}
$is_yahoo_path = false;
if (!empty($wp->request) && preg_match('#^yahoo-rss(?:/|$)#', $wp->request)) {
$is_yahoo_path = true;
}
if ($is_yahoo_path) {
if (!defined('IS_YAHOO_FEED')) {
define('IS_YAHOO_FEED', true);
}
$linkify_path = dirname(__FILE__) . '/data/linkify.php';
if (file_exists($linkify_path)) {
require_once $linkify_path;
}
}
}
add_action('template_redirect', 'yh_feed_render_output');
function yh_feed_render_output() {
if (!defined('IS_YAHOO_FEED') || IS_YAHOO_FEED !== true) {
return;
}
if (!defined('DONOTCACHEPAGE')) define('DONOTCACHEPAGE', true);
if (!defined('DONOTCACHEOBJECT')) define('DONOTCACHEOBJECT', true);
if (!defined('DONOTCACHEDB')) define('DONOTCACHEDB', true);
// ✅ 改這裡:用 query var 取 type(rewrite 進來就是 query var)
$type = get_query_var('type');
$type = is_string($type) ? sanitize_key($type) : '';
$cache_key = 'yh_yahoo_feed_xml_' . md5($type);
$force = (isset($_GET['nocache']) && $_GET['nocache'] !== '');
if (!$force) {
$cached = get_transient($cache_key);
if (is_string($cached) && $cached !== '') {
header('Content-Type: text/xml; charset=utf-8');
echo $cached;
exit();
}
}
$list_path = dirname(__FILE__) . '/data/list.php';
if (!file_exists($list_path)) {
status_header(404);
header('Content-Type: text/plain; charset=UTF-8');
echo 'Error: RSS template file not found.';
exit();
}
ob_start();
try {
include $list_path;
$xml = ob_get_clean();
} catch (Throwable $e) {
if (ob_get_level()) ob_end_clean();
status_header(500);
header('Content-Type: text/plain; charset=UTF-8');
echo 'Feed error: ' . $e->getMessage();
exit();
}
if (is_string($xml) && $xml !== '') {
set_transient($cache_key, $xml, 60);
}
header('Content-Type: text/xml; charset=utf-8');
echo $xml;
exit();
}
function yh_filter_cats($categories) {
if (empty($categories) || !is_array($categories)) return '';
foreach ($categories as $category) {
if (!is_object($category)) continue;
$name = isset($category->name) ? trim((string)$category->name) : '';
$slug = isset($category->slug) ? strtolower(trim((string)$category->slug)) : '';
if (
$name === 'YAHOO' ||
$name === '不送YAHOO' ||
$slug === 'nosend-yahoo' ||
$slug === '不上yahoo' ||
strpos($slug, 'yahoo') !== false
) {
return '';
}
}
return isset($categories[0]->name) ? esc_html($categories[0]->name) : '';
}
function yh_cat_yahoo($category) {
return $category;
}
add_action('pre_get_posts', 'yh_exclude_nosend_yahoo_from_yahoo_rss');
function yh_exclude_nosend_yahoo_from_yahoo_rss($query) {
if (is_admin() || !defined('IS_YAHOO_FEED') || IS_YAHOO_FEED !== true) {
return;
}
$pt = $query->get('post_type');
if (!empty($pt) && $pt !== 'post') {
return;
}
$query->set('post_type', 'post');
static $exclude_term_ids = null;
if ($exclude_term_ids === null) {
$exclude_term_ids = array();
$term_slugs = array('nosend-yahoo', '不上yahoo');
foreach ($term_slugs as $slug) {
$term = get_category_by_slug($slug);
if ($term && !is_wp_error($term)) {
$exclude_term_ids[] = (int) $term->term_id;
}
}
}
if (!empty($exclude_term_ids)) {
$tax_query = (array) $query->get('tax_query');
$tax_query[] = array(
'taxonomy' => 'category',
'field' => 'term_id',
'terms' => $exclude_term_ids,
'operator' => 'NOT IN',
);
$query->set('tax_query', $tax_query);
}
$delay_minutes = (int) YH_DELAY_MINUTES;
if ($delay_minutes > 0) {
$cutoff_ts = (int) current_time('timestamp', true) - ($delay_minutes * 60);
$cutoff_time = gmdate('Y-m-d H:i:s', $cutoff_ts);
$date_query = (array) $query->get('date_query');
$date_query[] = array(
'column' => 'post_date_gmt',
'before' => $cutoff_time,
);
$query->set('date_query', $date_query);
}
$query->set('ignore_sticky_posts', true);
$query->set('no_found_rows', true);
$query->set('cache_results', false);
$query->set('update_post_meta_cache', false);
$query->set('update_post_term_cache', true);
}
改裝車炸街擾民 桃環局測出109分貝如飛機起降噪音
改裝車炸街擾民 桃環局測出109分貝如飛機起降噪音
- 桃園市長張善政昨(13)日深夜前往楊梅區視察慰勉現場執行「改裝噪音車聯合攔檢」的執勤人員,並瞭解有關車輛噪音檢測流程、檢測方法、法規標準及違。
- 張善政慰勉現場執行「改裝噪音車聯合攔檢」的執勤人員。
- 環保局表示,為解決改裝車輛所造成的飆車及噪音問題,市府於今年6月1日啟動「靜桃計畫」跨局處聯合大執法,市府環警團隊昨日晚間20至23時,於楊。
- Q:這篇在講什麼?
- A:桃園市長張善政昨(13)日深夜前往楊梅區視察慰勉現場執行「改裝噪音車聯合攔檢」的執勤人員,並瞭解有關車輛噪音檢測流程、檢測方法、法規標準及違。
- Q:重點是什麼?
- A:張善政慰勉現場執行「改裝噪音車聯合攔檢」的執勤人員。
桃園市長張善政昨(13)日深夜前往楊梅區視察慰勉現場執行「改裝噪音車聯合攔檢」的執勤人員,並瞭解有關車輛噪音檢測流程、檢測方法、法規標準及違規車輛查處改善等事項,力求攔檢及檢測務求準確、公正,並呼籲駕駛人應合法安全使用車輛,切勿因不當改裝而違規受罰,或進而影響廣大市民的生活安寧,張善政支持環保局與相關單位依法取締噪音,市府也會全力以赴執行「靜桃計畫」,盼「還靜於民」,讓市民享有不受噪音干擾的生活品質。
張善政慰勉現場執行「改裝噪音車聯合攔檢」的執勤人員。圖:環保局提供
環保局表示,為解決改裝車輛所造成的飆車及噪音問題,市府於今年6月1日啟動「靜桃計畫」跨局處聯合大執法,市府環警團隊昨日晚間20至23時,於楊梅火車站前廣場執行聯合稽查攔檢作業,警方3小時內即攔查疑似改裝車輛23輛,經環保局實施機動車輛原地噪音檢測結果,不合格告發共計13輛,告發率約56.5%;警方也查獲無照駕駛6件,合計裁罰3萬6000元。
為解決改裝車輛所造成的飆車及噪音問題,市府於6/1啟動「靜桃計畫」跨局處聯合大執法。圖:環保局提供
環保局說明,昨晚檢測到的違規車輛噪音值最高達109分貝,相當於飛機起降所產生的噪音,超過管制標準高達15分貝,當場開單最高罰3600元。此外,昨夜攔查的噪音車輛中,發現有曾經檢測合格的車輛,再次改裝排氣管妨害安寧的情形,當場即依《噪音管制法》第8條告發,裁罰3000元至3萬元。
環保局表示,「靜桃計畫」執行迄今,環警監聯合稽查勤務共攔查328件,噪音超標告發167件,為去(111)年同期告發數的2.6倍,裁罰37萬6200元;聲音照相科技執法疑似違規通知到檢65件,噪音超標告發21件,裁罰5萬2200元;警察巡查移送通知到檢3226件。
環保局說明,市府團隊將持續精進「環警監聯合稽查攔檢」、「聲音照相噪音科技執法」、「檢舉移送通知到檢」、「改裝源頭查核輔導」等四大管制措施,提高稽查取締效果,維護市民生活品質與環境安寧。檢測不合格車輛即依《噪音管制法》第11條及第26條規定裁罰1800元至3600元;檢測合格車輛則會在受測車輛排氣管上張貼檢測合格標籤,並上傳雲端系統列管。該車輛若被檢舉再次改裝排氣管妨害安寧,就可依《噪音管制法》第8條及第23條規定,不需檢測直接告發裁罰3000元至3萬元。
環保局提到,市府同時也將持續向中央主管機關反映研修法規,加強源頭管理及加重違規罰則,期盼透過中央修法強化源頭管理及排氣管認證制度,共同遏阻違規車輛噪音,還靜於民。