Постоянная ссылка для недавней публикации

Я пытаюсь настроить код для отправки сообщения в StumbleUpon с моего сайта Rothmania .

Код читает href="http://www.stumbleupon.com/submit?url=<?php the_permalink(); ?>&title=<?php the_title(); ?>" alt="" title="">

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

Примечание: это ручная кодировка, не связанная с темой и не использующая плагин. Любая помощь здесь будет оценена.

Редактировать –

Теперь у меня есть этот код –

 <?php $su_link = $su_title = ''; if (is_single()) { // We're showing a single blog post // => take the data and deal with it $su_link = get_permalink(); $su_title = get_the_title(); } elseif (is_home()) { // We're showing the 'home' archive // => take the first post's data and deal with it $ID = $GLOBALS['posts'][0]->ID; $su_link = get_permalink($ID); $su_title = get_the_title($ID); } if ('' !== $su_link) { // We have data // => generate the link echo '<a href="http://www.stumbleupon.com/submit?url='.urlencode($su_link).'&title='.urlencode($su_title).'" ' .'title="'.$su_title.'">' .'Link' .'</a>'; } ?> <html> <head> <title>CoffeeCup Image Mapper map file</title> <meta name="generator" content="CoffeeCup Image Mapper"> </head> <body> <!-- Created by CoffeeCup Image Mapper (www.coffeecup.com) --> <!-- Beginning of Client Side Image Map --> <img src="http://img.wordpressask.com/permalinks/sociallinks.jpg" USEMAP="#sociallinks" BORDER=0> <map name="sociallinks"> <area name="facebook" shape="rect" coords="19,0,76,48" href="https://www.facebook.com/joetaxpayer" alt="" title=""> <area name="twitter" shape="rect" coords="73,0,129,48" href="https://twitter.com/JoeTaxpayerBlog" alt="" title=""> <area name="stumble" shape="rect" coords="126,0,179,48" href="http://www.stumbleupon.com/submit?url=<?php the_permalink(); ?>&title=<?php the_title(); ?>" alt="" title=""> <area name="rss" shape="rect" coords="177,0,243,48" href="http://rothmania.net/feed/" alt="" title=""> </map> <!-- End of Client Side Image Map --> </body> </html> 

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

Solutions Collecting From Web of "Постоянная ссылка для недавней публикации"

Проблема в том, что функции the_title() , the_ID() и т. Д. the_ID() доступ к текущему сообщению, которое является последним после того, как запрос был обработан полностью.

Поставьте следующее:

  • в текстовом виджетах, завернутых в <?php и ?> , в то время как выполнение PHP включено для текстовых виджетов (например, с помощью Exec-PHP и т. п.);
  • в виджетах PHP Code (снова завернутый в <?php и ?> );
  • жестко закодированный в вашем sidebar.php (или любой другой файл шаблона вашей боковой панели может быть назван);
  • в functions.php , завернутый в функцию, затем вызовите функцию там, где вы хотите.

Поделитесь с последними сообщениями

// EDIT относительно вашего последнего комментария:

 <?php $su_link = $su_title = $su_href = ''; if (is_single()) { // We're showing a single blog post // => take the data and deal with it $su_link = get_permalink(); $su_title = get_the_title(); } elseif (is_home()) { // We're showing the 'home' archive // => take the first post's data and deal with it $ID = $GLOBALS['posts'][0]->ID; $su_link = get_permalink($ID); $su_title = get_the_title($ID); } if ('' !== $su_link) { // We have data // => generate the link $su_href = 'http://www.stumbleupon.com/submit?url='.urlencode($su_link).'&title='.urlencode($su_title); } ?> <map name="sociallinks"> <area name="stumble" shape="rect" coords="126,0,179,48" href="<?php echo $su_href; ?>" title="<?php echo $su_title; ?>" /> </map> 

get_permalink будет принимать идентификатор сообщения или пост-объект, поэтому с небольшим переписыванием он должен делать то, что вы хотите.

 $perm = (is_home() && !empty($posts[0])) ? get_permalink($posts[0]) : get_permalink(); $title = (is_home() && !empty($posts[0])) ? get_the_title($posts[0]->ID) : get_the_title(); ?> <a href="http://www.stumbleupon.com/submit?url=<?php echo urlencode($perm); ?>&title=<?php echo urlencode($title); ?>" alt="" title="">test</a> 

$posts[0] должно быть первым сообщением в основном запросе. Если вы создали вторичный запрос, эта часть может быть неправильной.