вывод части поста в tooltip’e. возможно?

Здравствуйте!
Появилась такая идея – в Recent Posts при наведении на ссылку поста чтобы в tooltip’e (скрипт на JS, примеры) появлялась часть ЭТОГО поста. Вопрос в том, наверное – как подобраться к этому посту автоматом, т.е. есть ли специальная функция для этого и как правильно вывести часть поста. У кого-нибудь есть идеи?

Заранее благодарен за ответы!:)

Есть идея. Читайте Кодекс!

Почитайте тут
http://www.seleckis.lv/scripting/tooltip-javascript

Да, супер, спасибо mikolka и Ю.Б.!!!
конечно пытаюсь в кодексе найти функцию, которая бы отвечала бы за вывод определенного поста, но вроде бы ее не существует и наверно придется парсить по ссылке…

walaby, Вы для начала разберите по косточкам несколько разных тем. 🙂

Содержимое поста выводят функции the_content() и the_excerpt(). А еще есть объекты, из которых можно извлечь много чего. Добавьте внутри Цикла (который Loop) <?php print_r($post) ?> – увидите много интересного.

однажды задался вопросом, как получить и вывести рандомный пост из определенной категории. решение нашел (код ниже). а что-бы в тултипе показать кантент – используй AJAX, фреймворк посоветую – jQuery.

function random_posts($limit, $len, $before_title = '<li>', $after_title = '</li>', $before_post = '', $after_post = '', $show_pass_post = false, $show_excerpt = false) {
  global $wpdb, $tableposts;
  $sql = "SELECT ID, post_title, post_content FROM $tableposts WHERE post_status = 'publish' ";
    if(!$show_pass_post) $sql .= "AND post_password ='' ";
    $sql .= "ORDER BY RAND() LIMIT $limit";
  $posts = $wpdb->get_results($sql);
    $output = '';
  foreach ($posts as $post) {
    $post_title = stripslashes($post->post_title);
    $post_title = str_replace('"', '', $post_title);
    $permalink = get_permalink($post->ID);
    $post_content = strip_tags($post->post_content);
    $post_content = stripslashes($post_content);
    $output .= $before_title . '<a href="' . $permalink . '" rel="bookmark" title="' . $post_title . '">' . $post_title . '</a>' . $after_title;
    if($show_excerpt) {
      $words=split(" ",$post_content);
      $post_strip = join(" ",array_slice($words,0,$len));
      $output .= $before_post . $post_strip . $after_post;
    }
    }
    echo $output;
}

и вызываешь:

