2014-09-26 16 views
1

對不起,如果標題沒有任何意義,我嘗試了我最好的措辭。正如標題所示,我正在嘗試向我的4個社交媒體圖標的php文件添加其他變量,但我不知道要使用哪些命令或如何對其進行編碼。我試圖在谷歌和在這裏查找它,但我甚至不知道要查找什麼詞,我相對新的CSS,HTML,PHP /任何人都可以幫助,如果你想看到圖標,你可以去到我的網站http://boasish.com

以下是當前在我的php文件中控制4個社交媒體圖標的$ network命令。

foreach ($this->buttons as $network => $options) { 
    if ($this->options['show'][$network]) { 
     /*** Apply Shortcodes */ 
     $shortcodes = array(
      '[site_name]', 
      '[permalink]', 
      '[post_title]', 
      '[post_image_url]', 
      '[title_encode]' 
      ); 
     $shortcode_values = array(
      $site_name, 
      $permalink, 
      $post_title, 
      $post_image_url, 
      $title_encode 
      ); 
     $widget = str_replace($shortcodes,$shortcode_values,$options['widget']); 

     $to_return .= ' 
    <div class="spyr_sliding_share_button spyr_sb_' . $network . '"> 
     <a href="#" class="icon icon-' . $network . '"><span>' . $options['name'] . '</span></a> 
     <div class="spyr_sb_inner">' . $widget . '</div> 
     </div>'; 
     } 
    } 
+0

你的意思是你想要四個變量,每個變量都包含特定媒體按鈕的「HTML」? – Bono 2014-09-26 22:21:31

+0

@Bono是的,確切地說。 – k5432 2014-09-26 22:23:36

回答

0

我以爲你想保持你的$to_return變量,以保持您的網站的工作。

$media_buttons_html = array(); 
foreach ($this->buttons as $network => $options) { 
    //All of your other code above 
    $html = '<div class="spyr_sliding_share_button spyr_sb_' . $network . '"> 
           <a href="#" class="icon icon-' . $network . '"> 
            <span>' . $options['name'] . '</span> 
           </a> 
           <div class="spyr_sb_inner">' . $widget . '</div> 
          </div>'; 

    $to_return .= $html; 
    $media_buttons_html[] = $html; 
} 

像這樣的東西應該工作。您可以訪問array中索引爲03的按鈕。類似這樣的:

$button_facebook = $media_buttons_html[0]; 
$button_instagram = $media_buttons_html[1]; 
$button_twitter = $media_buttons_html[2]; 
$button_googleplus = $media_buttons_html[3]; 

希望能爲你解決問題。

編輯
讓你的foreach循環再次原來的(最初放在一個),並將此之下有,或者某個地方,你認爲它會很好地配合。 (您可能需要/希望將該功能放在文件的底部)。

$media_buttons_html = create_media_buttons(); 

function create_media_buttons(){ 
    $links = array(){ 
     'facebook' => 'somefacebooklink', 
     'instagram' => 'someinstagramlink', 
     'twitter' => 'sometwitterlink', 
     'gplus' => 'somegpluslink', 
    } 

    $media_buttons_html = array(); 
    foreach($links as $key => $link){ 
     $media_buttons_html[$key] = '<div class="spyr_sliding_share_button spyr_sb_' . $network . '"> 
             <a href="'. $link .'" class="icon icon-' . $network . '"> 
               <span>' . $options['name'] . '</span> 
             </a> 
             <div class="spyr_sb_inner">' . $widget . '</div> 
            </div>'; 
    } 

    return $media_buttons_html; 
} 

然後,您可以通過以下方式使用$media_buttons_html

$facebook_button = $media_buttons_html['facebook']; 
+0

好吧,我認爲,工作,謝謝。這可能聽起來很愚蠢,但是如何添加一個鏈接到'$ button_facebook = $ media_buttons_html [0];'例如。 – k5432 2014-09-26 23:25:26

+0

@ k5432嗯,那取決於。你想要什麼樣的鏈接?你準備怎麼處理這個變量?那麼我可能會給你一個更好的解決方案。 – Bono 2014-09-26 23:29:45

+0

我正在尋找添加共享鏈接到每個按鈕/圖標。另外我只注意到現在有兩個Twitter圖標。 – k5432 2014-09-26 23:33:44

0

擴大對什麼波諾有:

我認爲這將是更直觀(和更少的後來回憶)使用的以網絡名稱作爲關鍵字而不是簡單數組的關聯數組。 3個月後,我不記得$media_buttons_html[0]; == Facebook的代碼。

另外,如果您希望稍後添加更多,您可以稍微自動化一些變量。

$media_buttons_html = array(); 
foreach ($this->buttons as $network => $options) { 
    //All of your other code above 
    $html = '<div class="spyr_sliding_share_button spyr_sb_' . $network . '"> 
          <a href="#" class="icon icon-' . $network . '"> 
           <span>' . $options['name'] . '</span> 
          </a> 
          <div class="spyr_sb_inner">' . $widget . '</div> 
         </div>'; 

$to_return .= $html; 
$media_buttons_html[$network] = $html; 
${'button_'.$network} = $html 
} 

所以現在$media_buttons_html樣子$media_buttons_html['facebook']。 除此之外,您可以使用$button_facebook而不必在之後明確設置它。

如果您稍後再添加$network s,則不需要額外的變量。

相關問題