当前位置: 首页 > 后端技术 > PHP

7CommonWordPressCodeSnippets(代码片段)

时间:2023-03-30 01:33:43 PHP

使用CodeSnippets插件管理代码,无需安装更多插件即可解决WordPress建站过程中的一些常见功能需求,例如安装GoogleAnalytics跟踪代码.下面记录下我在搭建外贸网站和个人博客时经常用到的代码片段。原文首发于:https://loyseo.com/code-snipp...如何禁止在WordPress文章/页面上加载WooCommerce.Js(Javascript)和.Css文件?Woocommerce默认会在每个页面加载几个css和js,这对网站的速度有影响。在codesnippets插件中添加如下代码,添加一个新的snippet,可以实现除了购物车、结算、账户、产品以外的页面,去掉woocommerce的css和js。/**禁用所有WooCommerce样式和脚本除了商店页面*/add\_a??ction('wp\_enqueue\_scripts','dequeue\_woocommerce\_styles\_scripts',99);functiondequeue\_woocommerce\_styles_scripts(){if(function\_exists('is\_woocommerce')){if(!is\_woocommerce()&&!is\_cart()&&!is_checkout()){#Styleswp\_dequeue\_style('woocommerce-general');wp\_dequeue\_style('woocommerce-layout');wp\_dequeue\_style('woocommerce-smallscreen');wp\_dequeue\_style('woocommerce\_frontend\_styles');wp\_dequeue\_style('woocommerce\_fancybox\_styles');wp\_dequeue\_style('woocommerce\_chosen\_styles');wp\_dequeue\_style('woocommerce\_prettyPhoto\_css');#Scriptswp\_dequeue\_script('wc\_price\_slider');wp\_dequeue\_script('wc-single-product');wp\_dequeue\_script('wc-add-to-cart');wp\_dequeue\_script('wc-cart-fragments');wp\_dequeue\_script('wc-checkout');wp\_dequeue\_script('wc-add-to-cart-variation');wp\_dequeue\_script('wc-single-product');wp\_dequeue\_script('wc-cart');wp\_dequeue\_script('wc-chosen');wp\_dequeue\_script('woocommerce');wp\_dequeue\_script('prettyPhoto');wp\_dequeue\_script('prettyPhoto-init');wp\_dequeue\_script('jquery-blockui');wp\_dequeue\_script('jquery-placeholder');wp\_dequeue\_script('fancybox');wp\_dequeue\_script('jqueryui');}}}如何为WordPress禁用XML-RPCWordPress站点很少需要启用XML-RPC,但启用它会导致大量安全问题,如果您只需要在使用WordPress应用程序时启用它。此代码片段将禁用XML-RPC以提高站点安全性。add\_filter('xmlrpc\_enabled','\_\_return\_false');如何使用代码片段安装GoogleAnalytics跟踪代码请将从GoogleAnalytics获取的跟踪代码放入以下代码片段add\_a??ction('wp\_head',function(){?>将GoogleAnalytics跟踪代码粘贴到此处post_author;*/$current\_user=wp\_get\_current\_user();$new\_post\_author=$current_user->ID;/**如果帖子数据存在,创建重复的帖子*/if(isset($post)&&$post!=null){/**新帖子数据数组*/$args=array('comment\_status'=>$post->comment\_status,'ping\_status'=>$post->ping\_status,'post\_author'=>$new\_post_author,'post\_content'=>$post->post\_content,'post\_excerpt'=>$post->post\_excerpt,'post\_name'=>$post->post\_name,'post\_parent'=>$post->post\_parent,'post\_password'=>$post->post\_password,'post_status'=>'草稿','post\_title'=>$post->post\_title,'post\_type'=>$post->post\_type,'to\_ping'=>$post->to\_ping,'menu\_order'=>$post->menu\_order);/**通过wp\_insert\_post()插入帖子函数*/$new\_post\_id=wp\_insert\_post($args);/**获取所有当前的后术语并将它们设置为新的后草稿*/$taxonomies=get\_object\_taxonomies($post->post\_type);//返回帖子类型的分类名称数组,exarray("category","post\_tag");foreach($taxonomiesas$taxonomy){$post\_terms=wp\_get\_object\_terms($post_id,$taxonomy,array('fields'=>'slugs'));wp\_set\_object\_terms($new\_post\_id,$post\_terms,$taxonomy,false);}/**在两个SQL查询中复制所有post元数据*/$post\_meta\_infos=$wpdb->get\_results("SELECTmeta\_key,meta\_valueFROM$wpdb->postmetaWHEREpost\_id=$post_id");if(count($post\_meta\_infos)!=0){$sql\_query=“INSERTINTO$wpdb->postmeta(post\_id,meta\_key,meta\_value)”;foreach($post\_meta\_infosas$meta_info){$meta\_key=$meta\_info->meta_key;如果($meta\_key=='\_wp\_old\_slug')继续;$meta\_value=addslashes($meta\_info->meta_value);$sql\_query\_sel\[\]=“SELECT$new\_post\_id,'$meta\_key','$meta\_value'”;}$sql\_query.=implode("UNIONALL',$sql\_query_sel);$wpdb->query($sql_query);}/**最后,重定向到新草稿的编辑帖子屏幕*/wp\_redirect(admin\_url('post.php?action=edit&post='.$new\_post\_id));出口;}else{wp\_die('帖子创建失败,无法找到原始帖子:'。$post\_id);}}add\_a??ction('admin\_action\_rd\_duplicate\_post\_as\_draft','rd\_duplicate\_post\_as_draft');/**将重复链接添加到帖子\_row\_actions*/functionrd\_duplicate\_post_link($actions,$post){if(current\_user\_can('edit_posts')){$actions\['duplicate'\]='ID,basename(\_\_FILE\_\_),'duplicate_nonce')。'"title="Duplicatethisitem"rel="permalink">Duplicate';}return$actions;}add\_filter('post\_row\_actions','rd\_duplicate\_post\_link',10,2);如何用代码片段防止WordPress自动生成图片由于每一张图片都上传到WordPress,WordPress或者一些插件会自动生成很多不同尺寸的图片,对于不需要的图片尺寸,可以使用短代码直接组织系统生成图片,这样既节省了空间,又避免了压缩配额的消耗,下面介绍如何使用代码片段(codesnippets)来防止WordPress自动生成图片,你需要知道的是,这些自动生成的图片在Wordpress媒体库中是看不到的,需要在服务器的文件夹中查看,下图是在Siteground后台查看图片文件的方法,请进入网站的Sitetools中进行操作订单s如下图所示,我们可以看到系统为同一张图片生成了多张不同尺寸的图片。在网站页面设计完成,内容上传之前,我们首先禁止所有自动生成的图片;如果内容可以立即上传,我们可以根据设计情况,酌情放掉一些图片的大小。比如做一个商品列表页,我们用了一张300*300px的图片,那么在下面的代码中,在对应的代码行前加上//或者直接删除该行。//禁用生成的图像大小函数shapeSpace_disable_image_sizes($sizes){unset($sizes['thumbnail']);//禁用缩略图大小unset($sizes['medium']);//禁用中等尺寸unset($sizes['large']);//禁用大尺寸unset($sizes['medium_large']);//禁用中大尺寸unset($sizes['1536x1536']);//禁用2xmedium-largesizeunset($sizes['2048x2048']);//禁用2x大尺寸unset($sizes['shop_catalog']);取消设置($sizes['shop_single']);取消设置($sizes['shop_thumbnail']);取消设置($sizes['woocommerce_thumbnail']);取消设置($sizes['woocommerce_single']);取消设置($sizes['woocommerce_gallery_thumbnail']);返回$大小;}add_action('intermediate_image_sizes_advanced','shapeSpace_disable_image_sizes');//禁用缩放图像大小add_filter('big_image_size_threshold','__return_false');//禁用其他图像尺寸ve_image_size('后缩略图');//禁用通过set_post_thumbnail_size()添加的图像remove_image_size('another-size');//禁用任何其他添加的图像大小}add_action('init','shapeSpace_disable_other_image_sizes');如何使用代码去除Woocommerce产品首页和列表页的面包屑/***去除面包屑*/add\_a??ction('init','woo\_remove\_wc\_breadcrumbs');functionwoo\_remove\_wc_breadcrumbs(){remove\_action('woocommerce\_before\_main\_content','woocommerce_breadcrumb',20,0);}本文原文由LOYSEO发布,LOYSEO专注于WordPress、Elementor、外贸建站教程终极教程2020年外贸网站建设需要注意什么?(4300字经验谈)