<?php global $wpdb, $wp_db_version;
$rand_posts = $wpdb->get_results("SELECT post_content FROM $wpdb->posts,$wpdb->terms,$wpdb->term_relationships WHERE $wpdb->posts.ID = $wpdb->term_relationships.object_id AND $wpdb->terms.term_id = $wpdb->term_relationships.term_taxonomy_id AND $wpdb->posts.post_status = 'publish' AND $wpdb->terms.name = 'FAQ' ORDER BY RAND() LIMIT 1");
foreach($rand_posts as $_posts){foreach($_posts as $posts){
if($posts <> '') { ?>
<div id="minifaq">
<span class="sbtitle">Сайт - это..</span>
&nbsp; &nbsp; <?php echo $posts; ?>
</div>
<?php }} ?>

вот такое направление. аякс наработки черпай отсюда: http://www.ajaxrain.com/

Добавьте внутри Цикла  (который Loop) <?php print_r($post) ?> - увидите много интересного.

да, вот это класс!!! 😀 (я так понял в нутри цикла кода tooltip’a в JS ?)

однажды задался вопросом, как получить и вывести рандомный пост из определенной категории. решение нашел (код ниже). а что-бы в тултипе показать кантент - используй AJAX, фреймворк посоветую - jQuery. 
function random_posts($limit, $len, $before_title = '<li>', $after_title = '</li>', $before_post = '', $after_post = '', $show_pass_post = false, $show_excerpt = false) {
  global $wpdb, $tableposts;
  $sql = "SELECT ID, post_title, post_content FROM $tableposts WHERE post_status = 'publish' ";
    if(!$show_pass_post) $sql .= "AND post_password ='' ";
    $sql .= "ORDER BY RAND() LIMIT $limit";
  $posts = $wpdb->get_results($sql);
    $output = '';
  foreach ($posts as $post) {
    $post_title = stripslashes($post->post_title);
    $post_title = str_replace('"', '', $post_title);
    $permalink = get_permalink($post->ID);
    $post_content = strip_tags($post->post_content);
    $post_content = stripslashes($post_content);
    $output .= $before_title . '<a href="' . $permalink . '" rel="bookmark" title="' . $post_title . '">' . $post_title . '</a>' . $after_title;
    if($show_excerpt) {
      $words=split(" ",$post_content);
      $post_strip = join(" ",array_slice($words,0,$len));
      $output .= $before_post . $post_strip . $after_post;
    }
    }
    echo $output;
}

и вызываешь:

<?php global $wpdb, $wp_db_version;
$rand_posts = $wpdb->get_results("SELECT post_content FROM $wpdb->posts,$wpdb->terms,$wpdb->term_relationships WHERE $wpdb->posts.ID = $wpdb->term_relationships.object_id AND $wpdb->terms.term_id = $wpdb->term_relationships.term_taxonomy_id AND $wpdb->posts.post_status = 'publish' AND $wpdb->terms.name = 'FAQ' ORDER BY RAND() LIMIT 1");
foreach($rand_posts as $_posts){foreach($_posts as $posts){
if($posts <> '') { ?>
<div id="minifaq">
<span class="sbtitle">Сайт - это..</span>
&nbsp; &nbsp; <?php echo $posts; ?>
</div>
<?php }} ?>

вот такое направление. аякс наработки черпай отсюда: http://www.ajaxrain.com/

Спасибо, только вот вопрос возник:
зачем использовать фреймворк jQuery, я же хочу в тултипе вывести (вобще я во фреймворках не совсем разбираюсь…)?

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

счас снова столкнулся со связкой ajax+php, решаю интересные задачки.. но лучше не заморачиваться, если цель не оправдывает средства. но результат моем подходе был бы стоящим =)

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

счас снова столкнулся со связкой ajax+php, решаю интересные задачки.. но лучше не заморачиваться, если цель не оправдывает средства. но результат моем подходе был бы стоящим =)

Задача-то простая – хочу, чтобы в виджете НЕДАВНИЕ ПОСТЫ при наведении на на заголовок-ссылку поста – в тултипе появлялась часть (первые 55 слов через <?php the_excerpt() ?>) ЭТОГО поста. Сам вопрос – как добраться именно до него, ведь специальной функции нет, правда Ю.Б. подкинул идею, в топике описана.

если что мое мыло sovletig(doggg)yandex[.]ru

walaby, в стандартном виджете Вы нифига хорошего не сделаете. Разве что сломаете 😀 А вот сделать аналог можно легко. Смотрим обсуждение http://forum.maxsite.org/viewtopic.php?pid=13852 и заменяем вывод тизера прямым текстом на вывод его же, но как хинта.

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

http://www.noupe.com/ajax/jquery-hover-sub-tag-cloud.html

http://www.noupe.com/ajax/jquery-hover-sub-tag-cloud.html

Спасибо! есть вопрос, можно обратиться к тебе в асю или через e-mail ?

нет. но если по делу – то можно. ссылочка рядом

Собралась сделать вывод the_excerpt тултипом методом http://www.seleckis.lv/scripting/tooltip-javascript

кусок кода:

<li id="<?php the_ID(); ?>" onmouseover="AddTT('<?php the_excerpt(); ?>');" onmouseout="RemoveTT();">

все бы хорошо было, если бы получалось так:

<li id="8" onmouseover="AddTT('<p>тра<br /> тра та</p>');" onmouseout="RemoveTT();">

но получается в результате так:

<li id="8" onmouseover="AddTT('<p>тра<br />
 тра та</p>
');" onmouseout="RemoveTT();">

Как бы заставить the_excerpt не делать переносы? т.к. с переносами тултип не пашет 🙁

<?php echo preg_replace(‘"\n"’,’ ‘,get_the_excerpt()); ?>

О, класс! Большое спасибо!

Anonymous
Отправить
Ответ на: