Products
GG网络技术分享 2025-03-18 16:12 0
作者:悦然wordpress建站(悦然建站)
使用wordpress建站之后,日常的网站内容更新可以通过文章和页面两种形式,基本的内容编辑都是一样的,不过wordpress的页面不能添加标签和分类。
最近有用户咨询悦然建站,他想把一些页面添加到文章分类里面,借这个机会悦然企业网站建设给大家分享两个方法,教大家给wordpress站点的页面添加标签和分类属性。
使用插件是最简单的方法,大家可以去搜索下载一个插件-Post Tags and Categories for Pages,然后安装就可以了,并不需要特别的设置。
如果你的wordpress网站已经使用了比较多的插件,或者是这个插件与你当前的wordpress版本是主题不兼容,那么可以尝试直接使用代码来添加标签和分类属性。
给大家分享的代码如下:内容是从插件中提取出来的
//为WordPress页面添加标签和分类
(悦然wordpress建站收集分享)
class PTCFP{
function __construct(){
add_action( 'init', array( $this, 'taxonomies_for_pages' ) );
/**
* 确保这些查询修改不会作用于管理后台,防止文章和页面混杂
*/
if ( ! is_admin() ) {
add_action( 'pre_get_posts', array( $this, 'category_archives' ) );
add_action( 'pre_get_posts', array( $this, 'tags_archives' ) );
} // ! is_admin
} // __construct
/**
* 为“页面”添加“标签”和“分类”
*
* @uses register_taxonomy_for_object_type
*/
function taxonomies_for_pages() {
register_taxonomy_for_object_type( 'post_tag', 'page' );
register_taxonomy_for_object_type( 'category', 'page' );
} // taxonomies_for_pages
/**
* 在标签存档中包含“页面”
*/
function tags_archives( $wp_query ) {
if ( $wp_query->get( 'tag' ) )
$wp_query->set( 'post_type', 'any' );
} // tags_archives
/**
* 在分类存档中包含“页面”
*/
function category_archives( $wp_query ) {
if ( $wp_query->get( 'category_name' ) || $wp_query->get( 'cat' ) )
$wp_query->set( 'post_type', 'any' );
} // category_archives
} // PTCFP
$ptcfp = new PTCFP();操作方法:复制上面的代码,把它添加到当前wordpress主题模板的functions.php文件中,然后保存,刷新后台即可。
当使用插件或代码成功给页面添加标签和分类属性后,在wordpress后面的页面下就会多出分类和标签菜单,内容与文章是一样的,右边的页面快速编辑中也可以直接给页面指定分类,添加标签。
https://www.zsxxfx.com/fuwu
比如以悦然企业网站建设自己的网站来例,我们把其中一个页面添加到了服务项目分类中,如上图所示。
给wordpress页面添加分类或标签是一个非常小众的要求,总的来说没有太大的意义,一般情况下并不建议大家这样去做。企业网站建设完成后最重要的还是做好基本的网站内容更新,不要总去纠结一些不太重要的功能或细节。
不过wordpress页面的存在有其它更重要的意义,比如进行一些更复杂设计或开发,而且页面可以用来设计单独的首页或专题页。
今天在调试wordpress网站小说站的时候,需要做分类中只调用标签内容,因为标签的定位是小说专题。
要实现这个功能,需要拓展wordpress默认的函数,方能实现这个调用。
可以在插件文件中或者主题函数functions.php中加入下面代码:
functionget_category_tags($args){global$wpdb;
$tags=$wpdb->get_results
("
SELECTDISTINCTterms2.term_idastag_id,terms2.nameastag_name
FROM
$wpdb->postsasp1
LEFTJOIN$wpdb->term_relationshipsasr1ONp1.ID=r1.object_ID
LEFTJOIN$wpdb->term_taxonomyast1ONr1.term_taxonomy_id=t1.term_taxonomy_id
LEFTJOIN$wpdb->termsasterms1ONt1.term_id=terms1.term_id,
$wpdb->postsasp2
LEFTJOIN$wpdb->term_relationshipsasr2ONp2.ID=r2.object_ID
LEFTJOIN$wpdb->term_taxonomyast2ONr2.term_taxonomy_id=t2.term_taxonomy_id
LEFTJOIN$wpdb->termsasterms2ONt2.term_id=terms2.term_id
WHERE
t1.taxonomy='category'ANDp1.post_status='publish'ANDterms1.term_idIN(".$args['categories'].")AND
t2.taxonomy='post_tag'ANDp2.post_status='publish'
ANDp1.ID=p2.ID
ORDERbytag_name
");
$count=0;
if($tags){
foreach($tagsas$tag){
$mytag[$count]=get_term_by('id',$tag->tag_id,'post_tag');
$count++;
}
}else{
$mytag=NULL;
}
return$mytag;
}
然后做需要调用的分类模板中插入调用代码,下面有两个代码给大家选择:
第一种调用方式:
<?php$cat=single_cat_title('',false);
$args=array('categories'=>get_cat_ID($cat));
$tags=get_category_tags($args);
$content.="<ulclass='cat-tag'>";
if(!empty($tags)){
foreach($tagsas$tag){
$content.="<li><ahref=\\"".get_tag_link($tag->term_id)."\\">".$tag->name."</a></li>";
}
}
$content.="</ul>";
echo$content;
?>
第二种调用方式:
<?php
$cat=single_cat_title('',false);
$args=array('categories'=>get_cat_ID($cat));
$tags=get_category_tags($args);
if(!empty($tags)){
foreach($tagsas$tag)
?>
这里是循环代码
<?php
}
?>
显示效果如下:
Demand feedback