返回列表 发帖

[问题求助] 调用特定分类下文章_显示在独立页面中的_翻页问题(已经解决)

因为想在主页上排除一个分类下的文章,
然后将这个分类下的文章显示在一个独立的页面上(因为我需要这样来建立一个相对独立的分类内容页面,所以,直接把分类的连接加入到导航菜单中是达不到效果的)

我在页面的模板中使用query_posts()函数来调用特定分类下的文章

模板的主要部分如下

  1. <div id="content">
  2.   <div class="navigation">
  3.    <div class="alignleft"><?php next_posts_link('Older Entries') ?></div>
  4.    <div class="alignright"><?php previous_posts_link('Newer Entries') ?></div>
  5.   </div>


  6.   <ul>
  7.   <?php query_posts('cat=8'); ?>
  8.     <?php while (have_posts()) : the_post(); ?>
  9.     <li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
  10.     <?php endwhile;?>
  11.   </ul>
  12.   <div class="navigation">
  13.    <?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>
  14.   </div>
  15. </div>
复制代码
为了测试简便,文章只调用了标题,
LOOP中其它内容包括the_content('continue...')函数都可以正常调用,可以显示得与首页一样。

测试的页面在这里,http://v08.pdmb.org/gallery/

测试用的分类下有11篇文章,
继承全局的输出设置,每页是10篇,
这里显示的分页灭有错……

但是点翻页后,每页的内容都和第一页一样,
抑或是说页面是翻过去了,地址也变了,就是内容没变……
很腻很头大这个。

请教各位前辈,使用query_posts()函数调用任何内容都很方便,
但是对分页导航或者默认的翻页不起作用,
包括用这个函数调用特定分类下的文章或者排除一个或几个分类下的文章时。

如果是用get_posts()函数效果一如query_posts()函数但是不会形成分页,

点解?请帮助解决,必有回报,多谢!
不论是代码或者插件,只要能使page模板的loop中能单独调用特定分类下的文章,即可达到效果。

另外我在本站翻到一个一样的提问,link
------------------------------------------
另外一个是用来在首页loop里排除特定分类下文章的函数(已经使用此
插件解决,仅能排除首页LOOP里的内容以及FEED的内容,无法在其它页面使用):

  1. <?php if (in_category('3')) continue; ?>
复制代码
如果在loop的某个分页里全是被排除的分类下的文章,就会出现空的分页,搞来搞去还是得用query_posts()函数来排除,但是同样出现翻页不起作用的问题,点解点解?
请求帮助~


[ 本帖最后由 跑调麦霸 于 2008-4-5 17:39 编辑 ]

谁能帮我解决这个小问题,我愿意给与应得的回报。3Q··

TOP

需直接修改数据库,在网页的管理或撰写页会自动过滤特殊字符。
通过phpmyadmin进入数据库,打开“(wordpress各人不同)_wp”,
在数据库表“wp_posts”中找到想修改的页面并点选编辑,在修改页编辑“post_name”一行最右侧的数据域为欲显示分类的网址部分,如“category/news”,最后执行。
回到主页刷新,这时主页导航栏处的页面链接已经变成相应分类的地址。(翻页等均不受影响)
演示(24小时内有效):www.gaohw.com (留言页面),效果同“新闻”分类页面

TOP

感谢violet133解答

谢谢你,还把自己的数据库改了演示给我看··
我刚刚看了,

其实这样只不过是将PAGE的页面连接换为某个分类下archive的连接,对吧
和直接把某个分类下archive的连接放到导航菜单是一样的效果,只不过是地址不一样而已。

对这样的内容如果我需要给与另外的样式或者在页面加入其它内容(包括sidebar和LOOP前后加入其它内容),我还需修改archive.php,查询到是这个分类下的文章既使用archive_1.php,否则使用archive_2.php,这样就可以达到修改这个页面的目的了。

实际上这样我是编辑了这个分类下查询文章归类的样式,并且这样的页面会有2个连接,分类菜单有一个,导航菜单的那个PAGE有一个,如果我还需要增加一个这样的PAGE调用特定的分类内容,就需要继续修改数据库与archive.php,并继续增加archive_x.php。

思路是这样的,对吧?
如果使用query_posts()函数调用特定文章显示在PAGE里,能够解决分页的问题,这样实现起来就简单方便,而且更加灵活,只修改PAGE的模板而不必大动手术去修改到主题的文件。

我昨天到wordpress官方英文的论坛去询问这个问题,有人说使用query_posts()函数调用文章,query_posts()函数会关闭对分页功能的呼叫(If you manipulate query_posts() directly, it turns off paging. Sorry.
)。何解啊,我希望有办法直接可以在PAGELATE里使用函数解决,现在就是PAGELATE里使用query_posts()调用文章后分页功能出错,但是它能够显示分页,并且分页出来的数量也是对的,即说明这个功能还是有用,但是不知道如何正确使用,我不会PHP,希望有前辈指点指点。谢谢。

TOP

Advanced Category Excluder

http://wordpress.org/extend/plugins/advanced-category-excluder/
我使用这个插件将首页的一个分类排除在LOOP以外,或者只保留一个分类排除其它所有分类,
LOOP和分页都正常(但只能使用在首页)。

我不知道PHP语言,如果研究这个插件(只有一个文件),我想会得出结果,
我看了源文件的内容,也使用到了query_posts() 函数,但是我不知道诀窍在哪里。
请教,谢谢··

TOP

问题已经解决

呃··WP官方论坛上的外国朋友已经解决了这个问题
还是吧主要部分分享之,如果有哪位朋友需要解决类似问题的话


  1. <?php
  2. $limit = get_option('posts_per_page');
  3. $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
  4. query_posts('cat=12&showposts=' . $limit=10 . '&paged=' . $paged);
  5. $wp_query->is_archive = true; $wp_query->is_home = false;
  6. ?>
复制代码
使用query_posts函数调用文章,并且使分页有效。
测试页面 http://v08.pdmb.org/gallery/

TOP

这篇文章有用,做个记号

TOP

返回列表