HEX
Server: nginx
System: Linux f62c58717270 6.1.0-17-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.69-1 (2023-12-30) x86_64
User: www-data (1000)
PHP: 8.0.30
Disabled: NONE
Upload Files
File: //www/wp-cli/replace_footer.sh
#!/bin/sh

ROOT_DIR="/www/sites/"
LOG_FILE="/www/wp-cli/footer_date_replace_log.txt"

# 创建日志文件,覆盖旧日志
echo "========= START $(date) =========" > "$LOG_FILE"

count=0
skipped=0
processed=0

# 使用 find + while read 遍历
find "$ROOT_DIR" -type f -name "wp-config.php" | while IFS= read -r CONFIG_PATH; do
    count=$((count + 1))
    SITE_DIR=$(dirname "$CONFIG_PATH")
    FLAG_FILE="$SITE_DIR/.footer_date_replaced"
    MAILGUN_FLAG="$SITE_DIR/.mailgun_replaced"

    echo ""
    echo "--------------------------------------"
    echo "Site $count: $SITE_DIR"
    echo "--------------------------------------"

    # 检查 footer 标记文件
    if [ -f "$FLAG_FILE" ]; then
        echo "⏭ Skipped (already replaced): $SITE_DIR"
        echo "SKIPPED: $SITE_DIR" >> "$LOG_FILE"
        skipped=$((skipped + 1))
        continue
    fi

    # -----------------------------
    # 替换 footer date
    # -----------------------------
    echo "Replacing Footer Date..."
    wp --path="$SITE_DIR" search-replace \
        "© 2025" \
        "© 2026" \
        --all-tables --precise --recurse-objects --skip-columns=guid --allow-root

    wp --path="$SITE_DIR" search-replace \
        "©  2025" \
        "© 2026" \
        --all-tables --precise --recurse-objects --skip-columns=guid --allow-root

    # -----------------------------
    # 创建 footer 标记文件
    # -----------------------------
    echo "Processed on $(date)" > "$FLAG_FILE"

    # -----------------------------
    # 删除 mailgun 标记文件
    # -----------------------------
    if [ -f "$MAILGUN_FLAG" ]; then
        rm -f "$MAILGUN_FLAG"
        echo "🗑 Removed mailgun flag: $SITE_DIR"
        echo "MAILGUN FLAG REMOVED: $SITE_DIR" >> "$LOG_FILE"
    fi

    echo "✔ Completed and flagged: $SITE_DIR"
    echo "DONE: $SITE_DIR" >> "$LOG_FILE"
    processed=$((processed + 1))

done

echo ""
echo "======================================="
echo " ALL SITES COMPLETED"
echo "======================================="

echo "========= END $(date) =========" >> "$LOG_FILE"