顯示具有 WordPress 標籤的文章。 顯示所有文章
顯示具有 WordPress 標籤的文章。 顯示所有文章

2023年12月20日 星期三

好站 : 如何開發 WordPress 外掛

今天在 Youtube 找到下面這個 WordpPress 外掛開發的教學 : 





我之前是自己寫一個小型的 PHP 架站程式來安裝 PHP 應用程式, 後來用了 WordPress 對其介面與功能非常喜歡, 就想說要如何將自己的 PHP 應用程式與 WordPress 整合在一起, 原來就是所謂的外掛. 這篇其實是作者 Mr Digital 一系列 WordPress 教學影片裡的一部, 參考 :  


另外還有一個不錯的教學值得參考 : 





2023年8月2日 星期三

高科大還書 2 本 (WordPress 與 Python)

因有兩本預約書到館, 今天中午拿了下面兩本書去抵 :


WordPress 可能要下個月才有時間看, 而兩本 Python 程式設計書則只是還有筆記待整理, 有時間再回借啦. 換回下面兩本到館書 :


最近要整理下面這本書的筆記, 然後拿回去還, 換借其他 AI 的書回來 :


2023年7月31日 星期一

momo 買書兩本 : Azure WordPress 與深度學習

momo 66 折活動今天截止, 買了下面兩本深智的 :




雖然第二本母校可借, 但總是看一個月就被預約走, 趁 66 折買下來吧. 兩書合計 1359 元, 滿 1200 登記送 10% momo 幣 (那是 136 元媽?). 

2021年8月9日 星期一

樹莓派架站 (十三) : 使用 PPPoE 固定 IP 帳號撥接上網

由於 Pi 4 帶去學校接上網路後仍然無法利用 VNC 遠端連線, 開機數次也是不行, 可能網路設定資訊哪裡有問題, 除非到現場接上螢幕與鍵鼠組檢查, 否則也無法找出原因, 所以上周請老張申請好中華電信 ADSL/光世代固定 IP, 準備將樹莓派伺服器裝在家裡, 只要透過 PPPoE 撥接上網, 就可以透過此固定 IP 存取網站, 遠端也可以利用 SSH 或 VNC 進行維護, 具體方法參考 :


此文提出兩種方式讓樹莓派撥接上網, 其實只要用第一個方法安裝 pppoeconf 這個套件就可以了, 簡單又方便. 以下是週日晚上我用鄉下家的 Pi 3 所做的實驗記錄, 確認此法有效可行. 本系列前一篇文章參考 : 


首先要在樹莓派上做好無頭存取準備, 首先點工作列上方的 WiFi 圖示設定連線到手機無線基地台 (勾選記憶密碼), 這樣就會將此基地台連線資訊 (SSID 與密碼) 紀錄到 /etc/wpa_supplicant/wpa_supplicant.conf 這個設定檔內, 樹莓派重開機後就會自動連線手機基地台, 方便透過手機基地台上網的筆電遠端控制樹莓派. 其次在 "偏好設定/Raspberry Pi 設定/介面" 中開啟 SSH 與 VNC 功能. 

然後準備一條網路線將樹莓派連接到中華電信 ADSL/光世代後面的 RJ45 網路插槽, 開機後從手機基地台查詢樹莓派的 IP, 然後用 Putty 以 SSH 連線樹莓派 (也可以用 VNC), 在命令列中安裝設定 pppoeconf 套件 : 


1. 安裝 PPPoE 撥接上網程式 :    

在命令列用如下指令安裝 pppoeconf 套件 : 

sudo apt-get -y install pppoeconf   

pi@raspberrypi:~ $ sudo apt-get -y install pppoeconf        
正在讀取套件清單... 完成
正在重建相依關係          
正在讀取狀態資料... 完成
下列的額外套件將被安裝:
  libpcap0.8 ppp
建議套件:
  xdialog
下列【新】套件將會被安裝:
  libpcap0.8 ppp pppoeconf
