所以这是我的第一篇文章,哇,我不知道这个网站是否存在。我已经看过问题了,我希望我的不是一个愚蠢的小说。虽然我是菜鸟:S
好的,所以我在WordPress中创建了一个函数,它会在新的帖子页面中添加一个元框,以便我可以指定是否应该展示这篇文章(我读到这比为SEO目的创建一个特色类别更好?)。
无论如何..我在展示最新版本的代码。这是代码:
<?php
$args=array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => -1,
'caller_get_posts'=> 1
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post();
$custom = get_post_meta($my_query->post->ID, '_featuredpost_meta_value_key', true);
if ( $custom ){
?>
<article class="container" itemprop="blogPosts" itemscope itemtype="http://schema.org/BlogPosting">
<div class="row">
<h2 itemprop="about">
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</h2>
</div>
<div class="row">
<div class="<?php if ( has_post_thumbnail() ) { ?>two-thirds column<?php } else {?> twelve columns <?php } ?>">
<p class="post-excerpt"><?php modified_excerpt(); ?></p>
</div>
<?php if ( has_post_thumbnail() ) { ?>
<div class="one-third column">
<?php the_post_thumbnail('full', array('class'=>'hide-mobile')); ?>
</div>
<?php } ?>
</div>
<div class="row">
<a href="<?php the_permalink(); ?>" class="button button-primary">Continue Reading</a>
</div>
<hr />
<div class="post-info">
<ul>
<li class="date"><?php the_date();?></li>
<li class="author"><a href="<?php bloginfo('url'); ?>/questions/user/<?php echo get_the_author_meta('user_login'); ?>"><?php echo get_the_author_meta('display_name'); ?></a></li>
<li class="category"><?php the_category(', '); ?></li>
<li class="tags"><?php the_tags('',', ',''); ?></li>
</ul>
</div>
</article>
<?php
}
endwhile;
}
wp_reset_query(); // Restore global post data stomped by the_post().
?>
现在,当我使用下面相同的代码,然后使用:
if ( ! $custom ){
显示未设置为特色的帖子也有效。问题是分页不再有效。当我转到第二页时,它只是重复主页上的内容。
这让我相信我已经创建了一个混乱的代码。有人可以帮我构建一个循环,这将排除元数据 _featuredpost_meta_value_key 设置为是的任何帖子。
提前致谢
答案 0 :(得分:0)
您希望在原始$args
数组中使用WP Meta查询。
https://codex.wordpress.org/Class_Reference/WP_Meta_Query
从文档中,这是一个例子:
$meta_query_args = array(
'relation' => 'OR', // Optional, defaults to "AND"
array(
'key' => '_my_custom_key',
'value' => 'Value I am looking for',
'compare' => '='
)
);
$meta_query = new WP_Meta_Query( $meta_query_args );
但您也可以使用WP_Query类提供的糖并将其作为meta_query
值传递给原始args:
$args=array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => -1,
'caller_get_posts'=> 1,
'meta_query' => array(
'key' => '_featuredpost_meta_value_key',
'value' => 'Yes',
'compare' => '='
)
);