[Помогите] Вопрос-ответ на WP

Тема в разделе "Wordpress", создана пользователем Murof, 18 фев 2010.

Статус темы:
Закрыта.
Модераторы: DzSoft, Sorcus
  1. Murof

    Murof Создатель

    Регистр.:
    27 янв 2009
    Сообщения:
    15
    Симпатии:
    0
    Есть ли плагин, позволяющий сделать вопрос-ответ на WP?
    Только нужен именно не FAQ, а чтобы была возможность рядовому пользователю добавлять свой вопрос, на который он получит ответ, и уже отвеченные вопросы будут дублироваться сверху.?
     
  2. Sizamas

    Sizamas

    Регистр.:
    17 апр 2008
    Сообщения:
    417
    Симпатии:
    97
    искал давно под пару проектов - честно говоря ничего не нашел, есть плагины только для faq. В итоге пришлось переделывать функционал для комментариев чтобы можно было использовать его как вопрос-ответ
     
  3. Murof

    Murof Создатель

    Регистр.:
    27 янв 2009
    Сообщения:
    15
    Симпатии:
    0
    В итоге то переделали? Не покажете что получилось? (в личку можно)
     
  4. xbreaker

    xbreaker Вверх ногами

    Регистр.:
    15 авг 2007
    Сообщения:
    245
    Симпатии:
    52
    поступал точно также, если по этапам, то:
    1. Создаете страницу в админке, которая будет для этого использоваться для вопроса-ответа
    2. Создаете в папке темы отдельный шаблон страницы на основе page.php и обзываете его например vopros.php - в шапке его указываете следующие строки (перед get_header:(
    Код:
    /*
    Template Name: Vopros
    */
    3. Теперь изменяете созданную ранее страницу в админке, указав ей шаблон «Vopros»
    4. Делаете копию comments.php (например, cooments_v.php) и изменяете оформление так, чтобы люди могли комментировать, а ваш ответ на их комментарий выглядел бы как ответ на вопрос (тут придется включить древовидные комментарии, чтобы можно было оформить по разному вопросы и ответы)
    5. В файле vopros.php удаляете стандартную процедуру вызова шаблона комментариев (если она есть) comments_template();
    6. Далее я писал свою процедуру comments_template_g() и вызывал ее в шаблоне vopros.php, вот сама процедура:
    PHP:
    <?php 
    function comments_template_g$file '/comments_v.php'$separate_comments false ) {
        global 
    $wp_query$withcomments$post$wpdb$id$comment$user_login$user_ID$user_identity$overridden_cpage;
        if ( ! (
    is_single() || is_page() || $withcomments) )
            return;
        if ( empty(
    $file) )
            
    $file '/comments_v.php';
        
    $req get_option('require_name_email');
        
    $commenter wp_get_current_commenter();
        
    extract($commenterEXTR_SKIP);
        if ( 
    $user_ID) {
            
    $comments $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND (comment_approved = '1' OR ( user_id = %d AND comment_approved = '0' ) )  ORDER BY comment_date"$post->ID$user_ID));
        } else if ( empty(
    $comment_author) ) {
            
    $comments $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND comment_approved = '1' ORDER BY comment_date"$post->ID));
        } else {
            
    $comments $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND ( comment_approved = '1' OR ( comment_author = %s AND comment_author_email = %s AND comment_approved = '0' ) ) ORDER BY comment_date"$post->ID$comment_author$comment_author_email));
        }
        
    $wp_query->comments apply_filters'comments_array'$comments$post->ID );
        
    $comments = &$wp_query->comments;
        
    $wp_query->comment_count count($wp_query->comments);
        
    update_comment_cache($wp_query->comments);

        if ( 
    $separate_comments ) {
            
    $wp_query->comments_by_type = &separate_comments($comments);
            
    $comments_by_type = &$wp_query->comments_by_type;
        }
        
    $overridden_cpage FALSE;
        if ( 
    '' == get_query_var('cpage') && get_option('page_comments') && 'newest' == get_option('default_comments_page') ) {
            
    set_query_var'cpage'get_comment_pages_count() );
            
    $overridden_cpage TRUE;
        }
        
    define('COMMENTS_TEMPLATE'true);
        
    $include apply_filters('comments_template'STYLESHEETPATH $file );
        if ( 
    file_exists$include ) )
            require( 
    $include );
        elseif ( 
    file_existsTEMPLATEPATH $file ) )
            require( 
    TEMPLATEPATH .  $file );
        else
            require( 
    get_theme_root() . '/default/comments.php');
    }
    ?>
    Интересно как решил данную проблему Sizamas
     
    crazyyy нравится это.
  5. Murof

    Murof Создатель

    Регистр.:
    27 янв 2009
    Сообщения:
    15
    Симпатии:
    0
    ХМ интересное решение. Пойду попробую на денвере. Спасибо огромное, видимо так и придется сделать.
     
  6. b2farm

    b2farm

    Регистр.:
    17 фев 2008
    Сообщения:
    498
    Симпатии:
    197
    FAQ Builder
    http://faqbuilder.squarecompass.com/
    FAQ You
    http://plugins.trendwerk.nl/documentation/faq-you/
     
    crazyyy нравится это.
  7. Sizamas

    Sizamas

    Регистр.:
    17 апр 2008
    Сообщения:
    417
    Симпатии:
    97
    не заметил сразу вопроса.

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

    Короче все тоже самое, только ещё форматировал сам ответ админа.
     
Статус темы:
Закрыта.