Alerte Noob légèrement avancée: {Désolé}.
Je conçois un site WordPress {No Active Yet}. J'ai un plugin [feelbox], mais actuellement, il ne s'affiche que sur la page d'un seul post. Les paramètres du plug-in ne permettent pas de l'afficher sur la page d'accueil [index.php]. Voici le fichier de plugin principal - feelbox.php est trop long pour être posté ici. Voici la première partie de celle-ci:
> if (!$options) {
feelbox_add_default_options();
} else {
if ($options['showinpostsondefault'] == 'on') {
add_filter('the_content', 'add_feelbox_widget_to_posts');
}
if (empty($options['showtweetfollowup'])) {
$temp = array(
'showtweetfollowup' => 'on'
);
update_option('feelbox_wp_options', $temp);
}
}
}
function feelbox_add_default_options() {
$temp = array(
'showsparkbar' => 'on',
'showinpostsondefault' => 'on',
'showtweetfollowup' => 'on',
'validkey' => '0',
'sortmoods' => 'off'
);
update_option('feelbox_wp_options', $temp);
}
function feelbox_website_and_apikey_match() {
$options = get_option('feelbox_wp_options');
return $options['validkey'] == '1';
}
function feelbox_get_widget_html() {
global $wpdb;
global $post;
global $moods;
if ( ( $use_centralized_site == FALSE ) || ($use_centralized_site == TRUE && feelbox_website_and_apikey_match()) ) {
$post_id = (int)$post->ID;
$obj = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}lydl_posts WHERE ID=" . $post_id, ARRAY_A);
$sum = $obj["emotion_1"]+$obj["emotion_2"]+$obj["emotion_3"]+$obj["emotion_4"]+$obj["emotion_5"]+$obj["emotion_6"];
Mais voici mon index.php:
<?php $mts_options = get_option('dualshock'); ?>
<?php get_header(); ?>
<div id="page">
<div class="content">
<article class="article">
<div id="content_box">
<?php $j = 0; if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="post excerpt <?php echo (++$j % 2 == 0) ? 'last' : ''; ?>">
<header>
<h2 class="title">
<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a>
</h2>
</header><!--.header-->
<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="nofollow" id="featured-thumbnail">
<?php if ( has_post_thumbnail() ) { ?>
<?php echo '<div class="featured-thumbnail">'; the_post_thumbnail('featured',array('title' => '')); echo '</div>'; ?>
<?php } else { ?>
<div class="featured-thumbnail">
<img width="450" height="200" src="<?php echo get_template_directory_uri(); ?>/images/nothumb.png" class="attachment-featured wp-post-image" alt="<?php the_title(); ?>">
</div>
<?php } ?>
</a>
<div class="post-content image-caption-format-1">
<?php echo excerpt(38);?>
</div>
</div><!--.post excerpt-->
<div class="post-info">
<span class="thecomment"><?php echo comments_number(__('No Comment','mythemeshop'), __('One Comment','mythemeshop'), '<span class="comments">'.__('Comments','mythemeshop').'</span> <span class="comm">%</span>');?></span>
<span class="readMore"><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="bookmark"><?php _e('Read More','mythemeshop'); ?></a></span>
</div>
<?php endwhile; endif; ?>
<span><?php if ( function_exists('print_feelbox_widget') ) { print_feelbox_widget(); } ?></span>
<!--Start Pagination-->
<?php if ( isset($mts_options['mts_pagenavigation']) == '1' ) { ?>
<?php $additional_loop = 0; pagination($additional_loop['max_num_pages']); ?>
<?php } else { ?>
<div class="pagination">
<ul>
<li class="nav-previous"><?php next_posts_link( __( '← '.'Older posts', 'mythemeshop' ) ); ?></li>
<li class="nav-next"><?php previous_posts_link( __( 'Newer posts'.' →', 'mythemeshop' ) ); ?></li>
</ul>
</div>
<?php } ?>
<!--End Pagination-->
</div>
</article>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
J'ai essayé d'appeler la fonction en l'insérant sous la DIV post-info, sans succès.
<?php if ( function_exists('print_feelbox_widget') ) { print_feelbox_widget(); } ?>
Toute aide serait grandement appréciée. Merci.
Votre plugin insère son widget feelbox en filtrant the_content
:
if ($options['showinpostsondefault'] == 'on') {
add_filter('the_content', 'add_feelbox_widget_to_posts');
}
Mais votre page d’index n’affiche pas the_content, mais uniquement Title, miniature en vedette, extrait et nombre de commentaires.
Le code de plugin que vous nous avez montré n'inclut pas de fonction print_feelbox_widget()
. Une telle fonction existe-t-elle réellement dans votre plugin? (En outre, vous l'avez inclus après la balise de fermeture de votre division post-info et en dehors de la fermeture de "the loop" (<?php endwhile; endif; ?>
). Si c'est censé être utilisé dans "the loop", vous devez le déplacer quelques lignes.)
Sinon, vous pourrez peut-être pirater votre plugin pour filtrer une balise de modèle supplémentaire (the_excerpt
?), Puis l'ajouter à votre modèle index.php
.
Donc, dans votre plugin:
if ($options['showinpostsondefault'] == 'on') {
add_filter('the_content', 'add_feelbox_widget_to_posts');
add_filter('the_excerpt', 'add_feelbox_widget_to_posts');
}
Ensuite, dans index.php
quelque chose comme:
<div class="post-content image-caption-format-1">
<?php the_excerpt();?>
</div>
Vous devrez bien sûr jouer avec le placement exact.
Bonne chance.