Wordpress - наличие комментариев встраивает ajax как в stackoverflow

str преобразует свой аргумент в строковое представление. Строковое представление списка представляет собой одну строку, начинающуюся с открывающей квадратной скобки и заканчивающуюся закрывающей. Элементы между ними конвертируются с использованием repr и разделяются с помощью ,. Эта строка сама по себе является итерацией символов. Таким образом, join поместит / между каждым элементом итерируемого, то есть между каждым символом строки.

Эквивалентом вашего первого кода будет преобразование каждого строкового элемента списка в отдельную строку:

s.join(str(x) for x in list)

В вашем конкретном случае str не используется, потому что он вернет аргумент, если вход уже является str.

Для произвольных списков подход, показанный здесь , лучше , чем просто использование s.join(list), потому что join требует, чтобы все элементы итерируемого объекта были равны str s, но не предпринимал попыток преобразования их, как говорят print. Вместо этого он поднимает TypeError, когда встречает не str.

Другим, менее питонным, но, тем не менее, очень распространенным способом выражения того же преобразования является

s.join(map(str, list))

И, конечно, вставьте обязательное предостережение против именования переменных после общих встроенных функций здесь для себя. [1121 ]

6
задан leora 13 October 2008 в 08:19
поделиться

6 ответов

Я так и не смог заставить Wordpress AJAXed делать то, что меня (и по-видимому корреспондент) хотят сделать.

Я использую настраиваемое решение, которое использует плагин под названием Встроенные Комментарии Ajax. Я имел heck времени, находя ссылку на загрузку, но здесь являюсь тем, который все еще работает: http://kashou.net/files/inline-ajax-comments.zip

В редакторе темы WordPress я редактирую index.html. После следующего:

<?php the_content(''); ?>

Я добавляю (после включения плагина, конечно):

<?php ajax_comments_link(); ?>
<?php ajax_comments_div(); ?>

Я затем отредактировал сам сменный файл PHP. Я прокомментировал блоки кода следующим образом:

if ($comment_count == '1') {
    echo('<span id="show-inline-comments-'. $id .'">  ');
    /*  echo('<a href="javascript:;" id="show-inline-comments-link-'. $id .'" onmouseup="ajaxShowComments('. $id .', \''. $throbberURL .'\', \''. $commentpageURL .'\'); return false;">show comment &raquo;</a>'); 
*/
    echo('</span>');
    echo('<span id="hide-inline-comments-'. $id .'" style="display: none;">  ');
    /*  echo('<a href="#comments-'. $id .'" onmouseup="ajaxHideComments('. $id .', \''. $throbberURL .'\', \''. $commentpageURL .'\'); return true;">&laquo; hide comment</a>'); 
*/
    echo('</span>');
} else if ($comment_count > '1') {
    echo('<span id="show-inline-comments-'. $id .'">  ');
    /*  echo('<a href="javascript:;" id="show-inline-comments-link-'. $id .'" onmouseup="ajaxShowComments('. $id .', \''. $throbberURL .'\', \''. $commentpageURL .'\'); return false;">show comments &raquo;</a>'); 
*/
    echo('</span>');
    echo('<span id="hide-inline-comments-'. $id .'" style="display: none;">  ');
    /*  echo('<a href="#comments-'. $id .'" onmouseup="ajaxHideComments('. $id .', \''. $throbberURL .'\', \''. $commentpageURL .'\'); return true;">&laquo; hide comments</a>'); 
*/
    echo('</span>');
}

IIRC, это - все, что я должен был сделать, но сообщить мне, не работает ли это на Вас. Я пытаюсь перепроектировать свое собственное решение, так как это, кажется, точно, что Вы хотите сделать также.

7
ответ дан 8 December 2019 в 18:43
поделиться

Я думаю, что Wordpress AJAXed делает то, что Вы ищете, среди прочего:

AJAXed Wordpress

AJAXed Wordpress (AWP) использует силу и Ajax и Wordpress для улучшения пользовательского опыта, возможностей администрирования и потенциала дизайна любого основанного на Wordpress блога. Это работает над всеми версиями WordPress от 2.1 - 2.6.

Некоторые функции AWP включают загрузку, добавляет встроенные, встроенные комментарии, потоковые комментарии, представление комментария Ajax, Навигацию Ajax, живой предварительный просмотр комментария и многое другое. AWP бесконечно настраиваем и расширяем. Даже при том, что AWP обеспечивает много функций, Вы никогда не вынуждаетесь использовать функции, которые Вы не хотите. Все аспекты плагина легко настраиваются через единственную панель Administration.

Демонстрация доступна здесь http://wordpress.mu/, и Вы видите встроенные комментарии в действии. Похож на то, что Вы просили.

3
ответ дан 8 December 2019 в 18:43
поделиться

Вы можете перепрофилировать код из темы P2 . Это довольно хорошо написанная тема, поэтому она должна работать без проблем. Скопируйте весь код из их functions.php в конец functions.php вашей темы. Скопируйте их каталог inc и entry.php в каталог своей темы.

Замените в своем index.php

  <?php if (have_posts()) : ?> 

    <?php while (have_posts()) : the_post(); ?> 
    <?php /* your themes code must be here */ ?>

  <?php endwhile; ?> 

на

  <?php if (have_posts()) : ?> 

    <?php while (have_posts()) : the_post(); ?> 
    <?php  require dirname(__FILE__) . '/entry.php'; ?> 

  <?php endwhile; ?> 

, а затем измените css и другие вещи в entry.php по вкусу.

1
ответ дан 8 December 2019 в 18:43
поделиться

Вы можете использовать 1. Плагины комментариев AJAX ( выполните поиск «комментариев Ajax» в wordpress ) 2. Напишите свой собственный код. 3. Используйте disqus.

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

0
ответ дан 8 December 2019 в 18:43
поделиться

Для этого существует множество плагинов. Публикация комментариев Ajax довольно проста в установке и использовании. Как говорится:

  1. Загрузите каталог плагинов ajax-comment-posting в каталог wp-content / plugins.
  2. Активируйте плагин через меню «Плагины» в WordPress.
  3. Вот и все!

http : //wordpress.org/extend/plugins/ajax-comment-posting/

0
ответ дан 8 December 2019 в 18:43
поделиться

Вы можете попробовать Публикация комментариев Ajax . У меня это работает.

Есть много плагинов, связанных с комментариями в каталоге плагинов Wordpress. Однако, если вы хотите найти только простой плагин Ajax для публикации комментариев, вы ничего не найдете. Вот почему я разработан простой и маленький (5кБ) еще функциональная публикация комментариев Ajax (ACP) плагин. Он не только разместит ваш комментировать без обновления страницы, но это также гарантирует, что вы правильно заполнили все поля формы.

1
ответ дан 8 December 2019 в 18:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: