Some checks are pending
Deploy Pages / deploy (push) Waiting to run
- 现有静态文件纳入 git 管理 - .forgejo/workflows/deploy-pages.yml: 推送 main 自动部署到 /home/www/pages/wp-cli/ - 站点: wp-cli.feibisi.net
1107 lines
No EOL
62 KiB
HTML
Executable file
1107 lines
No EOL
62 KiB
HTML
Executable file
<!DOCTYPE html>
|
||
<html lang="zh-TW">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>WP-CLI 文派命令列 — WordPress 命令列介面</title>
|
||
<link rel="icon" type="image/jpeg" href="./favicon.jpg">
|
||
<link rel="stylesheet" href="./style.css">
|
||
<meta name="description" content="WP-CLI 是文派(WordPress)的命令列介面,讓您無需瀏覽器即可管理 WordPress 網站。支援外掛更新、資料庫操作、使用者管理等自動化任務,是開發者的必備工具。">
|
||
<meta name="keywords" content="WP-CLI, WordPress, 命令列工具, 網站管理, 自動化維運, PHP, 開發工具">
|
||
<meta name="author" content="WP-CLI 中文指南">
|
||
<meta property="og:title" content="WP-CLI — WordPress 命令列介面">
|
||
<meta property="og:description" content="WP-CLI 是 WordPress 的命令列介面,讓您無需瀏覽器即可管理 WordPress 網站。支援外掛更新、資料庫操作、使用者管理等自動化任務,是開發者的必備工具。">
|
||
<meta property="og:type" content="website">
|
||
<meta property="og:image" content="https://wp-cli.org/assets/img/wp-cli-logo.png">
|
||
<meta property="twitter:card" content="summary_large_image">
|
||
<link rel="preconnect" href="https://cn.windfonts.com" crossorigin>
|
||
<link rel="stylesheet" crossorigin="anonymous" href="https://app.windfonts.com/api/css?family=wenfeng-systcn:wght@light;medium;regular;semibold;bold;extralight;heavy">
|
||
</head>
|
||
<body>
|
||
<div id="scroll-progress"></div>
|
||
<div id="toc" class="toc"></div>
|
||
<div class="container">
|
||
<header>
|
||
<div class="logo">
|
||
<img src="./wp-cli-logo.png" alt="WP-CLI Logo">
|
||
<div class="lang-switch">
|
||
<a href="./index.html">簡</a>
|
||
<span>/</span>
|
||
<a href="./zh-tw.html" class="active">繁</a>
|
||
</div>
|
||
</div>
|
||
|
||
<button id="menu-toggle" class="mobile-menu-btn" aria-label="切換選單">
|
||
<span class="bar"></span>
|
||
<span class="bar"></span>
|
||
<span class="bar"></span>
|
||
</button>
|
||
|
||
<nav id="main-nav">
|
||
<a href="#install">安裝</a>
|
||
<a href="#waza">技巧</a>
|
||
<a href="#ai">智慧</a>
|
||
<a href="#config">設定</a>
|
||
<a href="#advanced">進階</a>
|
||
<a href="#cases">案例</a>
|
||
<a href="#faq">解惑</a>
|
||
<a href="#extend">生態</a>
|
||
<a href="https://feicode.com/wp-cli/wp-cli" target="_blank">feiCode ↗</a>
|
||
<button id="theme-toggle" class="btn-icon" aria-label="切換主題">
|
||
<span class="icon-sun">晝</span>
|
||
<span class="icon-moon">夜</span>
|
||
</button>
|
||
</nav>
|
||
</header>
|
||
|
||
<main>
|
||
<section class="hero">
|
||
<div class="hero-text-vertical">
|
||
<h1>文派命令列介面</h1>
|
||
<span class="subtitle">WordPress 管理之道</span>
|
||
|
||
</div>
|
||
<div class="hero-content">
|
||
<p class="description">無需瀏覽器,指尖流轉程式碼,掌控 WordPress 之一切。</p>
|
||
|
||
<div class="code-block">
|
||
<span class="comment"># 源 (Origin / EN)</span>
|
||
<span class="command" title="點擊複製" style="cursor: pointer;">curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar</span>
|
||
|
||
<div class="separator"></div>
|
||
|
||
<span class="comment"># 鏡 (Mirror / CN)</span>
|
||
<span class="command" title="點擊複製" style="cursor: pointer; color:#4CAF50;">curl -O https://feicode.com/wp-cli/builds/raw/branch/gh-pages/phar/wp-cli.phar</span>
|
||
|
||
<div class="separator"></div>
|
||
|
||
<span class="comment"># 短 (Short / CN)</span>
|
||
<span class="command" title="點擊複製" style="cursor: pointer; color:#4CAF50;">curl -O wp-cli.cn/phar</span>
|
||
|
||
<div class="separator"></div>
|
||
|
||
|
||
<span class="comment"># 驗 (Verify)</span>
|
||
<span class="command" title="點擊複製" style="cursor: pointer;">php wp-cli.phar --info</span>
|
||
</div>
|
||
|
||
<a href="#install" class="btn-zen">開始使用</a>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="philosophy">
|
||
<div class="grid">
|
||
<div class="card">
|
||
<h2>速</h2>
|
||
<p>執行快如閃電,無需等待,外掛更新、資料匯入。</p>
|
||
</div>
|
||
<div class="card">
|
||
<h2>簡</h2>
|
||
<p>輸入極簡指令,直達核心。摒棄繁雜介面更純粹。</p>
|
||
</div>
|
||
<div class="card">
|
||
<h2>動</h2>
|
||
<p>自動化腳本,批次處理。減少重複勞動隨風而去。</p>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="install" class="install">
|
||
<div class="section-title-vertical">
|
||
<h2>始</h2>
|
||
<span class="subtitle-vertical">萬物之源</span>
|
||
</div>
|
||
<div class="install-content">
|
||
<div class="tabs">
|
||
<button class="tab-btn active" data-group="install" data-tab="unix">UNIX</button>
|
||
<button class="tab-btn" data-group="install" data-tab="windows">WINDOWS</button>
|
||
</div>
|
||
|
||
<div id="unix-content" class="tab-content active" data-group="install">
|
||
<div class="step">
|
||
<div class="step-num">01</div>
|
||
<div class="step-detail">
|
||
<h4>下載 (Download)</h4>
|
||
<p>選擇離你最近的源下載 <code>wp-cli.phar</code> 檔案。以下自選其一。</p>
|
||
<div class="code-block-mini">
|
||
<span class="comment"># 推薦國內使用者使用鏡像源</span>
|
||
<span class="command">curl -O https://feicode.com/wp-cli/builds/raw/branch/gh-pages/phar/wp-cli.phar</span>
|
||
</div>
|
||
<div class="code-block-mini">
|
||
<span class="comment"># 加速短鏈</span>
|
||
<span class="command">curl -O wp-cli.cn/phar</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="step">
|
||
<div class="step-num">02</div>
|
||
<div class="step-detail">
|
||
<h4>賦權 (Permission)</h4>
|
||
<p>賦予檔案可執行權限,使其成為可運行的程式。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">chmod +x wp-cli.phar</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="step">
|
||
<div class="step-num">03</div>
|
||
<div class="step-detail">
|
||
<h4>歸位 (Move)</h4>
|
||
<p>將檔案移動到系統路徑,並重新命名為 <code>wp</code>。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">sudo mv wp-cli.phar /usr/local/bin/wp</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="step">
|
||
<div class="step-num">04</div>
|
||
<div class="step-detail">
|
||
<h4>驗證 (Verify)</h4>
|
||
<p>確認安裝成功。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp --info</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="windows-content" class="tab-content" data-group="install">
|
||
<div class="step">
|
||
<div class="step-num">01</div>
|
||
<div class="step-detail">
|
||
<h4>下載 (Download)</h4>
|
||
<p>下載 <code>wp-cli.phar</code> 到你的專案根目錄。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">curl -O https://feicode.com/wp-cli/builds/raw/branch/gh-pages/phar/wp-cli.phar</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="step">
|
||
<div class="step-num">02</div>
|
||
<div class="step-detail">
|
||
<h4>設定 (Configure)</h4>
|
||
<p>在同一目錄下建立 <code>wp.bat</code> 檔案。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">echo @php "%~dp0wp-cli.phar" %* > wp.bat</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="step">
|
||
<div class="step-num">03</div>
|
||
<div class="step-detail">
|
||
<h4>路徑 (Path)</h4>
|
||
<p>將該目錄添加到系統的環境變數 <code>PATH</code> 中。</p>
|
||
</div>
|
||
</div>
|
||
<div class="step">
|
||
<div class="step-num">04</div>
|
||
<div class="step-detail">
|
||
<h4>驗證 (Verify)</h4>
|
||
<p>打開新的命令列視窗驗證。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp --info</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="waza" class="waza">
|
||
<div class="section-title-vertical">
|
||
<h2>技</h2>
|
||
<span class="subtitle-vertical">日常之修煉</span>
|
||
</div>
|
||
<div class="waza-content">
|
||
<input type="text" id="command-search" class="waza-search" placeholder="搜尋命令...">
|
||
<div class="tabs command-tabs">
|
||
<button class="tab-btn active" data-group="waza" data-tab="sys">系統</button>
|
||
<button class="tab-btn" data-group="waza" data-tab="content">內容</button>
|
||
<button class="tab-btn" data-group="waza" data-tab="ext">擴充</button>
|
||
<button class="tab-btn" data-group="waza" data-tab="manage">管理</button>
|
||
<button class="tab-btn" data-group="waza" data-tab="debug">除錯</button>
|
||
</div>
|
||
|
||
<!-- 系統 (System + DB + Adv) -->
|
||
<div id="sys-content" class="tab-content active" data-group="waza">
|
||
<div class="command-item">
|
||
<div class="command-desc">查看系統資訊</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp --info</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">檢查 WordPress 核心更新</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp core check-update</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">更新 WordPress 核心</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp core update</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">清理快取</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp cache flush</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">開啟維護模式</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp maintenance-mode activate</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">匯出資料庫</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp db export backup.sql</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">匯入資料庫</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp db import backup.sql</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">搜尋並替換 (支援序列化)</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp search-replace 'old.com' 'new.com'</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">最佳化資料庫表</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp db optimize</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">執行 PHP 程式碼</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp eval 'echo "Hello WP";'</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">互動式 Shell</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp shell</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">管理排程任務</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp cron event list</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">獲取選項值</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp option get siteurl</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 內容 (Post + Media) -->
|
||
<div id="content-content" class="tab-content" data-group="waza">
|
||
<div class="command-item">
|
||
<div class="command-desc">建立新文章</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp post create --post_title="Hello World" --post_status=publish</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">列出最近發佈的文章</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp post list --post_type=post --number=5</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">生成測試資料</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp post generate --count=10 --post_type=page</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">批次刪除文章</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp post delete $(wp post list --post_type=post --format=ids)</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">匯入圖片</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp media import ~/images/logo.png</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">重新生成縮圖</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp media regenerate --yes</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">列出未使用的媒體檔案</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp media list --post_parent=0</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 擴充 (Plugin + Theme) -->
|
||
<div id="ext-content" class="tab-content" data-group="waza">
|
||
<div class="command-item">
|
||
<div class="command-desc">安裝並啟用外掛</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp plugin install woocommerce --activate</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">更新所有外掛</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp plugin update --all</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">列出所有外掛狀態</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp plugin list</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">停用外掛</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp plugin deactivate hello</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">安裝佈景主題</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp theme install twentytwentyone</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">啟用佈景主題</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp theme activate twentytwentyone</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">生成子佈景主題</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp scaffold child-theme my-child --parent_theme=twentytwentyone</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">列出所有佈景主題</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp theme list</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 管理 (User + Site) -->
|
||
<div id="manage-content" class="tab-content" data-group="waza">
|
||
<div class="command-item">
|
||
<div class="command-desc">建立新使用者</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp user create bob bob@example.com --role=editor</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">列出管理員使用者</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp user list --role=administrator</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">更新使用者密碼</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp user update bob --user_pass=strongpassword</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">管理使用者權限</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp cap list administrator</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">刪除使用者並重新分配文章</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp user delete bob --reassign=1</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">建立新網站 (多站點)</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp site create --slug=subsite --title="Sub Site"</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">列出所有網站</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp site list</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 除錯 (Debug) -->
|
||
<div id="debug-content" class="tab-content" data-group="waza">
|
||
<div class="command-item">
|
||
<div class="command-desc">查看詳細設定資訊</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp config list</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">檢查資料庫狀態</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp db check</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">查看資料庫大小</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp db size --human-readable</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">列出當前運行的 Cron 事件</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp cron event list</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">立即運行所有 Cron 事件</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp cron event run --due-now</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">跳過外掛/佈景主題運行 (排錯模式)</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp plugin list --skip-plugins --skip-themes</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">重新生成重寫規則 (Fix 404)</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp rewrite flush</div>
|
||
</div>
|
||
<div class="command-item">
|
||
<div class="command-desc">驗證 WordPress 核心檔案校驗和</div>
|
||
<div class="code-line"><span class="prompt">$</span> wp core verify-checksums</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="ai" class="ai-section">
|
||
<div class="section-title-vertical">
|
||
<h2>智</h2>
|
||
<span class="subtitle-vertical">未來之演進</span>
|
||
</div>
|
||
<div class="ai-content">
|
||
<p class="ai-intro">
|
||
當命令列遇上人工智慧,WP-CLI 不再只是工具,而是你的智慧助手。
|
||
透過 AI 賦能,實現自然語言控制、程式碼自動生成與智慧故障診斷。
|
||
</p>
|
||
|
||
<div class="ai-demo-terminal" id="ai-demo-terminal">
|
||
<div class="terminal-header">
|
||
<span class="dot red"></span>
|
||
<span class="dot yellow"></span>
|
||
<span class="dot green"></span>
|
||
<span class="terminal-title">WP-CLI AI Assistant</span>
|
||
</div>
|
||
<div class="terminal-body" id="ai-terminal-body">
|
||
<!-- JS will populate this -->
|
||
<div class="terminal-line">
|
||
<span class="ai-prompt">AI @ wp-cli:~$</span>
|
||
<span class="typing-cursor"></span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="grid-ai">
|
||
<div class="card-ai">
|
||
<div class="card-icon-zen">言</div>
|
||
<h3>自然語言互動</h3>
|
||
<p>告別繁瑣參數,直接告訴它你想做什麼。</p>
|
||
<div class="code-block-mini">
|
||
<span class="comment"># 範例 (需配合 AI 擴充)</span>
|
||
<span class="command">wp ai "幫我建立一個使用者名稱為 feibisi 的管理員"</span>
|
||
</div>
|
||
</div>
|
||
<div class="card-ai">
|
||
<div class="card-icon-zen">化</div>
|
||
<h3>智慧程式碼生成</h3>
|
||
<p>自動生成外掛樣板程式碼、自訂文章類型註冊程式碼。</p>
|
||
<div class="code-block-mini">
|
||
<span class="comment"># 生成自訂文章類型</span>
|
||
<span class="command">wp scaffold post-type book --label="書籍"</span>
|
||
</div>
|
||
</div>
|
||
<div class="card-ai">
|
||
<div class="card-icon-zen">醫</div>
|
||
<h3>故障自動診斷</h3>
|
||
<p>智慧分析日誌,快速定位錯誤根源並給出修復建議。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp doctor check --all</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="config" class="config-section">
|
||
<div class="section-title-vertical">
|
||
<h2>配</h2>
|
||
<span class="subtitle-vertical">運籌於帷幄</span>
|
||
</div>
|
||
<div class="config-content">
|
||
<div class="config-intro">
|
||
<p>透過 <code>wp-cli.yml</code> 設定檔案,您可以定義全域參數、註冊命令別名,甚至管理遠端網站。</p>
|
||
</div>
|
||
|
||
<div class="tabs">
|
||
<button class="tab-btn active" data-group="config" data-tab="global">全域 (Global)</button>
|
||
<button class="tab-btn" data-group="config" data-tab="alias">別名 (Alias)</button>
|
||
</div>
|
||
|
||
<div id="global-content" class="tab-content active" data-group="config">
|
||
<div class="config-card">
|
||
<h3>全域設定</h3>
|
||
<p>一次設定,處處生效。省去重複輸入參數的煩惱。</p>
|
||
<div class="code-block-yml">
|
||
<div class="yml-title">wp-cli.yml</div>
|
||
<pre><code>path: web/wp
|
||
url: http://example.com
|
||
user: admin
|
||
disabled_commands:
|
||
- db drop
|
||
- plugin install</code></pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="alias-content" class="tab-content" data-group="config">
|
||
<div class="config-card highlight">
|
||
<h3>遠端別名 (Aliases)</h3>
|
||
<p>在本地機器上,直接操控遠端伺服器的 WordPress 網站。</p>
|
||
<div class="code-block-yml">
|
||
<div class="yml-title">wp-cli.yml</div>
|
||
<pre><code>@prod:
|
||
ssh: user@prod-server/var/www/html
|
||
@dev:
|
||
ssh: user@dev-server/var/www/html</code></pre>
|
||
</div>
|
||
<div class="code-block-mini" style="margin-top: 1rem;">
|
||
<span class="comment"># 同步生產環境資料庫到本地</span>
|
||
<span class="command">wp db export - | wp @local db import -</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="advanced" class="advanced-section">
|
||
<div class="section-title-vertical">
|
||
<h2>深</h2>
|
||
<span class="subtitle-vertical">自動化之道</span>
|
||
</div>
|
||
<div class="advanced-content">
|
||
<p class="advanced-intro">
|
||
精通 WP-CLI 不僅僅是掌握單個命令,更在於將其融入自動化工作流。
|
||
這裡有一些進階的腳本與設定範例。
|
||
</p>
|
||
|
||
<div class="accordion">
|
||
<div class="accordion-item">
|
||
<button class="accordion-header">
|
||
<span>Shell 腳本:批次更新所有網站</span>
|
||
<span class="icon">+</span>
|
||
</button>
|
||
<div class="accordion-body">
|
||
<p>如果您管理著多個 WordPress 網站,可以編寫一個簡單的 Bash 腳本來遍歷目錄並更新所有網站。</p>
|
||
<div class="code-block-sh">
|
||
<pre><code>#!/bin/bash
|
||
|
||
# 假設所有網站都在 /var/www/html/ 下
|
||
for dir in /var/www/html/*/; do
|
||
echo "Updating $dir..."
|
||
cd "$dir"
|
||
|
||
# 檢查是否是 WordPress 目錄
|
||
if wp core is-installed --allow-root; then
|
||
# 更新核心、外掛和佈景主題
|
||
wp core update --allow-root
|
||
wp plugin update --all --allow-root
|
||
wp theme update --all --allow-root
|
||
echo "Done."
|
||
else
|
||
echo "Not a WordPress install. Skipping."
|
||
fi
|
||
done</code></pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="accordion-item">
|
||
<button class="accordion-header">
|
||
<span>System Cron:替換低效的 WP-Cron</span>
|
||
<span class="icon">+</span>
|
||
</button>
|
||
<div class="accordion-body">
|
||
<p>WordPress 預設的 Cron 依賴頁面存取觸發,不僅不穩定還影響效能。建議禁用它,改用系統的 Crontab。</p>
|
||
<p>1. 在 <code>wp-config.php</code> 中禁用預設 Cron:</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">define( 'DISABLE_WP_CRON', true );</span>
|
||
</div>
|
||
<p>2. 在伺服器的 crontab 中添加任務(每分鐘執行一次):</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">* * * * * php /path/to/wp-cli.phar cron event run --due-now --path=/var/www/html</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="accordion-item">
|
||
<button class="accordion-header">
|
||
<span>物件快取 (Object Cache)</span>
|
||
<span class="icon">+</span>
|
||
</button>
|
||
<div class="accordion-body">
|
||
<p>配合 Redis 或 Memcached,WP-CLI 可以幫助您管理物件快取,極大提升動態頁面載入速度。</p>
|
||
<div class="code-block-mini">
|
||
<span class="comment"># 查看快取狀態</span>
|
||
<span class="command">wp cache type</span>
|
||
<span class="comment"># 清除所有快取</span>
|
||
<span class="command">wp cache flush</span>
|
||
<span class="comment"># 獲取特定快取鍵值 (除錯用)</span>
|
||
<span class="command">wp cache get my_key my_group</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="accordion-item">
|
||
<button class="accordion-header">
|
||
<span>多站點 (Multisite) 批次操作</span>
|
||
<span class="icon">+</span>
|
||
</button>
|
||
<div class="accordion-body">
|
||
<p>在 WordPress 多站點網路中,逐個站點執行命令非常繁瑣。結合 <code>xargs</code> 可以實現一行程式碼管理整個網路。</p>
|
||
<div class="code-block-mini">
|
||
<span class="comment"># 對網路中的所有站點啟用 Akismet 外掛</span>
|
||
<span class="command">wp site list --field=url | xargs -n1 -I % wp plugin activate akismet --url=%</span>
|
||
</div>
|
||
<div class="code-block-mini">
|
||
<span class="comment"># 批次更新所有子站點的資料庫結構</span>
|
||
<span class="command">wp site list --field=url | xargs -n1 -I % wp core update-db --url=%</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="accordion-item">
|
||
<button class="accordion-header">
|
||
<span>效能分析 (Profiling)</span>
|
||
<span class="icon">+</span>
|
||
</button>
|
||
<div class="accordion-body">
|
||
<p>使用 <code>profile</code> 擴充包,您可以深入分析 WordPress 啟動過程中的效能瓶頸,精確到毫秒級的鉤子 (Hook) 執行時間。</p>
|
||
<div class="code-block-mini">
|
||
<span class="comment"># 1. 安裝擴充包</span>
|
||
<span class="command">wp package install wp-cli/profile-command</span>
|
||
<span class="comment"># 2. 分析頁面載入的各個階段</span>
|
||
<span class="command">wp profile stage --all</span>
|
||
<span class="comment"># 3. 找出最慢的 10 個鉤子</span>
|
||
<span class="command">wp profile hook --all --spotlight --count=10</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="accordion-item">
|
||
<button class="accordion-header">
|
||
<span>CI/CD 整合 (GitHub Actions)</span>
|
||
<span class="icon">+</span>
|
||
</button>
|
||
<div class="accordion-body">
|
||
<p>將 WP-CLI 整合到自動化部署流程中。以下是一個 GitHub Actions 的範例,用於在部署前檢查程式碼標準。</p>
|
||
<div class="code-block-yml">
|
||
<div class="yml-title">.github/workflows/main.yml</div>
|
||
<pre><code>name: WP Check
|
||
on: [push]
|
||
jobs:
|
||
check:
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- uses: actions/checkout@v2
|
||
- name: Setup PHP
|
||
uses: shivammathur/setup-php@v2
|
||
with:
|
||
php-version: '8.0'
|
||
tools: wp-cli
|
||
- name: Install WP
|
||
run: |
|
||
wp core download
|
||
wp config create --dbname=test --dbuser=root --dbpass=root
|
||
- name: Verify Checksums
|
||
run: wp core verify-checksums</code></pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="accordion-item">
|
||
<button class="accordion-header">
|
||
<span>自訂命令 (Custom Command)</span>
|
||
<span class="icon">+</span>
|
||
</button>
|
||
<div class="accordion-body">
|
||
<p>只需幾行 PHP 程式碼,就能讓 WP-CLI 為你所用。建立一個簡單的命令來輸出 "Hello World"。</p>
|
||
<div class="code-block-sh">
|
||
<pre><code>// command.php
|
||
if ( defined( 'WP_CLI' ) && WP_CLI ) {
|
||
$command = function( $args, $assoc_args ) {
|
||
$name = $assoc_args['name'] ?? 'World';
|
||
WP_CLI::success( "Hello, $name!" );
|
||
};
|
||
WP_CLI::add_command( 'hello', $command );
|
||
}
|
||
|
||
# 運行方式:
|
||
# wp --require=command.php hello --name=Zen</code></pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="cases" class="cases-section">
|
||
<div class="section-title-vertical">
|
||
<h2>例</h2>
|
||
<span class="subtitle-vertical">實戰之演練</span>
|
||
</div>
|
||
<div class="cases-content">
|
||
<p class="cases-intro">
|
||
理論終須實踐檢驗。以下是兩個真實的維運場景,展示 WP-CLI 如何化繁為簡,解決棘手問題。
|
||
</p>
|
||
|
||
<div class="tabs">
|
||
<button class="tab-btn active" data-group="cases" data-tab="rescue">救援 (Rescue)</button>
|
||
<button class="tab-btn" data-group="cases" data-tab="migrate">遷移 (Migrate)</button>
|
||
<button class="tab-btn" data-group="cases" data-tab="audit">審計 (Audit)</button>
|
||
</div>
|
||
|
||
<div id="rescue-content" class="tab-content active" data-group="cases">
|
||
<div class="case-card">
|
||
<div class="case-header">
|
||
<h3>場景一:網站被駭,快速還原</h3>
|
||
<span class="case-tag danger">緊急</span>
|
||
</div>
|
||
<p class="case-desc">某天早上,你發現網站被植入了惡意程式碼,且無法登入後台。此時 WP-CLI 是你的救命稻草。</p>
|
||
<div class="step-list">
|
||
<div class="case-step">
|
||
<span class="step-icon">1</span>
|
||
<div class="step-text">
|
||
<strong>驗證核心檔案完整性</strong>
|
||
<p>快速找出被篡改的核心檔案。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp core verify-checksums</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="case-step">
|
||
<span class="step-icon">2</span>
|
||
<div class="step-text">
|
||
<strong>強制重裝核心</strong>
|
||
<p>不刪除 `wp-content`,僅覆蓋核心檔案,清除後門。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp core download --force --skip-content</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="case-step">
|
||
<span class="step-icon">3</span>
|
||
<div class="step-text">
|
||
<strong>檢查未授權使用者</strong>
|
||
<p>列出管理員,發現可疑帳號立即刪除。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp user list --role=administrator</span>
|
||
<span class="command">wp user delete hacker --reassign=1</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="migrate-content" class="tab-content" data-group="cases">
|
||
<div class="case-card">
|
||
<div class="case-header">
|
||
<h3>場景二:數萬篇文章批次修改</h3>
|
||
<span class="case-tag success">最佳化</span>
|
||
</div>
|
||
<p class="case-desc">你需要將所有文章中的舊網域 "old-site.com" 替換為 "new-site.com",且不能破壞序列化資料。</p>
|
||
<div class="step-list">
|
||
<div class="case-step">
|
||
<span class="step-icon">1</span>
|
||
<div class="step-text">
|
||
<strong>預演 (Dry Run)</strong>
|
||
<p>先看看會影響多少行資料,確保心中有數。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp search-replace 'old-site.com' 'new-site.com' --dry-run</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="case-step">
|
||
<span class="step-icon">2</span>
|
||
<div class="step-text">
|
||
<strong>執行替換並匯出備份</strong>
|
||
<p>為了安全,建議先匯出 SQL,再執行替換。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp db export before_replace.sql</span>
|
||
<span class="command">wp search-replace 'old-site.com' 'new-site.com'</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="case-step">
|
||
<span class="step-icon">3</span>
|
||
<div class="step-text">
|
||
<strong>清理快取</strong>
|
||
<p>確保前台立即生效。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp cache flush</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div id="audit-content" class="tab-content" data-group="cases">
|
||
<div class="case-card">
|
||
<div class="case-header">
|
||
<h3>場景三:網站健康與安全審計</h3>
|
||
<span class="case-tag">日常</span>
|
||
</div>
|
||
<p class="case-desc">未雨綢繆勝過亡羊補牢。建立一套自動化的審計流程,定期檢查網站是否存在潛在風險。</p>
|
||
<div class="step-list">
|
||
<div class="case-step">
|
||
<span class="step-icon">1</span>
|
||
<div class="step-text">
|
||
<strong>檢查長期未更新的外掛</strong>
|
||
<p>過期的外掛往往是安全漏洞的重災區。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp plugin list --update=available</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="case-step">
|
||
<span class="step-icon">2</span>
|
||
<div class="step-text">
|
||
<strong>驗證所有核心檔案</strong>
|
||
<p>確保沒有檔案被偷偷修改。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp core verify-checksums</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="case-step">
|
||
<span class="step-icon">3</span>
|
||
<div class="step-text">
|
||
<strong>列出所有管理員</strong>
|
||
<p>定期審查擁有最高權限的帳戶列表。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp user list --role=administrator --fields=ID,user_login,user_email,registered</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="faq" class="faq-section">
|
||
<div class="section-title-vertical">
|
||
<h2>解</h2>
|
||
<span class="subtitle-vertical">疑惑之微光</span>
|
||
</div>
|
||
<div class="faq-content">
|
||
<div class="faq-item">
|
||
<button class="faq-question">
|
||
<span>運行命令時提示 "Allow memory size of... exhausted"</span>
|
||
<span class="icon">+</span>
|
||
</button>
|
||
<div class="faq-answer">
|
||
<p>這是 PHP 記憶體限制導致的。您可以臨時增加記憶體限制運行命令:</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">php -d memory_limit=512M $(which wp) package list</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="faq-item">
|
||
<button class="faq-question">
|
||
<span>提示 "Error: YIKES! It looks like you're running this as root"</span>
|
||
<span class="icon">+</span>
|
||
</button>
|
||
<div class="faq-answer">
|
||
<p>出於安全考慮,不建議以 root 身份運行 WP-CLI。如果必須這樣做,請添加 <code>--allow-root</code> 參數:</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp plugin list --allow-root</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="faq-item">
|
||
<button class="faq-question">
|
||
<span>如何除錯 "白屏" 或未知報錯?</span>
|
||
<span class="icon">+</span>
|
||
</button>
|
||
<div class="faq-answer">
|
||
<p>您可以使用 <code>--debug</code> 參數查看詳細的執行日誌。如果懷疑是外掛衝突,可以添加 <code>--skip-plugins</code> 參數暫時禁用所有外掛運行命令。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp plugin list --debug</span>
|
||
<span class="command">wp theme list --skip-plugins --skip-themes</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="faq-item">
|
||
<button class="faq-question">
|
||
<span>search-replace 操作是否安全?</span>
|
||
<span class="icon">+</span>
|
||
</button>
|
||
<div class="faq-answer">
|
||
<p>非常安全。WP-CLI 能夠智慧處理 PHP 序列化資料(Serialized Data),這是直接使用 SQL 語句無法做到的。建議在操作前使用 <code>--dry-run</code> 進行預演。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp search-replace 'http://' 'https://' --dry-run</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="faq-item">
|
||
<button class="faq-question">
|
||
<span>如何更新 WP-CLI 本身?</span>
|
||
<span class="icon">+</span>
|
||
</button>
|
||
<div class="faq-answer">
|
||
<p>WP-CLI 提供了自更新命令,您可以一鍵升級到最新穩定版:</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp cli update</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="faq-item">
|
||
<button class="faq-question">
|
||
<span>如何管理多個 WordPress 版本的 PHP 環境?</span>
|
||
<span class="icon">+</span>
|
||
</button>
|
||
<div class="faq-answer">
|
||
<p>您可以直接使用指定版本的 PHP 可執行檔案來運行 WP-CLI Phar 包:</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">/usr/bin/php7.4 wp-cli.phar plugin list</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="faq-item">
|
||
<button class="faq-question">
|
||
<span>遇到 "Error establishing a database connection"</span>
|
||
<span class="icon">+</span>
|
||
</button>
|
||
<div class="faq-answer">
|
||
<p>請首先檢查 <code>wp-config.php</code> 中的資料庫憑證是否正確。您也可以嘗試使用 <code>wp db check</code> 命令來診斷資料庫連線問題。</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="extend" class="extend">
|
||
<div class="section-title-vertical">
|
||
<h2>廣</h2>
|
||
<span class="subtitle-vertical">生態之延伸</span>
|
||
</div>
|
||
<div class="extend-content">
|
||
<p class="extend-intro">WP-CLI 的力量不僅於此。透過包管理器,您可以安裝社群貢獻的命令,甚至編寫自己的擴充。</p>
|
||
|
||
<div class="tabs">
|
||
<button class="tab-btn active" data-group="extend" data-tab="tools">工具 (Tools)</button>
|
||
<button class="tab-btn" data-group="extend" data-tab="dev">開發 (Dev)</button>
|
||
</div>
|
||
|
||
<div id="tools-content" class="tab-content active" data-group="extend">
|
||
<div class="package-grid">
|
||
<div class="card-ai">
|
||
<div class="card-icon-zen">診</div>
|
||
<h3>wp doctor</h3>
|
||
<p>為您的 WordPress 進行全面體檢,發現潛在設定問題。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp package install wp-cli/doctor-command</span>
|
||
</div>
|
||
</div>
|
||
<div class="card-ai">
|
||
<div class="card-icon-zen">剖</div>
|
||
<h3>wp profile</h3>
|
||
<p>剖析頁面載入過程,精確定位效能瓶頸(慢查詢、鉤子耗時)。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp package install wp-cli/profile-command</span>
|
||
</div>
|
||
</div>
|
||
<div class="card-ai">
|
||
<div class="card-icon-zen">互</div>
|
||
<h3>wp shell</h3>
|
||
<p>內建的 REPL 環境,像 Python Shell 一樣即時執行 PHP 程式碼。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp shell</span>
|
||
</div>
|
||
</div>
|
||
<div class="card-ai">
|
||
<div class="card-icon-zen">譯</div>
|
||
<h3>wp i18n</h3>
|
||
<p>國際化工具集。生成 POT 檔案、轉換 PO/MO 檔案。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp i18n make-pot . languages/plugin.pot</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="dev-content" class="tab-content" data-group="extend">
|
||
<div class="package-grid">
|
||
<div class="card-ai">
|
||
<div class="card-icon-zen">造</div>
|
||
<h3>腳手架 (Scaffold)</h3>
|
||
<p>快速生成標準化的 WP-CLI 命令包結構,開始您的擴充開發之旅。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp scaffold package my-command</span>
|
||
</div>
|
||
</div>
|
||
<div class="card-ai">
|
||
<div class="card-icon-zen">測</div>
|
||
<h3>單元測試</h3>
|
||
<p>為您的外掛或佈景主題生成 PHPUnit 測試檔案。</p>
|
||
<div class="code-block-mini">
|
||
<span class="command">wp scaffold plugin-tests my-plugin</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="community-link">
|
||
<a href="https://wp-cli.org/package-index/" target="_blank" class="btn-text">
|
||
<span class="text">瀏覽更多擴充包</span>
|
||
<span class="icon">→</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="requirements" class="requirements">
|
||
<div class="zen-circle">
|
||
<span class="req-title">需</span>
|
||
</div>
|
||
<div class="req-grid">
|
||
<div class="req-item">
|
||
<span class="req-label">PHP</span>
|
||
<span class="req-value">5.6+</span>
|
||
</div>
|
||
<div class="req-divider"></div>
|
||
<div class="req-item">
|
||
<span class="req-label">WordPress</span>
|
||
<span class="req-value">3.7+</span>
|
||
</div>
|
||
<div class="req-divider"></div>
|
||
<div class="req-item">
|
||
<span class="req-label">System</span>
|
||
<span class="req-value">UNIX-like</span>
|
||
</div>
|
||
</div>
|
||
<p class="req-note">亦可隨風潛入夜:<code>composer require wp-cli/wp-cli-bundle</code></p>
|
||
</section>
|
||
</main>
|
||
|
||
<footer class="site-footer">
|
||
<div class="footer-grid">
|
||
<!-- Brand / Slogan -->
|
||
<div class="footer-brand">
|
||
<div class="footer-logo">
|
||
<img src="./wp-cli-logo.png" alt="WP-CLI Logo">
|
||
</div>
|
||
<p class="footer-desc">無需瀏覽器,指尖流轉程式碼。<br>掌控 WordPress 之一切。</p>
|
||
<div class="zen-mark-large">文派</div>
|
||
</div>
|
||
|
||
<!-- Navigation Links -->
|
||
<div class="footer-nav">
|
||
<div class="nav-group">
|
||
<h4>探索</h4>
|
||
<a href="#install">安裝指南</a>
|
||
<a href="#waza">命令技巧</a>
|
||
<a href="#ai">智慧助手</a>
|
||
<a href="#config">高級設定</a>
|
||
</div>
|
||
<div class="nav-group">
|
||
<h4>資源</h4>
|
||
<a href="https://make.wordpress.org/cli/handbook/" target="_blank">官方手冊</a>
|
||
<a href="https://developer.wordpress.org/cli/commands/" target="_blank">命令參考</a>
|
||
<a href="https://wp-cli.org/package-index/" target="_blank">擴充包庫</a>
|
||
</div>
|
||
<div class="nav-group">
|
||
<h4>社群</h4>
|
||
<a href="https://feicode.com/wp-cli" target="_blank">菲碼源庫 ↗</a>
|
||
<a href="https://wptea.com/" target="_blank">文派茶館 ↗</a>
|
||
<a href="https://meta.cyberforums.com/" target="_blank">賽博論壇 ↗</a>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Newsletter / Action -->
|
||
<div class="footer-action">
|
||
<h4>關注我們</h4>
|
||
<p>獲取最新 WP-CLI 技巧與 WordPress 資訊。</p>
|
||
<div class="footer-qr-container">
|
||
<div class="footer-qr">
|
||
<img src="./wp_wx.png" alt="文派公眾號" class="qr-img">
|
||
<span class="qr-caption">文派公眾號</span>
|
||
</div>
|
||
<div class="footer-qr">
|
||
<img src="./wxd_wx.png" alt="薇曉朵公眾號" class="qr-img">
|
||
<span class="qr-caption">薇曉朵公眾號</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="footer-bottom">
|
||
<div class="copyright">
|
||
© 2025 WP-CLI. 文派(廣州)科技有限公司.
|
||
</div>
|
||
<div class="footer-meta">
|
||
<a href="https://wenpai.org/about/privacy/" target="_blank">隱私政策</a>
|
||
<span class="separator">•</span>
|
||
<a href="https://wenpai.org/" target="_blank">WenPai.org</a>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
</div>
|
||
<button id="back-to-top" class="btn-icon fixed-btn" aria-label="返回頂部">
|
||
<span> ↑ </span>
|
||
</button>
|
||
<script src="./script.js"></script>
|
||
</body>
|
||
</html> |