1

最初のループにすでに表示されている2番目のループから投稿を除外しようとしています。

「インスピレーション」という名前の最新のカスタム投稿を表示するために作成されたページテンプレートがあります。

同じ投稿タイプの他の投稿を表示するウィジェットを作成し、作成したページテンプレートでそのウィジェットを使用しました。

ページテンプレートのコードは次のとおりです。

<?php
/**
 * Template Name: Inspiratie
 *
 * A custom page template without sidebar.
 *
 * The "Template Name:" bit above allows this to be selectable
 * from a dropdown menu on the edit page screen.
 */
get_header(); ?>
<div id="container" class="seprator">
  <div id="content" class="inspiratie-area" role="main">
    <?php $inspiratiepage_query = new WP_Query('showposts=1&post_type=inspirations');  ?>
    <?php while ($inspiratiepage_query->have_posts()) : $inspiratiepage_query->the_post(); ?>
    <div class="inspiratie-box" id="inspiratie-<?php the_ID(); ?>">
      <h2 class="entry-title orange">
        <?php the_title(); ?>
      </h2>
      <?php the_content() ?>
      <div class="clear"></div>
    </div>
    <?php endwhile; // end of the loop. ?>
  </div>
</div>
<?php get_footer(); ?>

以下は、私が作成したウィジェットのコードです。

class Meer_Inspiratie extends WP_Widget {
    function Meer_Inspiratie() {
        $widget_ops = array('classname' => 'Meer_Inspiratie', 'description' => 'Display Inspiratie Posts' );
        $this->WP_Widget('Meer_Inspiratie', 'Inspiratie Post Widget', $widget_ops);
    }

    function widget($args, $instance) {
        extract($args, EXTR_SKIP);

        echo $before_widget;
        $title = $instance['title'];
        $items = $instance['items'];

        if(!empty($title))
        {
            echo $before_title;
                echo $title;
            echo $after_title;
        }

        if(!empty($items))
        { ?>
            <?php 

            $inspiratie_query = new WP_Query(   array(
                                    'post_type' => 'inspirations',
                                    'posts_per_page' =>  $items,
                                  'post__not_in'   => array(1),
                                    )
                                );  ?>

            <?php while ($inspiratie_query->have_posts()) : $inspiratie_query->the_post(); ?>
                <div class="inspiratie_query">
                    <p class="inspiratie_txt"><?php the_excerpt() ?></p>
                    <div class="inspiratie_img">
                        <?php if ( has_post_thumbnail() ) { the_post_thumbnail('inspiratie-product-thumb');}?>
                    </div>
                    <div class="inspiratie_quote">
                        <?php
                            echo '<blockquote class="inspiratie-quote">';
                            echo get_post_meta( get_the_ID(), 'my_specs_box_quote', true );
                            echo '</blockquote>';
                        ?>
                    </div>
                    <div class="clear"></div>
                    <a class="more-post" href="<?php the_permalink()?>">Lees meer</a>
                </div>

            <?php endwhile; // end of the loop. ?>

        <?php }

        echo $after_widget;
    }

    function update($new_instance, $old_instance) {
        $instance = $old_instance;
        $instance['items'] = strip_tags($new_instance['items']);
        $instance['title'] = $new_instance['title'];

        return $instance;
    }

    function form($instance) {
        $instance = wp_parse_args( (array) $instance, array( 'items' => '', 'title' => '') );
        $items = strip_tags($instance['items']);
        $title = $instance['title'];

?>      
            <p><label for="<?php echo $this->get_field_id('title'); ?>">Title: <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>" /></label></p>

            <p><label for="<?php echo $this->get_field_id('items'); ?>">No. of Items: <input class="widefat" id="<?php echo $this->get_field_id('items'); ?>" name="<?php echo $this->get_field_name('items'); ?>" type="text" value="<?php echo esc_attr($items); ?>" /></label></p>

<?php
    }
}

register_widget('Meer_Inspiratie');

/**
*   End Inspiratie Post Widget
**/

現在コンテンツエリアにある投稿をウィジェットから除外しようとしています。

少し早いですがお礼を....

4

1 に答える 1

3

テンプレートページのどこからサイドバーウィジェットが呼び出されているかはわかりませんが、1つの投稿をプルしている投稿の最初のループの下での呼び出しは次のように試してください。

<?php 
$not_id=get_the_ID();
            $inspiratie_query = new WP_Query(   array(
                                    'post_type' => 'inspirations',
                                    'posts_per_page' =>  $items,
                                  'post__not_in'   => array($not_id),
                                    )
                                );  ?>

コードをチェックしていない。この仕事があなたのためになることを願っています

于 2013-02-06T11:13:58.193 に答える