升級 0 個,新安裝 3 個,移除 0 個,有 399 個未被升級。
需要下載 474 kB 的套件檔。
此操作完成之後,會多佔用 1,405 kB 的磁碟空間。
下載:1 http://mirror.ossplanet.net/raspbian/raspbian stretch/main armhf libpcap0.8 armhf 1.8.1-3 [123 kB]
下載:2 http://mirror.ossplanet.net/raspbian/raspbian stretch/main armhf ppp armhf 2.4.7-1+4+deb9u1 [311 kB]
下載:3 http://mirror.ossplanet.net/raspbian/raspbian stretch/main armhf pppoeconf all 1.21 [40.3 kB]
取得 474 kB 用了 3s (149 kB/s)  
選取了原先未選的套件 libpcap0.8:armhf。
(讀取資料庫 ... 目前共安裝了 142695 個檔案和目錄。)
Preparing to unpack .../libpcap0.8_1.8.1-3_armhf.deb ...
Unpacking libpcap0.8:armhf (1.8.1-3) ...
選取了原先未選的套件 ppp。
Preparing to unpack .../ppp_2.4.7-1+4+deb9u1_armhf.deb ...
Unpacking ppp (2.4.7-1+4+deb9u1) ...
選取了原先未選的套件 pppoeconf。
Preparing to unpack .../pppoeconf_1.21_all.deb ...
Unpacking pppoeconf (1.21) ...
Processing triggers for mime-support (3.60) ...
Processing triggers for desktop-file-utils (0.23-1) ...
Processing triggers for libc-bin (2.24-11+deb9u3) ...
Processing triggers for systemd (232-25+deb9u6) ...
Processing triggers for man-db (2.7.6.1-2) ...
Processing triggers for gnome-menus (3.13.3-9) ...
設定 libpcap0.8:armhf (1.8.1-3) ...
設定 ppp (2.4.7-1+4+deb9u1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/pppd-dns.service → /lib/systemd/system/pppd-dns.service.
設定 pppoeconf (1.21) ...
Processing triggers for libc-bin (2.24-11+deb9u3) ...
Processing triggers for systemd (232-25+deb9u6) ...
pi@raspberrypi:~ $ 



2. 設定 pppoeconf 撥接參數 :    

以下列指令設定撥接參數 : 

sudo pppoeconf    

pi@raspberrypi:~ $ sudo pppoeconf  

執行後會出現一系列設定視窗, 大部分只要用預設值即可, 以下都按 "是" : 






此頁預設按 "確定" :




接著兩頁是輸入中華電信 ADSL/光世代撥接帳號與密碼, 也是唯二要設定的地方. 注意, 帳號不包含 "HN", 只要輸入 HN 後面的數字加上 @ip.hinet.net 即可, 例如 12345678@ip.hinet.net, 帳密若忘記可撥 0800080412 詢問客服 :   






接下來只要按 "是" 與 "確定" 就可以了 :







設定完成後即撥接上網了, 可用 inconfig 檢視連線資訊 : 

Plugin rp-pppoe.so loaded.
pi@raspberrypi:~ $ ifconfig       




可見多了一個 ppp0 連線, 其中的 Inet 欄位正是我申請的固定 IP, 用瀏覽器連線此網址可看到我在這台 Pi 3 上用 Nginx 架設的實驗網站 : 





2021年7月3日 星期六

樹莓派架站 (十) : 移植 WordPress 資料庫

上周露天買的 Pi 4 裝機完畢後, 原本想將上次在 Pi 3 上安裝好的整片 Micro SD 卡拿下來製作映像檔, 然後燒錄到 Pi 要用的新卡上面, 這種作法雖然方便, 但由於無法保證燒錄成功 (雖然都是 32 GB 的卡, 實際上可能會差幾十個 Byte, 只要目的卡片較小就會燒錄失敗), 所以決定照之前在 Pi 3 做的過程重新來一遍, 但不是全部, 主要是下面三篇 : 



1. 安裝 LAMP :

重新安裝作業系統與 LAMP 堆疊還有個重要目的 : 測試上回在 Pi 3 備份的資料庫是否能完美地在 Pi 4 上回復. 

首先是根據第一篇筆記下載最新的 Raspbian 映像檔後將其燒入到空白的 Micro SD 卡內, 然後將純文字空白檔案 ssh 與含有開機連線無線基地台的設定檔 wpa_supplicant.conf 複製到 boot 碟根目錄下, 就可以將 Micro SD 卡取出裝進 Pi 4 內 (圖案朝下), 連接鍵鼠組與 HDMI 螢幕, 開機後就能自動連線到指定的 WiFi 基地台了. 上回沒有成功是因為我把 wpa_supplicant.conf 檔名誤打成 wpa_applicant.conf, 真是烏龍. 

做完開機設定後就按照第二篇程序安裝 Apache + PHP + Apache, 只要依序輸入下面八個 sudo 指令以及 MariaDB 的 SQL 指令即可 :

pi@raspberrypi:~ $ sudo apt-get install apache2
pi@raspberrypi:~ $ sudo chown -R pi:www-data /var/www/html/   
pi@raspberrypi:~ $ sudo chmod -R 770 /var/www/html/
pi@raspberrypi:~ $ sudo apt install php php-mbstring
pi@raspberrypi:~ $ sudo apt -y install mariadb-server mariadb-client
pi@raspberrypi:~ $ sudo mysql_secure_installation (設定資料庫密碼, 輸入 5 個 y)
pi@raspberrypi:~ $ sudo mysql -u root
MariaDB [(none)]> UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE User = 'root';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON mydb.* TO 'pi'@'localhost' IDENTIFIED BY 'mysql'; 
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> QUIT;
pi@raspberrypi:~ $ sudo apt-get install phpmyadmin

最後編輯 Apache 2 設定檔, 在最底下加入 phpMyAdmin 的 Apache 設定檔即可 : 

pi@raspberrypi:~ $ sudo nano /etc/apache2/apache2.conf

在最底下加入後存檔 : 

Include /etc/phpmyadmin/apache.conf 

最後重啟 Apache2 伺服器即完成了 :

pi@raspberrypi:~ $ sudo /etc/init.d/apache2 restart 

為了接下來匯入要回復的資料庫檔 wordpress.sql 以及後續 WordPress 上傳方便, 需更改 PHP 的設定檔 php.ini, 將預設的上傳限制 2 MB 放寬為 20 MB : 

pi@raspberrypi:~ $ cd /etc/php/7.3/apache2    
pi@raspberrypi:~ $ sudo nano php.ini    

按 Ctrl+W 搜尋 upload_max_filesize 與 post_max_size, 將這兩個參數都改為 20MB 後存檔. 


2. 安裝 WordPress :

接下來就可以進行 WordPress 安裝了, 雖然可以將原先 Pi 3 上的網站根目錄 (/var/www/html) 整個壓縮後複製到 Pi 4 上, 但因為已過了一個月, WordPress 已有新版釋出, 而且我想要測試看看是否只要移動上傳目錄 /var/www/html/wp-content/uploads 就可以移植完成, 所以還是照第三篇的程序下載 wordpress 解壓縮後放到 Aapche2 的網站根目錄下, 指令集如下 :

pi@raspberrypi:~ $ cd /var/www/html
pi@raspberrypi:/var/www/html $ sudo wget http://wordpress.org/latest.tar.gz
pi@raspberrypi:/var/www/html $ sudo tar xzf latest.tar.gz
pi@raspberrypi:/var/www/html $ sudo mv wordpress/* . 
pi@raspberrypi:/var/www/html $ sudo rm -rf wordpress latest.tar.gz
pi@raspberrypi:/var/www/html $ sudo usermod -a -G www-data pi
pi@raspberrypi:/var/www/html $ sudo chown -R -f www-data:www-data /var/www/html 


3. 匯入 WordPress 備份資料庫 :

接著要在 MariaDB 中建立一個名為 wordpress 資料庫, 才能匯入所備份的資料庫, 同時新建一個資料庫管理帳號 : 

pi@raspberrypi:/var/www/html $ sudo mysql -u root -p
MariaDB [(none)]> create database wordpress;        (建立 wordpress 資料庫)
MariaDB [(none)]> CREATE USER '新帳號'@'localhost' IDENTIFIED BY '新密碼'; 
MariaDB [(none)]> GRANT ALL ON wordpress.* TO '新帳號'@'localhost';   
MariaDB [(none)]> FLUSH PRIVILEGES;     (更新權限表)  
MariaDB [(none)]> quit 

這樣便建好一個空白資料庫 wordpress, 接下來要用 phpMyAdmin 來將 WordPress 的資料庫備份檔匯入這個空白資料庫中, 連線下列網址進入 phpMyAdmin : 

http://127.0.0.1/phpmyadmin 

輸入 MariaDB 帳密登入後選取 wordpress 資料庫, 切換到 Import 頁籤, 選取資料庫檔案 wordpress.sql (我使用 Dropbox 傳檔, 但也可以用 WinSCP ) 後按底下的 Go 鈕即可 :




資料庫匯入完成後就可進行 WordPress 安裝了, 開啟瀏覽器連線 127.0.0.1  :




設定 WordPress 後台管理密碼按 Install 鈕即可 :





4. 設定 WordPress :

接下來是進入 WordPress 後台進行基本設定, 參考第四篇 :  


主要有三 : 
  • 安裝 Gillian 布景主題
  • 安裝 WP-statistics 外掛
  • 安裝 WP-ngrok 外掛
第四篇中其他設定都不用做, 因為那都已在匯入的資料庫中了. 

Gillian 布景也可以下載後再上傳安裝, 參考 : 



5. 複製上傳資料 :

雖然資料庫已匯入成功, 瀏覽 127.0.0.1 也可以順利看到網站中的文章與頁面內容, 但網頁標題圖檔卻未顯示, 且 pdf 檔案超連結也顯示檔案不存在, 原因是這些上傳到媒體庫的檔案都放在網站根目錄下的 wp-content/uploads 子目錄, 必須連同這些都移植到新系統才行. 

首先到 Pi 3 的 Apache2 網站下壓縮 uploads 子目錄下的全部檔案 :

pi@raspberrypi:/var/www/html/wp-content $ cd uploads   
pi@raspberrypi:/var/www/html/wp-content/uploads $ du -sh    (檢視全部資料大小)
38M  .
pi@raspberrypi:/var/www/html/wp-content/uploads $ cd ..   
pi@raspberrypi:/var/www/html/wp-content $ zip -r uploads.zip uploads   

可見上傳到媒體庫的全部檔案總共是 32MB, 將其壓縮為 uploads.zip 檔後用 WinSCP 或 DropBox 傳到 Pi 4 主機下, 解壓縮後移動目錄覆蓋掉目前還是空的 uploads 子目錄 : 

pi@raspberrypi:~/Downloads $ unzip uploads.zip    
pi@raspberrypi:~/Downloads $ ls -ls   
總計 38808
    4 drwxrwxrwx 3 pi pi     4096  5月 30 19:38 uploads      (解壓後的子目錄)
34976 -rw-r--r-- 1 pi pi 35813747  7月  2 21:45 uploads.zip
 3828 -rw-r--r-- 1 pi pi  3919791  6月 29 11:51 wordpress.sql
pi@raspberrypi:~/Downloads $ sudo mv uploads /var/www/html/wp-content/uploads   

此指令是將解壓縮後的 uploads 目錄移動到網頁根目錄的 wp-content 子目錄下覆蓋掉空白的 uploads, 這樣網站標題圖檔以及 pdf 超連結等資源都會顯示了. 


6. 安裝酷音輸入法 :

此外還要安裝酷音輸入法, 因為有時還是需要直接在 Pi 4 的瀏覽器中輸入中文,參考第三篇的 4 這部分 : 


安裝完後要重啟系統才會生效 : 

pi@raspberrypi: $ sudo apt-get install scim-chewing
pi@raspberrypi:~ $sudo reboot

重啟後還要進入 "偏好設定/SCIM 輸入法框架" 進行中英文切換鍵設定, 完畢也是要重啟才有效. 

做完上面這些就完成整個系統移植作業了, 最後是下載執行 ngrok 以取得一個外部網址來讓湘雲老師連線網站檢視看看 (我自己檢查是完全一樣的內容, 超連結都正常), 參考下面這篇 :


注意, 執行 ngrok 轉址之前必須執行自己的授權碼 (token) 獲得 Free 使用身分, 這台 Pi 4 我使用 Gmail 帳號註冊取得授權碼 (註冊完就會顯示) : 




注意, 未執行授權碼將有使用時限, 大約兩小時就會 timeout, 故若要長期使用務必做這動作 (這授權碼要記下來, 以後在新的機器上要做測試時可重用, 忘記的話也可登入 ngrok 查詢) : 

pi@raspberrypi:~/Downloads $ ./ngrok authtoken 1uo824epcGaOLmjKX5Z0YRWtrgy_1BtHiHGavYbTBrLMcA4Ts   
uthtoken saved to configuration file: /home/pi/.ngrok2/ngrok.yml   
pi@raspberrypi:~/Downloads $ ./ngrok http -host-header=localhost 80   

以 ngrok 產生的網址從外網測試 OK, 拖了一個禮拜終於搞定 WordPress 移植到 Pi 4 的作業, 確認原先的設想是正確的, Bingo! 終於完工啦! 

2021年6月13日 星期日

樹莓派架站 (八) : WordPress 網站內容管理 (下)

端午連假在家繼續進行湘雲老師教學研究網站的內容建構, 預計月中大致完工後要停機備份資料庫與製作系統映像檔, 然後購買 Pi 4 來安裝實際運轉的系統, 到時將備份的映像檔燒錄到新的 SD 卡上插到 Pi 4 上驗證看看映像檔是否充分保證系統的回復能力. 

湘雲老師之前的研究計畫曾建立了三個客語文網站, 希望能將其放在教學研究網主選單中, 名之曰 "客家語文網頁建置", 放在 "入聲字標註" 後面 :

1. 客家歇後語(海陸腔客語朗誦)

2. 客家對句理諺(海陸腔客語朗誦)

3. 客話唐詩(海陸腔客語朗誦)

這就是典型子選單的架構, 作法是先在主選單中新增一個 "自訂連結" 的項目, 其超連結網址為目前頁面 (即 #) 的項目, 標題名稱就是主選單上面要顯示的 "客家語文網頁建置", 然後再新增三個同樣是 "自訂連結" 的項目, 但其超連結網址與標題為上述三個網站, 然後將這後面三個項目都設定為 "客家語文網頁建置" 的子項目即可. 

首先進入 "控制台/外觀/選單" 頁面, 如果不是在 "主要選單" 就按 "選取" 鈕選取主要選單 : 




選單頁面左邊用來新增選單項目之用, 右邊則是顯示此選單目前有哪些項目, 先在左邊新增 "自訂連結" 項目, 連結文字為 "客家語文網頁建置", 網址欄要填 "#" 表示此項目是要做子選單用, 而非實際連結 : 




按 "新增至選單" 鈕後會立刻在右邊 "選單結構" 區塊的項目列表最後面出現這個新增項目 :




接著繼續新增三個 "自訂連結" 項目, 就是上面所列的三個對外連結, 這三個的網址就不是 "#", 而是上面所指定的三個網址 : 






完成後右邊選單結構最底下就有四個 "自訂連結" 項目了 : 




依序點選其中第 2, 3, 4 個右邊的倒三角形展開選單, 再點其中的 "成為客家語文網站建置的子項目" 超連結 : 


 


完成後會發現這三個有連外網址的項目都向右內縮, 變成第一個自訂連結項目 "客家語文網站建置" 的子項目了 : 




最後按右下角的 "儲存選單" 即完成子選單設定, 重新整理網頁就可看到效果了 : 




不過子選單連結無法設定 target 屬性 (開啟目標), 所以點選子選單項目後會在目前這個分頁開啟目標網頁, 亦即目前的網頁會被取代, 如果不想被取代, 則要用在滑鼠移到項目上時要按右鍵, 然後點選 "在新分頁開啟連結" :




參考 :

WP 管理員中的選單


10. 部落格文章設定 :

經過這兩周的努力耕耘, 網站的內容已經很豐富, 現在主選單的選項只剩下 "部落格" 是空白的內容, 這個 "部落格" 其實是 WordPress 在安裝時就預先寫入資料庫的一個預設頁面, 因為尚未指定其內容來源, 所以其內容就是標題  "部落格" 三個字而已 : 





這個部落格頁面名稱後面是空白, 表示尚未指定文章來源. 點 "編輯" 進去, 其內容就只是 "部落格" 的標題文字而已 : 



不要在此頁面做任何編輯, 保持原樣退出即可. 

事實上 WordPress 的部落格指的就是將 "控制台/文章" 中所發表的文章依照時間先後順序由下而上堆疊起來的頁面結構, 只要在 "設定/閱讀" 設定將文章頁面丟到此 "部落格" 頁面, 則所發表的文章就會以部落格形式自動排版導入此"部落格" 頁面中了. 

由於目前文章列表中只有安裝時系統預先寫入的第一篇文章而已, 所以我先到 "控制台/頁面" 中新增兩篇湘雲老師之前發表過的文章 :




再到 "控制台/設定/閱讀" 頁面, 首頁我們採用靜態網頁沒錯, 但 "文章頁面" 這一欄卻沒有選擇目的地是哪個頁面 : 




在文章頁面的下拉式選單中選取 "部落格" 頁面作為目的地 : 




最後按左下角的 "儲存設定" 鈕即可. 

這時再去點主選單中的 "部落格" 就會顯示文章堆疊了 :




Bingo ! 終於搞定主選單上的最後一塊拼圖啦! 

參考 :


11. 使用者設定 :

既然部落格功能設定已經完成, 那湘雲老師就可以登入網站開始貼文了, 但前提是必須要有使用者帳號, 這可以在 "控制台/使用者" 中進行設定 : 




按 "新增使用者" 鈕, 填寫使用者資料 : 




其中最重要的是底下的 "使用者角色" 欄位, 每一個角色的權限不同, 越底下的權限越高 (管理員可以掌控整個網站), 各角色權限可參考下面這篇的說明 :


填好後按左下角的 "新增使用者" 鈕即可. 

網站至此大致是完工了, 唯一剩下的問題是在文章與頁面上傳或從媒體庫取用的圖檔, 在瀏覽時都無法顯示, 只秀出一個破裂的圖案, 例如首頁底下貼的圖檔 :




但是在樹莓派上瀏覽則無問題. 安裝了 relative url 等外掛並無效果, 或許跟使用 ngrok 有關, 等停機備份後拿回鄉下用家裡的固定 IP 試試看, 或有空參考下面這篇再測試 :

[WordPress]解決媒體庫與文章破圖的7種技巧

另外是實際佈署伺服器時的網路設定問題, 有點類似目前鄉下那台 Pi 3 做法, 可參考 :


OK, 忙網站架設與管理到今天已三周, 沒想到我居然成功地在樹莓派上憑空弄出個可以運作又長得蠻好看的網站, 這實在出乎我預料之外 (原先預計用 hard coding 的, 版面設計就會拖很久), 而且 WordPress 也不像以前想的三兩天就搞定那麼容易, 還是得花一段時間摸索. 

但 WordPress 經過千錘百鍊之後也真是設計得既簡約又完善, 管理者要上手不外就是把文章, 頁面, 選單, 媒體庫, 以及主題佈景這五項搞清楚就可以了, 難怪全世界網站有三成以上是利用 WordPress 架設的, 真的是很棒的架站軟體. 


2021-06-18 : 補充 :

今天檢查了一下安裝到現在 32GB 的 MicroSD 卡使用情形 :

pi@raspberrypi:/var/www/html $ df -h
檔案系統        容量  已用  可用 已用% 掛載點
/dev/root        29G   11G   18G   37% /
devtmpfs        430M     0  430M    0% /dev
tmpfs           463M   47M  416M   11% /dev/shm
tmpfs           463M   47M  416M   11% /run
tmpfs           5.0M  4.0K  5.0M    1% /run/lock
tmpfs           463M     0  463M    0% /sys/fs/cgroup
/dev/mmcblk0p1  253M   48M  205M   19% /boot
tmpfs            93M  8.0K   93M    1% /run/user/1000

含系統才用掉 11GB (37%), 還剩下 18GB 可用, 看來 32GB 應該夠用啦! 

用 du -sh 檢查網站根目錄下檔案所占大小 : 

pi@raspberrypi:/var/www/html $ du -sh    
207M  

複製整個網站目錄要 207MB, 這裡面也包括上傳的媒體檔案. 

參考 :


2021年6月10日 星期四

樹莓派架站 (七) : WordPress 網站內容管理 (中)

今晚繼續來增添湘雲老師網站中 "研究" 與 "教學" 這兩部分的內容. 



6. 頁面跳轉的超連結設定 :

研究成果分成四項, 所以我的構想是在研究頁面中加入一個清單, 填入四個項目標題, 接著再分別建立四個研究成果頁面, 然後在研究頁面的清單中用超連結指向這四個研究項目的頁面網址, 這樣點選項目超連結時就會是跳轉到項目的頁面了. 

四個研究成果的原始資料為四個 WORD 檔案, 除第一項研究成果因為 WORD 表格太寬轉成 HTML 後超出 WordPress 內容區而改用編輯器手動輸入內容外, 其餘三個研究都是用 Office 365 轉成 HTML 檔後, 用純文字編輯器擷取其中的表格內容部分, 複製貼到 "自訂 HTML" 區塊中, 詳細作法參考上一篇 "樹莓派架站 (六) : WordPress 網站內容管理 (上)". 

先分別建立這四個研究成果的頁面 : 







然後在之前建好的空白頁面 "研究" 中新增一個清單方塊, 輸入這四個研究成果項目 : 




回到全部頁面列表, 點選這四個研究成果頁面右下方的 "檢視" 超連結, 





這會開啟新網頁顯示此頁面內容, 複製網址列 "/" 後面的頁面 id 字串, 例如 ?page_id=209 :




回到控制台, 點選頁面列表中的 "研究" 進入頁面編輯器, 選取清單第一項文字內容後按編輯器上的超連結按鈕, 於彈出視窗中貼上剛剛複製的 page_id 字串 :




如此這般依序將四個研究成果項目都加上 page_id 的超連結, 然後按右上角的 "更新" 鈕 : 


點按網頁主選單的 "研究" 顯示其頁面, 會發現四個項目都已經變成超連結, 點每個項目就會跳轉到該項目的頁面 : 




例如按第一項研究成果超連結 : 





7. 上傳 pdf 檔與修改超連結設定 :

接下來是主選單中的 "教學" 部分, 這部分包含一份 WORD 格式的課綱索引以及許多課綱 pdf 檔案, 由於沒有原始 WORD 檔且基於 pdf 檔可保持格式考量, 於是決定課綱的超連結改為開啟新網頁載入已上傳到媒體庫中的 PDF 檔. 

首先是將課綱索引 WORD 檔另存成 HTML 格式, 照前面的做法複製其中的表格部分, 然後貼入 "教學" 頁面裡的 "自訂 HTML" 區塊 : 





返回頁面列表檢視 "教學" 這個頁面 :





原始 WORD 檔案內容為研究所與大學部的兩張課綱表, 其原本超連結都是連結到 PC 本機檔案總管硬碟下的 PDF 檔, 故目前點超連結都無法顯示檔案 (因為現在是在伺服器裡). 只要把這些課綱 PDF 檔上傳到媒體庫, 取得它們在媒體庫中的檔案網址, 然後以此更新 "教學" 頁面中的超連結即可.  

接下來要把各科目課綱上傳到媒體庫, 在 "控制台/媒體" 頁面按 "新增媒體" 鈕依序上傳每一門課的課綱 pdf 檔 : 





上傳完畢後點按 pdf 檔 (例如第一個課綱 "台灣詩學.課綱.pdf") 會出現附件詳細資料頁面, 按右下角的 "複製網址至剪貼簿" 鈕 : 




然後回到 "控制台/頁面" 中點 "教學" 頁面進入編輯器, 因這頁面是 "自訂 HTML" 內容區塊, 預設顯示網頁效果, 要先按右方的 "..." 鈕, 在彈出選單中點選 "轉換成 HTML" : 




這時編輯器原本顯示網頁效果的頁面就變成顯示其 HTML 原始碼, 然後在其中尋找 "台灣詩學.課綱.pdf", 如下圖所示, 這是原始 WORD 檔中所設的超連結 :




將 href 屬性中的網址選取後按滑鼠右鍵貼上, 並且在後面添加 target="_blank" 屬性, 目的是點按此超連結時會開啟新分頁來顯示此 pdf 檔 :




其他課綱 pdf 檔依序上傳到媒體庫後也是如法炮製, 複製其在媒體庫中的檔案網址, 然後更新 "教學" 頁面中的原網址並添加 target 屬性, 改完後按更新即可. 

注意, PHP 預設檔案上傳限制為 2MB 以下, 這可呼叫 phpinfo() 函數查得 :




如果超過這個限制可參考下面這篇做法將限制放寬 : 


似乎改 .htaccess 方式最簡單, 但我對這不熟, 也沒時間研究, 最重要的是我在網站根目錄下沒找到這個檔案 (系統隱藏檔?), 所以我參考了下面 Tsung's Blog 的這篇文章去改 PHP 目錄底下的 php.ini 檔 :


這個 php.ini 檔位於 /etc/php 目錄下, 底下還要看自己安裝的 PHP 版本 : 

pi@raspberrypi: $ cd /etc/php   
pi@raspberrypi:/etc/php $ ls -ls   
總計 8
4 drwxr-xr-x 3 root root 4096  5月 20 16:19 7.1
4 drwxr-xr-x 5 root root 4096  5月 20 11:17 7.3     

這裡有 PHP 7.1 與 7.3 版本目錄, 我前面安裝的是 7.3 版 (這個 7.1 是何時安裝的?) : 

pi@raspberrypi:/etc/php $ cd 7.3    
pi@raspberrypi:/etc/php/7.3 $ ls -ls   
總計 12
4 drwxr-xr-x 3 root root 4096  5月 20 11:23 apache2   
4 drwxr-xr-x 3 root root 4096  5月 20 11:22 cli
4 drwxr-xr-x 2 root root 4096  5月 20 16:26 mods-available

切換到 apache2 目錄下 : 

pi@raspberrypi:/etc/php/7.3 $ cd apache2      
pi@raspberrypi:/etc/php/7.3/apache2 $ ls -ls   
總計 76
 4 drwxr-xr-x 2 root root  4096  5月 20 16:26 conf.d
72 -rw-r--r-- 1 root root 71958  2月 14 00:31 php.ini   

終於找到 php.ini 了, 以 nano 開啟 (必須用 sudo 權限) : 

pi@raspberrypi:/etc/php/7.3/apache2 $ sudo nano php.ini    

按 Ctrl+W 搜尋 upload_max_filesize 可知其預設值為 2MB, 我將其改成 20MB : 




順便搜尋 post_max_size, 可知其預設為 8MB, 我將其改為 20MB :




按 Ctrl+O 存檔再按 Ctrl+X 跳出後, 以下列指令重新啟動 Apache2 伺服器 : 

pi@raspberrypi:/etc/php/7.3/apache2 $ /etc/init.d/apache2 restart    

這時再用 phpinfo() 去看, 最大上傳限制已改為 20MB 了 :




到 "控制台/媒體" 上傳媒體時, 顯示最大檔案限制為 20MB :




這樣修改後就可以順利上傳 20MB 以下的檔案了. 


8. 頁內錨點設定 :

上面的超連結 (a 標籤的 href 屬性) 目標有下列三種 : 
  • 連結到 WordPress 的頁面或文章 (網址例如 ?page_id=xxx)
  • 連結到媒體庫中的檔案 (網址例如 /wp-content/xxxx.pdf)
  • 連結到外部網頁 (網址例如 http://www.google.com)
其實超連結也可以連到自己網頁內的指定地方 (稱為 Anchor 錨點), 作法如下圖所示 : 




參考 :