問題描述
我已經在自定義 WordPress 主題中實現了 Ryan Fait 的 oh-so-common sticky footer 。我現在注意到,如果我將 Wordpress 管理欄實現到我的頁面,高達 28 像素 (目前至少 Wordpress 版本),它將粘性頁腳也降低了 28 像素。
這是管理員欄:
無論如何,Wordpress 的工作方式是,管理員欄根據管理員用户如何設置自己的偏好設置,不會顯示在頁面的頂部。所以我不想簡單地刪除它的主題。
我可以明白地在事件觸發後使用 jQuery 來查看管理欄是否存在,並相應地更改頁腳,但是如果可能的話,我寧願嘗試避免這種情況,只需讓頁面生成正確就可以開始… 有任何想法嗎?
此外,我想讓主題與 near-future 版本的 Wordpress 一起使用。因此,如果在未來的版本中,他們決定將管理欄更改為高於 28 像素高的位置,那麼我不希望我的代碼被調整以補償更改。
最佳解決方案
頁腳被推出,因為當管理員欄設置為顯示時,WP 將向您的頁面添加頁邊距。負責此功能的功能稱為_admin_bar_bump_cb(),位於 wp-includes /admin-bar.php 。壞消息是它使用一個編碼為 28 像素的設置 (意味着您將無法獲取它並在函數中使用它),以及一個”!important” 聲明,您將無法一直重寫以避免未來的高度變化。
我想你最好的辦法是檢查管理員是否正在顯示和調整頁腳。這應該是簡單的添加到您的 functions.php:
add_action('wp_head', 'adjust_sticky_footer');
function adjust_sticky_footer() {
if(is_admin_bar_showing()) { ?>
<style type="text/css">
.footer { /* Adjust selector according to your theme */
bottom: 28px;
}
</style>
<?php
}
}
我假設您的頁腳已經分配了 position: relative,根據您提供的鏈接的示例。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。
