2014-02-11 3 views
0

Я довольно новичок в кодировании, так голый со мной на этом. Я перемещаю часть своего html в свой файл functions.php и меняю этот html на функцию, которую я тогда могу перезвонить в свои файлы шаблонов там, где это необходимо.Изменение html в функции

Это только одна часть моего HTML, отображающих кнопку твиттер и facebook в авторе поле с URL, который будет подключаться к авторам facebook и щебет страниц

<div class="profile-links"> 

       <?php if (get_the_author_meta('facebook') != '') ?> 
        <a href="http://www.facebook.com/<?php echo wp_kses(get_the_author_meta('facebook'), null); ?>" title="<?php printf(esc_attr__('Follow %s on Facebook', 'pietergoosen'), get_the_author()); ?>"> 
         <img src="<?php echo get_stylesheet_directory_uri(); ?>/images/facebook.png" height="32px" width="32px" alt="<?php printf(esc_attr__('Follow %s on Facebook', 'pietergoosen'), get_the_author()); ?>" /></a> 


       <?php if (get_the_author_meta('twitter') != '') ?> 
        <a href="http://www.twitter.com/<?php echo wp_kses(get_the_author_meta('twitter'), null); ?>" title="<?php printf(esc_attr__('Follow %s on Twitter', 'pietergoosen'), get_the_author()); ?>"> 
         <img src="<?php echo get_stylesheet_directory_uri(); ?>/images/twitter.png" height="32px" width="32px" alt="<?php printf(esc_attr__('Follow %s on twitter', 'pietergoosen'), get_the_author()); ?>" /></a> 


     </div> 

Это код, до сих пор для этого конкретный раздел, который я ввел в действие

foreach ($services as $name => $service){ 

$authorDetails = get_the_author(); 
$AuthorMeta = get_the_author_meta($service['name']); 

$services = array (
     'facebook' => array (
      'url' => "http://www.facebook.com/' . echo . 'wp_kses($AuthorMeta, null)'", 
      'text' => 'Follow %s on Facebook' 
     ), 
'twitter' => array (
      'url' => "http://www.twitter.com/' . echo . 'wp_kses($AuthorMeta, null)'", 
      'text' => 'Follow %s on Twitter' 
     ) 
    ); 
} 

    $img_base = get_stylesheet_directory_uri() . '/images/%s.png'; 

    foreach ($services as $name => $service){ 
    if ($AuthorMeta != '') { 
     $href = sprintf($service['url']); 
     $src = sprintf($img_base, $name); 
     $size = '32'; 

    echo '<div class="profile-links">'; 

      printf(
       '<a href="%1$s" title="%2$s"><img src="%3$s" alt="%2$s" height="%4$d" width="%4$d"/></a>', 
       $href, 
       esc_attr(__($service['text'], 'pietergoosen'), $authorDetails), 
       $src, 
      $size 
     ); 

    echo '</div>'; 

    } 
} 

Моя проблема заключается в том, что я неправильно получаю URL. Как преобразовать URL-адрес в html в тот, который я должен использовать в поле «url» в моей функции. Я надеюсь, что весь код, который я поставил, имеет смысл.

+0

вы должны пометить это для wordpress слишком – Namal

+0

Это вопрос Wordpress? – Hamish

+0

Смотрите: http://wordpress.stackexchange.com/ – Hamish

ответ

0

При конкатенации значений не нужно писать echo. А призывы к функциям не должны быть внутри кавычек. Так должно быть:

$services = array (
    'facebook' => array (
     'url' => "http://www.facebook.com/" . wp_kses($AuthorMeta, null), 
     'text' => 'Follow %s on Facebook' 
    ), 
    'twitter' => array (
     'url' => "http://www.twitter.com/" . wp_kses($AuthorMeta, null), 
     'text' => 'Follow %s on Twitter' 
    ) 
); 
+0

Спасибо, Бармар. –

Смежные вопросы