2017-03-23 47 views
1

我有一個文本樣式,它使用頁面上的圖像在文本上創建該圖像的輪廓。例如,以下是文字設置爲「聯繫我們」時的顯示方式。在多個頁面的CSS文本背景中使用PHP值

enter image description here

CSS

<style> 
    .heading-background { 
     background: url(<?php the_field('background'); ?>) center center/cover; 
     -webkit-background-clip: text; 
     -webkit-text-fill-color: transparent; 
    } 
</style> 

我使用WordPress和後臺通過PHP,這需要我的地方風格塊中的每個頁面,它是用來選擇的。如果我需要進行更改,我必須找到每個樣式塊並單獨更新它們。我無法將它移動到CSS文件中,因爲PHP變量對於顯示背景是必需的。

是否可以將此類移動到單個文件中以發送PHP變量並接收更新後的塊?

+1

將所有這種風格放在一個php文件中,在其中回顯出這個標籤,然後在每個頁面上包含這個php。這樣,如果你需要改變任何東西,只需更改包含的PHP文件。 –

+1

您可以將這個塊提取到一個單獨的php文件,並將include_once或require_once包含到所有頁面中。或者,你可以用PHP生成css文件,但我認爲這將是一個矯枉過正的案件。 – Runnick

+0

同意意見。有一天,[CSS變量](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_variables#Browser_compatibility)可能是一個選項。 – ficuscr

回答

2

如果我正確理解了這個,你可以把CSS放在一個名爲background.php的文件中。然後在每個頁面上添加它,但在它上面獲取背景並將其放入一個php變量中。因此,像這樣:

background.php

<style> 
    .heading-background { 
     background: url(<?php echo $bg_field; ?>) center center/cover; 
     -webkit-background-clip: text; 
     -webkit-text-fill-color: transparent; 
    } 
</style> 

page_1.php

<?php $bg_field = get_field('background'); ?> 
<?php get_template_part('background'); ?> 

然後再重複你然而,許多頁面模板。這裏有一些關於get_template_part()功能的獎勵信息。

+0

這對解決它非常有幫助!我在'get_template_part'傳遞變量時遇到了問題,'include(locate_template('background.php'));'爲我工作。 – cul8r