veda
Active Member
Да уточня, че съм счетоводител, а не програмист. Налага ми се от време на време да бутвам тук там по кода, къде с помощта на Google, къде по метода проба-грешка, къде от чиста авантюра...
Иска ми се да направя нещо, което, вярвам, е постижимо и не е трудно, но от снощи се боря и не мога да го докарам както трябва.
Каква е ситуацията:
WordPress сайт с коментари под статиите и избрани страници. Сложил съм и Facebook AWD плъгина, за да добавя facebook коментари (и не само). Включвайки ги имам класически коментари и под тях facebook коментари, съответно под всички статии и под страниците, за които съм активирал коментарите. Пред мен стояха две задачи:
Задача 1
Исках класическите коментари и facebook коментарите да не са едни под други, а непосредствено над самите тях да има две табчета и едното табче да показва класическите, а другото facebook коментарите. Мъчих се в началото с разни java скриптове, което вероятно е по-елегантния начин, но все нещо не сработваше, както исках, и случайно се натъкнах на един WordPress плъгин с име WordPress Post Tabs, който прави въпросните табчета с помощта на shortcode. Започнах да си играя с редакция в comments.php и успях да го докарам да се виждат табовете. Във втория таб вмъкнах shortcode-а, който "вика" facebook коментарите и всичко е точно при него. В първия таб, обаче, не мога да вкарам класическите коментари. Предполагам, защото съм в "режим shortcode" (echo do_shortcode) и искам да вкарам класически код в него (<?php comment_form(); ?>). Извинявам се за лаишката си "терминология". Та ето го кодът за табчетата:
Та на мястото на ТУК трябва да вкарам класическите коментари, чиито код в същия този comments.php е <?php comment_form(); ?>
Задача 2
Неприятното е, че като се опитам да подменя класическите конетари с гореописания почтиработещ код, те се появяват навсякъде. Тоест освен там, където трябва, появяват се и под страниците, за които коментарите са изключени. Виждам, че има if функция за тази цел, но нещо не мога да се справя. Задачата е как точно да се вмъкне кодът от първата задачка, така че коментарите да излизат само в страниците, за които коментарите са включени, а не във всички. Ето го и целият код на comments.php. Чини ми се, че истината е някъде долу в кода.
Награда
Символична, но от сърце - код за 70% отстъпка от superhosting.bg (важи до края на 2012). За съжаление ми е само един, но пък съм предвидил и още една утешителна.
Благодаря!
Иска ми се да направя нещо, което, вярвам, е постижимо и не е трудно, но от снощи се боря и не мога да го докарам както трябва.
Каква е ситуацията:
WordPress сайт с коментари под статиите и избрани страници. Сложил съм и Facebook AWD плъгина, за да добавя facebook коментари (и не само). Включвайки ги имам класически коментари и под тях facebook коментари, съответно под всички статии и под страниците, за които съм активирал коментарите. Пред мен стояха две задачи:
Задача 1
Исках класическите коментари и facebook коментарите да не са едни под други, а непосредствено над самите тях да има две табчета и едното табче да показва класическите, а другото facebook коментарите. Мъчих се в началото с разни java скриптове, което вероятно е по-елегантния начин, но все нещо не сработваше, както исках, и случайно се натъкнах на един WordPress плъгин с име WordPress Post Tabs, който прави въпросните табчета с помощта на shortcode. Започнах да си играя с редакция в comments.php и успях да го докарам да се виждат табовете. Във втория таб вмъкнах shortcode-а, който "вика" facebook коментарите и всичко е точно при него. В първия таб, обаче, не мога да вкарам класическите коментари. Предполагам, защото съм в "режим shortcode" (echo do_shortcode) и искам да вкарам класически код в него (<?php comment_form(); ?>). Извинявам се за лаишката си "терминология". Та ето го кодът за табчетата:
Код:
<?php echo do_shortcode("[tab name='Коментари'][B]ТУК[/B][/tab]");
do_shortcode("[tab name='Facebook коментари'][B][AWD_comments][/B][/tab];");
echo do_shortcode("[end_tabset]");?>
Та на мястото на ТУК трябва да вкарам класическите коментари, чиито код в същия този comments.php е <?php comment_form(); ?>
Задача 2
Неприятното е, че като се опитам да подменя класическите конетари с гореописания почтиработещ код, те се появяват навсякъде. Тоест освен там, където трябва, появяват се и под страниците, за които коментарите са изключени. Виждам, че има if функция за тази цел, но нещо не мога да се справя. Задачата е как точно да се вмъкне кодът от първата задачка, така че коментарите да излизат само в страниците, за които коментарите са включени, а не във всички. Ето го и целият код на comments.php. Чини ми се, че истината е някъде долу в кода.
Код:
<div id="comments">
<?php if ( post_password_required() ) : ?>
<p class="nopassword"><?php _e( 'This post is password protected. Enter the password to view any comments.', 'cc' ); ?></p>
</div><!-- #comments -->
<?php
/* Stop the rest of comments.php from being processed,
* but don't kill the script entirely -- we still have
* to fully load the template.
*/
return;
endif;
?>
<?php // You can start editing here -- including this comment! ?>
<?php if ( have_comments() ) : ?>
<h2 id="comments-title">
<?php
printf( _n( 'One thought on “%2$s”', '%1$s thoughts on “%2$s”', get_comments_number(), 'cc' ),
number_format_i18n( get_comments_number() ), '<span>' . get_the_title() . '</span>' );
?>
</h2>
<?php if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) : // are there comments to navigate through ?>
<nav id="comment-nav-above">
<h3 class="assistive-text"><?php _e( 'Comment navigation', 'cc' ); ?></h3>
<div class="nav-previous"><?php previous_comments_link( __( '← Older Comments', 'cc' ) ); ?></div>
<div class="nav-next"><?php next_comments_link( __( 'Newer Comments →', 'cc' ) ); ?></div>
</nav>
<?php endif; // check for comment navigation ?>
<ol class="commentlist">
<?php
wp_list_comments();
?>
</ol>
<?php if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) : // are there comments to navigate through ?>
<nav id="comment-nav-below">
<h3 class="assistive-text"><?php _e( 'Comment navigation', 'cc' ); ?></h3>
<div class="nav-previous"><?php previous_comments_link( __( '← Older Comments', 'cc' ) ); ?></div>
<div class="nav-next"><?php next_comments_link( __( 'Newer Comments →', 'cc' ) ); ?></div>
</nav>
<?php endif; // check for comment navigation ?>
<?php
/* If there are no comments and comments are closed, let's leave a little note, shall we?
* But we don't want the note on pages or post types that do not support comments.
*/
elseif ( ! comments_open() && ! is_page() && post_type_supports( get_post_type(), 'comments' ) ) :
?>
<p class="nocomments"><?php _e( 'Comments are closed.', 'cc' ); ?></p>
<?php endif; ?>
<?php comment_form(); ?>
</div><!-- #comments -->
Награда
Символична, но от сърце - код за 70% отстъпка от superhosting.bg (важи до края на 2012). За съжаление ми е само един, но пък съм предвидил и още една утешителна.
Благодаря!
Последно редактирано: