【问题标题】:Wordpress query exclude post format form last posts widgetWordpress 查询排除帖子格式表单最后的帖子小部件
【发布时间】:2014-06-12 23:14:49
【问题描述】:

我目前正在为一个项目开发一个 Wordpress 主题,我正在寻找一种方法来从我的小部件中排除帖子格式,只保留标准帖子格式以显示在小部件中,我不知道我必须将代码放在哪里排除帖子格式 这是我的标签小部件的代码

<?php
add_action( 'widgets_init', 'widget_tabs_box' );
function widget_tabs_box(){
register_widget( 'widget_tabs' );
}
class widget_tabs extends WP_Widget {
function widget_tabs() {
$widget_ops = array( 'description' => 'Most Popular, Recent, Comments, Tags'  );
$this->WP_Widget( 'widget_tabs',theme_name .'- Tabbed  ', $widget_ops );
}
function widget( $args, $instance ) {
<if( empty($instance['posts_number']) || $instance['posts_number'] == ' ' || !is_numeric($instance['posts_number']))    $posts_number = 5;
    else $posts_number = $instance['posts_number'];
?>
<div class="widget" id="tabbed-widget">
    <div class="widget-container">
        <div class="widget-top">
            <ul class="tabs posts-taps">
                <li class="tabs"><a href="#tab1"><?php _e( 'Popular' , 'aya' ) ?></a></li>
                <li class="tabs"><a href="#tab2"><?php _e( 'Recent' , 'aya' ) ?></a></li>
                <li class="tabs"><a href="#tab3"><?php _e( 'Comments' , 'aya' ) ?></a></li>
                <li class="tabs" style="margin-left:0"><a href="#tab4"><?php _e( 'Tags' , 'aya' ) ?></a></li>
            </ul>
        </div>
        <div id="main-warp">
        <div id="tab1" class="tabs-wrap">
            <ul>
                             <!--latest news--> 
                <?php aya_popular_posts( $posts_number ) ?> 
            </ul>
        </div>
        <div id="tab2" class="tabs-wrap">
            <ul>
                <?php aya_last_posts( $posts_number )?> 
            </ul>
        </div>
        <div id="tab3" class="tabs-wrap">
            <ul>
                <?php  last_comments( $posts_number );?>
            </ul>
        </div>
        <div id="tab4" class="tabs-wrap tagcloud">
            <?php wp_tag_cloud( $args = array('largest' => 8,'number' => 25,'orderby'=> 'count', 'order' => 'DESC' )); ?>
        </div>
     </div> 
    </div>
</div><!-- .widget /-->
<?php
}
function update( $new_instance, $old_instance ) {
$instance = $old_instance;
$instance['posts_number'] = strip_tags( $new_instance['posts_number'] );
return $instance;
}
function form( $instance ) {
$defaults = array( 'posts_number' => 5 );
$instance = wp_parse_args( (array) $instance, $defaults ); ?>
<p>
<label for="<?php echo $this->get_field_id( 'posts_number' ); ?>">Number of items to show : </label>
<input id="<?php echo $this->get_field_id( 'posts_number' ); ?>" name="<?php echo $this->get_field_name( 'posts_number' ); ?>" value="<?php echo $instance['posts_number']; ?>" size="3" type="text" />
</p>
<?php
}
}
?>

这是last posts函数的代码

function aya_last_posts($numberOfPosts = 5 , $thumb = true){
global $post;
$orig_post = $post;
$lastPosts = get_posts('numberposts='.$numberOfPosts);
foreach($lastPosts as $post): setup_postdata($post);
?>
<?php if ( function_exists("has_post_thumbnail") && has_post_thumbnail() && $thumb ) : ?>   
   <div class="hole-post">      
    <div class="post-thumbnail">
    <a href="<?php the_permalink(); ?>" title="<?php printf( __( 'Permalink to %s', 'aya' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php aya_thumb('aya-medium'); ?><span class="overlay-icon"></span></a>
    </div><!-- post-thumbnail /-->
<?php endif; ?>
<span class="ss-view">
        <?php echo getPostViews(get_the_ID());?>
      </span>
<div class="tabtitle"><h3><a href="<?php echo get_permalink( $post->ID ) ?>" title="<?php echo the_title(); ?>"><?php echo the_title(); ?></a></h3></div>
</li></div><?php endforeach;  $post = $orig_post;  }

【问题讨论】:

  • 请大家帮我解决这个问题,我需要知道答案
  • 为什么显示标签小部件是相关的?这就是你所说的标准帖子格式吗?如果不是,标准的帖子格式是什么?
  • 我的标签小部件带有大缩略图,所以当我发布我的新帖子(如引用或链接)时,没有为帖子设置特色图片,这会在网站风格上造成问题,我的意思是标准发布正常的格式,我确实显示了小部件因为我不知道我必须在哪里发布代码 pf 排除请帮助
  • 看我的回答。如果它不起作用,我们可以对函数进行更多的篡改。

标签: php wordpress


【解决方案1】:

如果最后的帖子部分因为图像缩略图给您带来麻烦,最快的方法是从块中删除图像。似乎该函数接受第二个参数,而不是

<?php aya_last_posts( $posts_number )?> 

试试

<?php aya_last_posts( $posts_number,false )?> 

看看它是否有效。

作为旁注:我在函数内部看到了一个关闭的 &lt;/li&gt; 元素。我很确定是意外删除了一个开始标签。

编辑:我看到了你的澄清。看看aya_last_posts的bennining,上面写着

$lastPosts = get_posts('numberposts='.$numberOfPosts);

get_posts 接受参数,例如要检索的帖子数量以及类型。

替换为

$lastPosts = get_posts(array('numberposts'=>$numberOfPosts,'post_type' =>'post' ));

查看链接以了解您还可以在 get_posts 上自定义哪些内容。也许您可以只提取具有给定标签或来自给定类别的帖子。

【讨论】:

  • 感谢您的努力,但我想保留 thubs,但我希望小部件只显示标准的帖子格式,例如没有链接、没有报价、没有画廊、没有聊天、我确实找到了这段代码,但我没有知道我应该把它放在哪里$args = array( 'numberposts' =&gt; 10, post_type' =&gt;'post', 'tax_query' =&gt; array( array( 'taxonomy' =&gt; 'post_format', 'field' =&gt; 'slug', 'terms' =&gt; array( 'post-format-quote','post-format-link' ), 'operator' =&gt; 'NOT IN', ), ) ); $posts= get_posts($args);
  • function aya_last_posts($numberOfPosts = 5 , $thumb = true){ global $post; $orig_post = $post; $args = array( 'numberposts' =&gt; $numberOfPosts, 'post_type' =&gt;'post', 'tax_query' =&gt; array( array( 'taxonomy' =&gt; 'post_format', 'field' =&gt; 'slug', 'terms' =&gt; array( 'post-format-quote','post-format-link' ), 'operator' =&gt; 'NOT IN', )));
  • 它仍然无法正常工作,拜托我做了我在评论中做对的代码,我认为帖子格式被排除在外,但函数显示最近的帖子更像是随机做什么
  • 我想要的只是标准的近期帖子
  • 您在评论中引用的代码正在做一个我不明白的非常模糊的过滤器。请尝试使用我在答案中写的。只是 numberpost 和 post_type 运算符。如果失败,请随时 pm 我或给我发电子邮件。这是我在 gmail dot com 的昵称
猜你喜欢
  • 1970-01-01
  • 2014-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多