我试图从我的网站制作分页链接。
Serie | (category)
|_ Temporada 1 (taxonomy: temporada)
|_ Episodio 1 (posts 1 - meta_key: numeroepisodio)
|_ Episodio 2 (posts 2 - meta_key: numeroepisodio)
|_ Episodio 3 (posts 3 - meta_key: numeroepisodio)
|_ Episodio 4 (posts 4 - meta_key: numeroepisodio)
|_ ...
|_ Temporada 2 (taxonomy: temporada)
|_ Episodio 1 (posts 1 - meta_key: numeroepisodio)
|_ Episodio 2 (posts 2 - meta_key: numeroepisodio)
|_ Episodio 3 (posts 3 - meta_key: numeroepisodio)
|_ Episodio 4 (posts 4 - meta_key: numeroepisodio)
|_ ...
Another Serie 1
|_ ...
Another Serie 2
|_ ...
当我创建帖子时,分页按日期排序。 可以帮助我通过 meta_key 进行此排序,在相同的分类法中仅针对当前类别吗?
<?php
$prev_post = get_adjacent_post( true, '', true );
$next_post = get_adjacent_post( true, '', false );
if ( !is_a( $next_post , 'WP_Post' ) ) {
$query_args = array (
'post_type' => 'post',
'posts_per_page' => -1,
'meta_key' => 'numeroepisodio',
'orderby' => 'meta_value meta_value_num',
'order' => 'DESC',
'paged' => $paged,
'tax_query' => array(
array( 'taxonomy' => 'categry'),
array( 'taxonomy' => 'temporada')
)
);
$oldest = get_posts($query_args);
$next_post = $oldest[0];
}
if ( !is_a( $prev_post , 'WP_Post' ) ) {
$latest = get_posts($query_args);
$prev_post = $latest[0];
}
?>
<?php if ( is_a( $prev_post , 'WP_Post' ) ) : ?>
<a href="<?php echo get_permalink( $prev_post->ID ); ?>"><div id="temporadas-dropdown"><i class="fa fa-caret-left"></i> ANTERIOR</div></a>
<?php endif; ?>
<?php if ( is_a( $next_post , 'WP_Post' ) ) : ?>
<a href="<?php echo get_permalink( $next_post->ID ); ?>"><div id="temporadas-dropdown">SIGUIENTE <i class="fa fa-caret-right"></i></div></a>
<?php endif; ?>
这是一个活生生的例子:http://series.enlatino.net/ver-online/silicon-valley/
非常感谢您的建议!
最佳答案
<?php
/** Plugin Name: (#73190) Alter adjacent post link sort order */
function wpse73190_adjacent_post_sort( $orderby )
{
return "ORDER BY p.menu_order DESC LIMIT 1";
}
add_filter( 'get_previous_post_sort', 'wpse73190_adjacent_post_sort' );
add_filter( 'get_next_post_sort', 'wpse73190_adjacent_post_sort' );
来自 wordpress.stackexchange.com - 这会更好地解释它,所以请检查它......接受的答案,但基本上你可以使用该过滤器更改查询,并且有不同的过滤器 - 在哪里,加入,排序上一个和下一个。
我不太喜欢手动执行此操作,但这可能会奏效 - 虽然我没有对其进行测试,但我对分类法和 wordpress 数据库的全面了解有些欠缺。
function get_adjacent_episode($post, $prev_or_next) {
global $wpdb;
$prev_or_next = ($prev_or_next === 'previous') ? 'DESC' : 'ASC';
$operator = ($prev_or_next === 'previous') ? '<' : '>';
$cur_episode = get_post_meta($post->ID, 'numeroepisodio', true);
$query = sprintf("select p.ID from $wpdb->posts p
inner join $wpdb->postmeta m
on p.ID = m.post_id
inner join $wpdb->terms_relationships r
on p.ID = r.object_id
where r.term_taxonomy_id = (select term_taxonomy_id from $wpdb->term_taxonomy where taxonomy = '%s' limit 1)
and p.post_type = 'post' and m.meta_key = '%s' and m.meta_value %s %s
order by m.meta_key %s limit 1", 'temporada', 'numeroepisodio', $operator, $cur_episode, $prev_or_next);
$adjacent_post = $wpdb->get_results($query);
return $adjacent_post;
}
调用它:
$next_post = get_adjacent_episode($post, 'next');
$prev_post = get_adjacent_episode($post, 'previous');
请注意,查询只有 select p.ID,因此您只能访问 $next_post->ID 但您可以扩展此选择以捕获如果需要更多的结果。
关于php - Wordpress - 分页帖子,按 : meta_key only from current category 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31536074/
我在开发的Rails3网站的一些搜索功能上遇到了一个小问题。我有一个简单的Post模型,如下所示:classPost我正在使用acts_as_taggable_on来更轻松地向我的帖子添加标签。当我有一个标记为“rails”的帖子并执行以下操作时,一切正常:@posts=Post.tagged_with("rails")问题是,我还想搜索帖子的标题。当我有一篇标题为“Helloworld”并标记为“rails”的帖子时,我希望能够通过搜索“hello”或“rails”来找到这篇帖子。因此,我希望标题列的LIKE语句与acts_as_taggable_on提供的tagged_with方法
我需要用任何语言编写一个算法,根据3个因素对数组进行排序。我以度假村为例(如Hipmunk)。假设我想去度假。我想要最便宜的地方、最好的评论和最多的景点。但是,显然我找不到在所有3个中都排名第一的方法。Example(assumingthereare20importantattractions):ResortA:$150/night...98/100infavorablereviews...18of20attractionsResortB:$99/night...85/100infavorablereviews...12of20attractionsResortC:$120/night
我正在尝试按Rails相关模型中的字段进行排序。我研究的所有解决方案都没有解决如果相关模型被另一个参数过滤?元素模型classItem相关模型:classPriority我正在使用where子句检索项目:@items=Item.where('company_id=?andapproved=?',@company.id,true).all我需要按相关表格中的“位置”列进行排序。问题在于,在优先级模型中,一个项目可能会被多家公司列出。因此,这些职位取决于他们拥有的company_id。当我显示项目时,它是针对一个公司的,按公司内的职位排序。完成此任务的正确方法是什么?感谢您的帮助。PS-我
我正在构建一个小部件来显示奥运会的奖牌数。我有一个“国家”对象的集合,其中每个对象都有一个“名称”属性,以及奖牌计数的“金”、“银”、“铜”。列表应该排序:1.首先是奖牌总数2.如果奖牌相同,按类型分割(金>银>铜,即2金>1金+1银)3.如果奖牌和类型相同,则按字母顺序子排序我正在用ruby做这件事,但我想语言并不重要。我确实找到了一个解决方案,但如果感觉必须有更优雅的方法来实现它。这是我做的:使用加权奖牌总数创建一个虚拟属性。因此,如果他们有2个金牌和1个银牌,加权总数将为“3.020100”。1金1银1铜为“3.010101”由于我们希望将奖牌数排序为最高的,因此列表按降序排
据我们所知,Jekyll默认分页仅支持index.html,我想创建blog.html并在那里包含分页。有什么解决办法吗? 最佳答案 如果您创建一个名为/blog的目录并在其中放置一个index.html文件,那么您可以向_config.yml表示paginate_path:"blog/page:num"。不是使用根文件夹中的默认index.html作为分页器模板,而是使用/blog/index.html。分页器将根据需要生成类似/blog/page2/和/blog/page3/的页面。这将使您到达yourwebsite.com/b
例如,假设我有一个名为Products的模型,并且在ProductsController中,我有以下代码用于product_listView以显示已排序的产品。@products=Product.order(params[:order_by])让我们想象一下,在product_listView中,用户可以使用下拉菜单按价格、评级、重量等进行排序。数据库中的产品不会经常更改。我很难理解的是,每次用户选择新的order_by过滤器时,rails是否必须查询,或者rails是否能够以某种方式缓存事件记录以在服务器端重新排序?有没有一种方法可以编写它,以便在用户排序时rails不会重新查询结果
我有一个对象如下:[{:id=>2,:fname=>"Ron",:lname=>"XXXXX",:photo=>"XXX"},{:id=>3,:fname=>"Dain",:lname=>"XXXX",:photo=>"XXXXXXX"},{:id=>1,:fname=>"Bob",:lname=>"XXXXXX",:photo=>"XXXX"}]我想按fname排序,不区分大小写,所以它会导致编号:1,3,2我该如何排序?我正在尝试:@people.sort!{|x,y|y[:fname]x[:fname]}但这没有任何效果。 最佳答案
有人可以告诉我如何根据自定义字符串对嵌套数组进行排序吗?比如有没有办法排序:[['Red','Blue'],['Green','Orange'],['Purple','Yellow']]“橙色”、“黄色”,然后是“蓝色”?最终结果如下所示:[['Green','Orange'],['Purple','Yellow'],['Red','Blue']]它不是按字母顺序排序的。我很想知道我是否可以定义要排序的值以实现上述目标。 最佳答案 sort_by对于这种排序总是非常方便:a=[['Red','Blue'],['Green','Ora
我有以下现有的Dog对象数组,它们按age属性排序:classDogattr_accessor:agedefinitialize(age)@age=ageendenddogs=[Dog.new(1),Dog.new(4),Dog.new(10)]我现在想插入一条新的狗记录,并将它放在数组中的正确位置。假设我想插入这个对象:another_dog=Dog.new(8)我想把它插入到数组中,让它成为数组中的第三项。这是一个人为的示例,旨在演示我特别想如何将一个项目插入到现有的有序数组中。我意识到我可以创建一个全新的数组并重新对所有对象进行排序,但这不是我的目标。谢谢!
我有一个这样的哈希{55=>{:value=>61,:rating=>-147},89=>{:value=>72,:rating=>-175},78=>{:value=>64,:rating=>-155},84=>{:value=>90,:rating=>-220},95=>{:value=>39,:rating=>-92},46=>{:value=>97,:rating=>-237},52=>{:value=>73,:rating=>-177},64=>{:value=>69,:rating=>-167},86=>{:value=>68,:rating=>-165},53=>{:va