在WordPress这个强大的内容管理系统中,分类是组织文章的一种有效方式。它可以帮助我们更好地对文章进行分类管理,让读者能够更快地找到自己感兴趣的内容。如何获取特定分类下的所有文章呢?本文将为您详细讲解WordPress获取分类下所有文章的方法,包括使用内置函数、插件和自定义代码等多种方式。让我们一起来看看吧!
1. 使用内置函数获取分类下的所有文章
WordPress提供了丰富的函数和API,其中一些函数可以帮助我们获取特定分类下的所有文章。以下是一些常用的内置函数:
1.1 get_posts()
get_posts() 函数可以获取满足特定条件的文章。以下是一个示例,展示如何获取分类名为“技术”下的所有
“`php
$args = array(
‘category_name’ => ‘技术’,
‘posts_per_page’ => -1, // 获取所有文章
);
$posts = get_posts($args);
foreach ($posts as $post) {
setup_postdata($post);
echo ‘
‘ . get_the_title() . ‘
‘;
echo ‘
‘ . get_the_content() . ‘
‘;
wp_reset_postdata();
}
>
“`
1.2 get_category()
get_category() 函数可以获取指定分类的信息。以下是一个示例,展示如何获取分类ID为10的分类下的所有
“`php
$category = get_category(10);
$category_posts = get_posts(array(
‘category’ => $category->term_id,
‘posts_per_page’ => -1, // 获取所有文章
));
foreach ($category_posts as $post) {
setup_postdata($post);
echo ‘
‘ . get_the_title() . ‘
‘;
echo ‘
‘ . get_the_content() . ‘
‘;
wp_reset_postdata();
}
>
“`
2. 使用插件获取分类下的所有文章
除了使用内置函数外,WordPress社区还提供了一些插件,可以帮助我们更方便地获取分类下的所有文章。以下是一些常用的插件:
2.1 Category Posts List
Category Posts List 插件可以将分类下的文章以列表形式显示在页面或侧边栏中。安装并激活该插件后,您可以在文章编辑页面中添加一个短代码 `[category-posts-list category=”
WordPress怎么设置首页显示所有文章大类啊
要在WordPress中设置首页显示所有文章大类,你可以按照以下步骤进行操作:
确保分类已创建:
首先,确保你已经在WordPress后台的“文章”>“分类”中创建了所有需要的文章大类。编辑首页模板:
接下来,你需要编辑首页的模板文件。这通常是index.php,但也可能是一个自定义页面模板,具体取决于你的主题设置。使用文本编辑器打开该模板文件,查找用于显示文章列表的代码部分。修改查询参数:
在WordPress中,文章列表通常是通过WP_Query或类似的查询函数来获取的。你需要修改这些查询的参数,以确保它们能够返回所有分类下的文章。如果查询函数中没有明确指定category__not_in或类似的排除参数,并且没有使用特定的分类ID来过滤文章,那么它默认会返回所有文章,包括所有分类下的文章。但是,为了明确地在首页展示所有分类的标题和文章,你可能需要自定义查询或使用WordPress的钩子和过滤器来修改默认行为。使用分类归档页面链接:
一种更简单的方法是,不在首页直接显示所有分类的文章,而是在首页提供链接到每个分类的归档页面。你可以在侧边栏或首页的其他位置添加分类小工具,这样用户就可以点击分类链接查看该分类下的所有文章。使用插件:
如果你的主题或模板文件不便于修改,或者你不熟悉PHP代码,你可以考虑使用WordPress插件来实现这一功能。有一些插件可以帮助你在首页显示所有分类的文章,或者自定义首页的布局和内容。发布文章并检查:
在完成以上设置后,确保在每个分类下都发布了一些文章,以便在首页或分类归档页面上正确显示。然后,访问你的WordPress网站首页,检查是否成功显示了所有文章大类及其下的文章。注意:由于WordPress的主题和插件种类繁多,具体的实现方法可能会有所不同。如果你遇到任何问题或需要更详细的指导,请参考你所使用的主题或插件的文档,或者寻求WordPress社区的帮助。
wordpress 万能采集方法,实现任何网站都能采集!
WordPress万能采集方法概述
在WordPress中,通过采集可以获取大量文章资源,但需注意,直接照搬他人内容不仅不道德,还可能对SEO产生负面影响。因此,采集应作为获取底稿的方式,后续需优化完善内容。以下是一套较为通用的WordPress采集方法,旨在帮助用户从任何网站采集内容。
一、准备工具
火车头采集工具:用于从目标网站抓取数据。Office套件:如Word或Excel,用于处理和整理采集到的数据。WordPress插件:Import Export Lite:用于将处理后的数据导入WordPress。二、采集步骤
分析目标网站
确定要采集的内容部分,通常是以分类为中心,而非首页。
观察分类页面的URL结构,找出分类标签和分页逻辑。例如:(分类标签为/news),(分页逻辑为/_2表示第二页)。
若目标网站未显示分页URL变化,可尝试添加常见的分页URL段,如/page/2。
设置火车头采集规则
打开火车头,选择向导添加采集规则。
使用批量添加URL功能,将目标网站的URL粘贴进去。
在链接的分页数字处用“地址参数”表示,并设置采集的页数。可通过测试翻页总数或直到页面404来确定页数。
确定采集页面逻辑,观察文章URL的变化,找出文章的固定格式(如url+文章id+.html)。
在火车头的链接采集规则中添加“包含.html”的要求,以获取准确的文章地址。
采集内容
点击网址采集,获取需要的链接。
检查网址的可用性,确保网址段落完整。
编写采集规则,使用开发者工具检查文章内容是否在源代码中展现。
使用焦点工具获取源代码位置的标签,设置开始标签和结束标签,以采集所需内容。
采集完成后,可在任务数中查看采集到的文章数量,并复制到Word文档中进行处理。
处理采集到的数据
在Word文档中,使用替换功能删除段落标记和手动换行符,以便将数据导入Excel。
将处理后的数据复制到Excel中,进行进一步的整理和分析。
导入WordPress
在WordPress后台安装并激活Import Export Lite插件。
选择新的导出,导出内容选择文章,并自定义字段。
打开下载的CSV文件,匹配文章内容和标题部分。
回到WordPress后台,选择新的导入,上传文件。
插件会自动识别字段信息,选择导入类型为文章,并进行字段映射。
填写主要字段和自定义字段后,点击下一步导入。
在“更新现有字段”中选择更新所有内容,完成导入。
三、特别注意事项
在导入数据前,务必在测试网站上确认无误,以免对生产环境造成不必要的麻烦。备份数据库是一个好习惯,以防万一出现问题时可以恢复。采集内容时应尊重原作者的版权,避免直接照搬或恶意侵权。采集到的内容应作为底稿进行优化和完善,以提升文章质量和SEO效果。四、图片展示
以下图片展示了火车头采集工具的设置过程、采集到的数据以及导入WordPress后的效果:
通过以上步骤和注意事项,您可以实现WordPress的万能采集方法,从任何网站获取所需内容。但请务必遵守相关法律法规和道德规范,尊重原作者的版权。
如何在wordpress 3.0中使用自定义分类法
WordPress 3.0五大新特征是WordPress为了迈向一个成功的内容管理系统努力的印证。之前,我们向大家介绍过WordPress3.0的新功能,自定义发布内容的类型,这篇文章将继续给大家讲一下WordPress3.0另一个比较突出的新功能,自定义分类法。什么是自定义分类法函数,它的实用性表现在哪里?究竟该如何使用?请看下面的教程:
什么是自定义分类法函数?
分类法函数顾名思义就是使用不同的方法来对事物进行分类的函数。大家都知道按照不同的分类标准,对某种事物的分类就会大相径庭,本教程将以台式电脑为例,依据下面完全不同的标准来分其结果就不一样:
随机存储的容量
硬盘驱动器的大小
CPU速度
CPU类型
安装的操作系统
等等
WordPress分类法函数历史简介
类别分类
WordPress2.3之前的版本只有一个最为普通的分类法函数,
叫做文章的“类别(Category)”。这个对于博客来说也还算过得去,因为你可以创建一个顶层分类“台式电脑”,一个子分类“RAM,”它同样也可以
有子子分类:“小于1 GB,”“1 GB,”“2 GB到4GB,”
等等。“台式电脑”下也可以创建一个叫做“操作系统的”第二个子分类,它下面的子子分类为“Windows XP,”“Mac OS,”“Red
Hat,”“Ubuntu,”等等。
当某种系统允许你将分类进行再次分为各种子分类,我们称之为层级结构。在WordPress2.3之前的系统里,你所能做到最好的就是创建一个庞大的分类层级,其中最高层代表最大的分类组。
标签分类法
WordPress2.3又增加了一种分类法,叫做标签,之前的分类通常都是事先想好了,具体到网站上内容的分类,而标签显得更加自由,可以说是一种即兴分类内容的方法。
举个例子,在写一篇关于某个台式电脑的文章时,标签允许制作输入一个或多个关键词,如“游戏”、“tivo功能”
、“嘈杂风扇”等等。像这些关键词可能并不适合于运用于整个网站内容的分类中,但是对某篇文章来说却是提供了另一种分类。网站访客以后就可以非常轻松找到
所有标记为“tivo功能”的文章。不过,标签的自由性却无法帮助我们创建一个固定的依据如操作系统、CPU类型值而做出的分类系统。因为标签是一维的,
不容许任何层级结构。
单级自定义分类法
WordPress2.8下,通过稍微修改网站的代码你可以添加自定义分类方案。这样你可以创建一个包含所有“操作系统”的文章列表,并与另一个包含所有
“随机存储器”的文章列表单独分开,当然还可以创建其他类似的列表。不过,它却无法像常见的“类别”分类法拥有内在的层级结构。
完全层次自定义分类法
最后,WordPress3上才可以拥有完全层级的自定义分类法。你将会发现这个完全层级自定义分类是多么强大,就拿操作系统来说,你可以将所有不同的
Windows变种放置到Windows父类别下。这样用户选择Windows操作系统的时候就可以看到所有相关的文章,而如果他们想只查找
Windows xp电脑相关的信息就可以选择Windows XP下的文章。
创建一个自定义分类法
编辑主题functions.php文件
WordPress3无法在管理后台创建自定义的分类法。如果不使用插件初次定义一个自定义分类法时,你将需要在主题 functions.php文件里添加点代码,其实也不难,跟着下面的指示就可以了。
在主题目录里找到“functions.php”文件,假设你使用的是WordPress3.0的默认主题“twentyten”,WordPress是安装在一个叫做“wp.”的目录下,那么functions.php文件的路径就是:
[website_root]/wp/wp-content/themes/twentyten/functions.php.
在代码中添加分类法
仍然以台式电脑为例,我们需要单独添加“随机存储器”、“硬盘驱动器”和“操作系统”这样的分类。在这里,仅仅是添加了分类法本身,也就是说设定完之后它们就像是一个“空的容器”,而你需要通过管理面板那命名管理不同分类,如“Windows XP”。
步骤一:使用一个函数创建所有的分类
首先,需要创建一个函数来创建所有需要的分类。这个函数叫做“build_taxonomies”,在functions.php文件的底端添加这个函数:
function build_taxonomies(){//定义分类法的代码将写在这里}
步骤二:定义分类法
接着,对于每个需要创建的分类法,我们需要启用某个WordPress函数以及正确的参数。下面就是该函数以及它相关的重要参数的解释。
register_taxonomy('internal_name','object_type', array('hierarchical'=>
{true|false},'label'=>'Human Readable Name','query_var'=>
{true|false},'rewrite'=>{true|false}));
internal_name:在WordPress内部,数据库和模板文件中这个分类法究竟该怎么称呼就是靠这个函数来实现的。
object_type:什么类型的内容才可以用这个分类法进行分了呢?可能的值有:“文章(post),页面(page)以及链接(link)”。
接着就是一组可选择的参数。本教程就使用最为重要的几个参数,其他参数大家也可以在官方的引用函数/ register_taxonomy Codex页面上找到。我们将使用到的参数有:
hierarchical:如果设置为”true”的话,意味着此分类法拥有的层级功能,就像WordPress“类别”的分类一样。反之,如果设置为‘false’,那么它就会像标签一样灵活没有分层的制约。
label:这是一个对用户可见的用户标记此分类法的一个标记。
query_var:如果设置为‘true’,那么选择该分类法后,我们可以要求WordPress为我们选择相关的文章,例如,依据操作系统分类法,如果选择“Windows”,WordPress系统就会为你列出所有Windows下的文章。
rewrite:如果设置为‘true’,在浏览一个页面时,WordPress将会使用友好的URL地址。例如,选择Windows操作系统之后列出的文章列表页面的URL地址将会是这样的:
添加操作系统分类法的代码如下:
register_taxonomy('operating_system','post', array('hierarchical'=> true,
'label'=>'Operating System','query_var'=> true,'rewrite'=> true));
请在前面提到的“build_taxonomies”函数里添加上面的代码。
更多信息:
参阅这里
第三步:调用Taxonomy-Creating函数
我们还需要在“functions.php”文件里添加几行代码,这样“build_taxonomies”函数才可以真正执行,
add_action('init','build_taxonomies', 0);
你可以在任何地方加这个代码,不过通常还是写在需要调用的函数前面比较好,代码就变成这样了:
//自定义分类法代码add_action('init','build_taxonomies', 0);
function build_taxonomies(){ register_taxonomy
('operating_system','post', array('hierarchical'=> true,'label'=>
'Operating System','query_var'=> true,'rewrite'=> true));}
给新的分类法添加类别
正确在“functions.php”添加了“操作系统”这个分类法之后,在管理后台的“文章”选项就应该会出现一个新的“操作系统”分类条目,点击该分类法名称,你就可以添加编辑所需要的类别。
像上图所示添加完所需的类别之后,你就可以像常见的文章分类目录一样对操作系统这个分类进行编辑。
添加更多分类法
如果你需要添加“随机存储器”和“硬盘驱动器”分类法,只要按照上面“操作系统”的例子做,并在functions.php文件加入下面的代码:
register_taxonomy('ram','post', array('hierarchical'=> true,
'label'=>'RAM','query_var'=> true,'rewrite'=> true));
register_taxonomy('hard_drive','post', array('hierarchical'=> true,
'label'=>'Hard Drive','query_var'=> true,'rewrite'=> true));
完成之后,functions.php文件里的代码应该像下面这样:
//自定义分类法代码 add_action('init','build_taxonomies', 0);
function build_taxonomies(){ register_taxonomy('operating_system','post',
array('hierarchical'=> true,'label'=>'Operating System','query_var'=> true,
'rewrite'=> true)); register_taxonomy('ram','post', array('hierarchical'=> true,
'label'=>'RAM','query_var'=> true,'rewrite'=> true));
register_taxonomy('hard_drive','post', array('hierarchical'=> true,
'label'=>'Hard Drive','query_var'=> true,'rewrite'=> true));}
使用新的分类法发布文章
在创建一篇新的文章时,你就会发现在编辑文章的页面会出现新的分类法选项,你就可以旋转任何你需要使用到的分类。
显示文章的不同分类法
到目前为止所做的一切对于网站的访客来说并没有太大的改善。我们希望能够显示某篇文章依据某种分类法所归属的类别,就像文章的类别和标签那样显示出来。
为了实现这点,我们还需要做一点点改善。
在各个分类法的页面显示它们下面的类别
在twentyten以及其他很多主题中,在一篇文章的文本下方会显示该文章所属的类别和标签。所以,下面我们打算如果某篇文章有使用了自定义的分类法对它进行分类的话,那么就在类别和标签的前面加上依据自定义分类法它所归属的分类。
为了实现这一点,我们需要对“single.php”模板文件进行一点修改,通常显示单篇文章都需要调用这个模板文件。single.php文件的路径
是: [website_root]/wp/wp-content/themes/twentyten/single.php.
第一步:找到添加代码的地方
打开single.php文件,找到下面这行代码:
<div class=”entry-utility”>
它的前面是:
<div id=”nav-below”>
In twentyten主题里面,div里包含了当前文章的所属类别、标签、永久链接以及其他数据。我们将在这个div的前面添加自定义分类的信息。
第二步:获取当前文章的分类法信息
Populate some variables for holding the taxonomy information output and
the different taxonomy information we may expect to find.
<?php//如果有自定义分类法信息就显示
//创建输出的内容$taxo_text=””;
//变量来存储所有可能的分类法列表
//检查“操作系统”这个类别
$os_list= get_the_term_list($post->ID,'operating_system','
<strong>Operating System(s):</strong>',',','');
在这里,需要调用WordPress函数“get_the_term”以及下面的参数:
$post->ID:当前文章的ID
‘operating_system’:我们的目标自定义分类,通过它来查询当前文章是否有被定义为“操作系统”分类法下的任何类别。
‘Operating System(s)’:如果得到数值返回,我们需要在它的前面加上这个字符串。
‘,‘:如果返回多个数值,我们需要用这个符号来分隔开来。
”:如果没有返回任何数值,我们希望在后面加上这个字符串。这样,结果后面就不需要添加任何东西。
同样地我们可以对其他两个分类法进行处理:
$ram_list= get_the_term_list($post->ID,'ram','<strong>RAM Option(s):
</strong>',',','');$hd_list= get_the_term_list($post->ID,'hard_drive','
<strong>Hard Drive Option(s):</strong>',',','');
更多信息:
参阅这里
第三步:对类别的结果进行格式化(如果有)
先查询是否有这三个分类法下的类别。如果有的话,将这些类别信息以及字符串添加到输出结果中输出。
// Add OS list if this post was so tagged if(''!=$os_list)
{$taxo_text.=”$os_list<br/>\n”;}
// Add RAM list if this post was so tagged if(''!=$ram_list)
{$taxo_text.=”$ram_list<br/>\n”;}
// Add HD list if this post was so tagged if(''!=$hd_list)
{$taxo_text.=”$hd_list<br/>\n”;}
第四步:显示类别结果(如果有)
检查经过以上步骤是否会有分类法信息需要输出。如果分类法信息存在,我们将会通过类别div来输出结果。
// Output taxonomy information if there was any
// NOTE: We won't even open a div if there's nothing to put inside it.
if(''!=$taxo_text){?><div class=”entry-utility”>
<?php echo$taxo_text;?></div><?}// endif?>
第五步:检查结果
查看文章,你将会发现所有的自定义分类法下的类别都会在文章的下方显示。
通过自定义分类法的类别浏览文章列表
通过上面的几个操作,现在每篇文章如果它们有被分类到哪个自定义分类法下的某个类别,那么相关的类别都会显示出来了。并且列出自定义分类法的类别的同时还
会有一个链接能将你转到到某个类别下的所有文章列表页面。例如,点击操作系统分类法旁边的“Mac OS”链接,理论上所有的“Mac
OS”类别的所有文章列表都将会呈现在你的眼前。
但是,在WordPress3.0中并没有像理论那样完美,我们还需要制作一个自定义的模板文件才能让文法归档成为可能。在WordPress中,读者已
经可以对指定某个 category和某个标签的所有文章进行浏览,当然我们也希望读者能够将所有自定义分类法下某个类别的文章也都能全部一览无余。
为了实现这一点,我们需要创建一个叫做“taxonomy.php”的模板文件,当需要列出自定义分类法下面某个类别的文章时,可以随时使用这个文件。
第一步:
打开“category.php”模板文件,复制它的内容并将这些内容粘贴到一个新创建的命名为“taxonomy.php”的文件中,保存这个taxonomy.php到主题目录下:
[website_root]/wp/wp-content/themes/twentyten/taxonomy.php.
第二步:获取当前分类法类别的相关信息
我们需要在taxonomy.php文件里能够获取被列出的分类法相关的信息。可能需要知道分类法下某个类别的名称以及描述。
只要在<?php get_header();?>下方,添加下面的代码:
$term= get_term_by('slug', get_query_var('term'),
get_query_var('taxonomy'));
第三步:显示类别名称和描述
有必要将页面的名称做些修改让访客知道他们在看的是什么样的内容。由于我们最开始也是从category.php模板文件着手的,我们可以将用与打印分类名称的代码做些修改,就可以显示我们需要的页面名称,甚至是描述。
从category.php文件中修改下面的代码:
printf( __('Category Archives:%s','twentyten'),'<span>'.
single_cat_title('', false).'</span>');
将其改成:
printf( __('Posts classified under:%s','twentyten'),
'<span>'.$term_name.'</span>');
这就修改了刚开始的静态文字,然后插入类别的名称。
添加下面的代码:
if(''!=$term_descr){ echo”<p>$term_descr</p>\n”;}
如果这个类别有描述,那么就会在标题的下方显示描述内容。
再完成对taxonomy.php的修改之后,访问下某篇授予某一个自定义分类法下的某个类别的文章,你将会看到文本的下方会有自定义类别显示,只要点击这些类别你就可以看到此类别的文章列表了。




