Список повторных ссылок на ссылки

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

function pietergoosen_sosiale_netwerk_deel_knoppies() { <strong>Deel die pos met ander</strong><p </p> <a href="http://www.facebook.com/sharer.php?u=<?php the_permalink();?>&amp;amp;t=<?php the_title(); ?>" title="Share on Facebook."> <img src="<?php bloginfo('stylesheet_directory'); ?>/images/facebook.png" alt="Share on Facebook" id="sharethis-last" /></a> <a href="http://twitter.com/home/?status=<?php the_title(); ?> : <?php the_permalink(); ?>" title="Tweet this!"> <img src="<?php bloginfo('stylesheet_directory'); ?>/images/twitter.png" alt="Tweet this!" /></a> <a href="http://www.google.com/bookmarks/mark?op=edit&bkmk=<?php the_permalink();?>&amp;amp;t=<?php the_title(); ?>" title="Google+1."> <img src="<?php bloginfo('stylesheet_directory'); ?>/images/google.png" alt="Google+1" id="Google+1" /></a> <a href="http://www.stumbleupon.com/submit?url=<?php the_permalink(); ?>&amp;amp;title=<?php the_title(); ?>" title="StumbleUpon."> <img src="<?php bloginfo('stylesheet_directory'); ?>/images/stumbleupon.png" alt="StumbleUpon" /></a> <a href="http://digg.com/submit?phase=2&amp;amp;url=<?php the_permalink(); ?>&amp;amp;title=<?php the_title(); ?>" title="Digg this!"> <img src="<?php bloginfo('stylesheet_directory'); ?>/images/digg.png" alt="Digg This!" /></a> <a href="http://del.icio.us/post?url=<?php the_permalink(); ?>&amp;amp;title=<?php the_title(); ?>" title="Bookmark on Delicious."> <img src="<?php bloginfo('stylesheet_directory'); ?>/images/delicious.png" alt="Boekmerk op Delicious" /></a> <a href="https://mail.google.com/mail/?view=cm&fs=1&to&su=<?php the_permalink();?>&amp;amp;t=<?php the_title(); ?>" title="epos."> <img src="<?php bloginfo('stylesheet_directory'); ?>/images/gmail.png" alt="epos" id="epos dit" /></a> } 

Это не работает. Как я должен делать это правильно?

Есть пара проблем с кодом:

  1. Вы должны закрыть контекст PHP, если хотите вывести простой HTML: function foo(){ ?><strong><?php }
  2. Не повторяйте себя. Всегда сохраняйте повторяющиеся значения в переменных или функциях. Написание <a href более одного раза является ошибкой.
  3. Не используйте get_the_title() в атрибутах. the_title_attribute( array ( 'echo' => FALSE ) ) используйте the_title_attribute( array ( 'echo' => FALSE ) ) , или вы можете получить неожиданную разметку в свой HTML-вывод.
  4. Не используйте bloginfo('stylesheet_directory') . Используйте get_stylesheet_directory_uri() для дочерних тем и get_template_directory_uri() во всех остальных случаях.
  5. Не выключайте дважды.
  6. URL-адрес общего доступа для Delicious – https://delicious.com/post? , Это было годами.

Полученный код может выглядеть так:

 function pietergoosen_sosiale_netwerk_deel_knoppies() { $services = array ( 'facebook' => array ( 'url' => 'http://www.facebook.com/sharer.php?u=%1$s&amp;t=%2$s', 'text' => 'Share on Facebook.' ), 'twitter' => array ( 'url' => 'http://twitter.com/home/?status=%1$s%%20-%%20%2$s', 'text' => 'Tweet this!' ), 'google' => array ( 'url' => 'http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=%2$s&amp;t=%2$s', 'text' => 'Google+1.' ), 'stumbleupon' => array ( 'url' => 'http://www.stumbleupon.com/submit?url=%1$s&amp;title=%2$s', 'text' => 'StumbleUpon.' ), 'digg' => array ( 'url' => 'http://digg.com/submit?phase=2&amp;url=%1$s&amp;title=%2$s', 'text' => 'Digg this!' ), 'delicious' => array ( 'url' => 'https://delicious.com/post?url=%1$s&amp;title=%2$s', 'text' => 'Bookmark on Delicious.' ), 'gmail' => array ( 'url' => 'https://mail.google.com/mail/?view=cm&amp;fs=1&amp;to&amp;su=%1$s&amp;t=%2$s', 'text' => 'Share per Gmail.' ) ); $img_base = get_template_directory_uri() . '/images/%s.png'; $title = the_title_attribute( array ( 'echo' => FALSE ) ); $url = urlencode( get_permalink() ); print '<h4>Deel die pos met ander</h4>'; foreach ( $services as $name => $service ) { $href = sprintf( $service['url'], $url, urlencode( $title ) ); $src = sprintf( $img_base, $name ); printf( '<a href="%1$s" title="%2$s"><img src="%3$s" alt="%2$s" /></a>', $href, esc_attr( $service['text'] ), $src ); } } 

Теперь вы можете вызвать эту функцию в шаблоне:

 pietergoosen_sosiale_netwerk_deel_knoppies(); 

Прежде всего, вы никогда не закрывали свои php-теги.

Во-вторых, не каждый раз вызывайте функции для каждой социальной иконки. Сохраните значения в переменных вместо этого, чтобы ускорить процесс.

Было бы так:

 <?php function my_social_buttons() { $title = esc_attr( get_the_title() ); $permalink = esc_attr( get_the_permalink() ); $directory = get_template_directory_uri(); ?> <strong>Deel die pos met ander</strong> <a href="http://www.facebook.com/sharer.php?u=<?php echo $permalink;?>&amp;amp;t=<?php echo $title; ?>" title="Share on Facebook."> <img src="<?php echo $directory; ?>/images/facebook.png" alt="Share on Facebook" id="sharethis-last" /></a> <a href="http://twitter.com/home/?status=<?php echo $title; ?> : <?php echo $permalink; ?>" title="Tweet this!"> <img src="<?php echo $directory; ?>/images/twitter.png" alt="Tweet this!" /></a> <a href="http://www.google.com/bookmarks/mark?op=edit&bkmk=<?php echo $permalink;?>&amp;amp;t=<?php echo $title; ?>" title="Google+1."> <img src="<?php echo $directory; ?>/images/google.png" alt="Google+1" id="Google+1" /></a> <a href="http://www.stumbleupon.com/submit?url=<?php echo $permalink; ?>&amp;amp;title=<?php echo $title; ?>" title="StumbleUpon."> <img src="<?php echo $directory; ?>/images/stumbleupon.png" alt="StumbleUpon" /></a> <a href="http://digg.com/submit?phase=2&amp;amp;url=<?php echo $permalink; ?>&amp;amp;title=<?php echo $title; ?>" title="Digg this!"> <img src="<?php echo $directory; ?>/images/digg.png" alt="Digg This!" /></a> <a href="http://del.icio.us/post?url=<?php echo $permalink; ?>&amp;amp;title=<?php echo $title; ?>" title="Bookmark on Delicious."> <img src="<?php echo $directory; ?>/images/delicious.png" alt="Boekmerk op Delicious" /></a> <a href="https://mail.google.com/mail/?view=cm&fs=1&to&su=<?php echo $permalink;?>&amp;amp;t=<?php echo $title; ?>" title="epos."> <img src="<?php echo $directory; ?>/images/gmail.png" alt="epos" id="epos dit" /></a> <?php }