修改Woocommerce商品固定链接其它自定义文章类型适用
在更新Concise主题时集成了前端用户中心和商城插件,发现插件中为商城产品文章设置好了固定链接,所以把萨龙网络的作品集与商城的两种自定义类型的文章固定链接添加上。
自定义文章类型固定链接可设置两形式,分别为ID和别名,萨龙龙认为使用别名的方式再加适合SEO,不过两种方式代码都已经放上。很多主题也会有两种或两种以上的自定义类型文章,为文章类型添加一个数组就可以,这样不论多少种自定义文章类型都适合。
自定义文章类型固定链接:别名形式
- $posttypes = array(
- 'product' => 'product',//Woocommerce产品自定义文章类型
- 'portfolio' => 'portfolio'//作品集自定义文章类型
- );
- add_filter('post_type_link', 'custom_book_link', 1, 3);
- function custom_book_link( $link, $post = 0 ){
- global $posttypes;
- if ( in_array( $post->post_type,array_keys($posttypes) ) ){
- return home_url( $posttypes[$post->post_type].'/' . $post->post_name .'.html' );
- } else {
- return $link;
- }
- }
- add_action( 'init', 'custom_book_rewrites_init' );
- function custom_book_rewrites_init(){
- global $posttypes;
- foreach( $posttypes as $k => $v ) {
- add_rewrite_rule(
- $v.'/([一-龥a-zA-Z0-9_-]+)?.html([sS]*)?$',
- 'index.php?post_type='.$k.'&name=$matches[1]',
- 'top' );
- }
- }
自定义文章类型固定链接:ID形式
- $posttypes = array(
- 'product' => 'product',//Woocommerce产品自定义文章类型
- 'portfolio' => 'portfolio'//作品集自定义文章类型
- );
- add_filter('post_type_link', 'custom_book_link', 1, 3);
- function custom_book_link( $link, $post = 0 ){
- global $posttypes;
- if ( in_array( $post->post_type,array_keys($posttypes) ) ){
- return home_url( $posttypes[$post->post_type].'/' . $post->ID .'.html' );
- } else {
- return $link;
- }
- }
- add_action( 'init', 'custom_book_rewrites_init' );
- function custom_book_rewrites_init(){
- global $posttypes;
- foreach( $posttypes as $k => $v ) {
- add_rewrite_rule(
- $v.'/([0-9]+)?.html$',
- 'index.php?post_type='.$k.'&p=$matches[1]',
- 'top' );
- }
- }
两种形式的固定链接代码也只是设置了显示方式以及显示的内容,ID就显示0-9其中的数字,别名就显示所有的字符。
使用固定链接后,Purity主题中集成的作品集文章类型在文章页面获取作品集分类名称和SEO中获取产品关键字时获取不了,不使用固定是正常,所以Google找到应对方案。
1、作品集文章页面获取分类名称,添加到作品集文章页面中
- <!--获取作品集分类名称-->
- <?php
- $terms = get_the_terms($post->ID, 'portfolio_field' );//portfolio_field为作品集分类法
- if ($terms && ! is_wp_error($terms)) :
- $term_names_arr = array();
- foreach ($terms as $term) {
- $term_names_arr[] = $term->name;
- }
- $terms_name_str = join( ",", $term_names_arr);
- endif;
- ?>
- <!--获取作品集分类名称end-->
2、使用以下代码来调用分类名称
- <?php echo $terms_name_str; ?>
通过上面的代码我们可以获取portfolio_field的分类名称,获取产品关键字名称也同样适用,将上面代码中的portfolio_field修改为product-tag即可。
[successbox]设置好自定义文章类型的固定链接,看着确实很舒服,也有利于SEO,同时也解决设置固定链接后与其它代码产生的冲突。[/successbox]本文原创,作者:萨龙龙,其版权均为萨龙网络所有。
如需转载,请注明出处:https://salongweb.com/custom-post-type-permalink.html
一个平平常常的人,热爱生活、旅行和摄影,骑行去过西藏,一直计划再去。14年从江西骑行来到大理,现栖居于洱海边,食人间烟火,过简单生活,做简约设计!MNews主题集成了WooCommerce商城插件,有些用户要求增加一个『立即购买』按钮,这篇文章介绍下如何在WooCommerce中添加…wordpress图片延迟加载已经不是稀奇的功能,网上有很多类似的文章,添加相当简单方便,woocommerce缩略图图片延迟加载也很方便的可以…WooCommerce插件默认为编辑产品页面提供了产品数据TABS,默认包括:常规、库存、配送、联锁产品、属性、高级等模块,功能强大而实用。…Woocommerce,一个wordpress的电子商务扩展插件,一个很漂亮的可以帮你卖任何东西的工具,这是插件在wordpress后台插件中的…WooCommerce后台对管理员的通知『连接您的店铺到WooCommerce.com接受扩展更新和支持』,是3.3.1版本后出来了,新的…WooCommerce是WordPress中最强大的商城插件,没有之一。在Slearn主题的开发过程中,需要将课程和商城结合,课程使用…萨龙网络使用的主题Purity最新版本弃用了Buddypress社区插件,这样注册表单只能使用WooCommerce商城自带的,验证码还是使用S…最近在做一款企业产品展示的商城网站,设计WooCommerce产品文章的布局与默认的布局有很大的不同,所以其中的一些模块都需要重新调整。WooC…为所有交易添加基于百分比的附加费
/**
*添加1%的附加费到你的购物车和结算页面
*更改百分比以将附加费设置为适合的…WooCommerce插件默认为我的帐户页面提供了:仪表盘、订单、下载、地址、帐户详情几个页面,以及一个退出登录的按钮,如果出售的是实物或者没…WooCommerce产品页面默认有3个选项卡:描述,其它信息和评论,对于很多WordPress主题或许不太适合,需要修改或者添加选项卡。…WooCommerce在每个页面上加载三个核心CSS样式表,并在WordPress站点上安装时发布。可以通过从不需要它的页面和内容中删除样式和…