记录日常点点滴滴,欢迎来到我的小站。

0%

我们在制作wordpress 主题 wordpress插件过程中,经常需要添加样式文件或者js脚本文件,由于大多数用户运行在他们的网站上多个插件,可能会加载各式各样的文件,容易引起冲突,所以wordpress系统为开发者提供了一个很好的脚本及样式文件的排队系统,这有助于防止插件之间的脚本冲突问题。这篇文章中,主要为大家介绍wordpress中添加Javascript文件与css文件的方法,对那些刚开始学习WordPress主题和插件的开发是特别有用的。
错误方式
wordpress中提供了wp_head钩子来帮助我们在页面的头部添加指定的头部消息,比如常见的关键词与描述,很多人也同样会使用这种方式来添加站点的外部样式文件与脚本文件,添加代码如下:

1
2
3
4
5
6
add_action('wp_head', 'wpb_bad_script');
function wpb_bad_script() {
echo '
'; //添加js文件
}
?>
阅读全文 »

最近领导又出馊点子,说什么要把wordpress里面的woocommerce插件出来的产品页面全部静态化成.html形式
去woocommerce官网,以及wordpress上查看,发现真的不支持.html
没办法,网上一顿搜索总算找到了解决方案,在这里提供给大家

1
2
3
4
5
6
function permastruct_html( $post_type, $args ) {
if ( $post_type === 'product' )
add_permastruct( $post_type, "{$args->rewrite['slug']}/%$post_type%.html", $args->rewrite );
}

add_action( 'registered_post_type', 'permastruct_html', 10, 2 );

添加到你模板目录下的function.php文件中即可。

追加一个分类目录的静态化方法

1
2
3
4
5
6
function wpse_178112_category_permastruct_html( $taxonomy, $object_type, $args ) {
if ( $taxonomy === 'product_cat' )
add_permastruct( $taxonomy, "{$args['rewrite']['slug']}/%$taxonomy%.html", $args['rewrite'] );
}

add_action( 'registered_taxonomy', 'wpse_178112_category_permastruct_html', 10, 3 );

主要还是利用Wordpress的插件来解决这个问题。

Force Regenerate Thumbnails

下载链接就不提供了,直接去wordpress的后天就可以下载。

第一步, 当然是先安装 Force Regenerate Thumbnails 插件。方法如其他插件

第二部, 选择媒体 在选择 媒体库, 将当前的显示模式,调整为list模式

第三部, 将要回复的图片,选择下面的 Force Regenerate Thumbnails 即可解决缩略图不显示的问题。

说明

将函数连接到指定action(动作)。

在Plugin API/Action Reference 上查看动作hook列表。wordpress核心调用do_action() 时触发动作。

用法

1
2
3
4
<?php
add_action( $tag, $function_to_add, $priority,
$accepted_args );
?>
阅读全文 »

根据当前用户本地IP地址,查询IP地址库,获取IP所在的省市信息,目前有多种方式实现该功能。

1.调用新浪IP地址库
新浪提供了开放的IP地址库数据供开发者调用,调用地址:http://int.dpool.sina.com.cn/iplookup/iplookup.php,即可返回当前ip所在的省市信息。
我们结合本站helloweba文章:基于jQuery+JSON的省市联动效果中的省市下拉插件,来定位当前用户所在的省市,即默认状态选中的是当前用户所在的省市。

1
2
3
4
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.cityselect.js"></script>
<script type="text/javascript" src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?
format=js"></script>
阅读全文 »

1
2
3
4
5
6
7
8
9
10
function load_portfolio_slideshow() {
// 如果 portfolio-slideshow 之前已注册...
if( wp_script_is( 'portfolio-slideshow', 'registered' ) ) {
// ...取消注册...
wp_deregister_style( 'portfolio_slideshow' );
wp_deregister_script( 'portfolio-slideshow' );
// 后面根据自己需要自定义......
}
}
add_action( 'wp_enqueue_scripts', 'load_portfolio_slideshow' );

这里以portfolio slideshow这个插件为例,首先找到插件php文件中
wp_registr_script, 以及wp_enqueue_style,指定要删除的js以及CSS,在
function中添加上面的代码,替换掉要删除的部分,即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php

//get the sale price of the product whether it be simple, grouped or variable
echo $sale_price = get_post_meta( get_the_ID(), '_price', true);

//get the regular price of the product, but of a simple product
$regular_price = get_post_meta( get_the_ID(), '_regular_price', true);

//oh, the product is variable to $sale_price is empty? Lets get a variation price

if ($regular_price == ""){
#Step 1: Get product varations
$available_variations = $product->get_available_variations();

#Step 2: Get product variation id
$variation_id=$available_variations[0]['variation_id']; // Getting the variable id of just the 1st product. You can loop $available_variations to get info about each variation.

#Step 3: Create the variable product object
$variable_product1= new WC_Product_Variation( $variation_id );

#Step 4: You have the data. Have fun :)
$regular_price = $variable_product1 ->regular_price;
}

echo $regular_price;

如果在apache添加虚拟机之后,出现403(禁止访问)的网页,可以在httpd.conf文件中加入如下配置选项:

1
2
3
4
5
6
7
8
9
10
11
<Directory "/usr/local/httpd/htdocs/vpnbak">   这是虚拟机中的web根目录

Options Indexes FollowSymLinks

AllowOverride None (注:如果想apache支持.htaccess文件,则将AllowOverride None 改为AllowOverride ALL)

Order allow,deny

Allow from all

</Directory>
阅读全文 »

假如我现在的服务器ip是1.1.1.1,两个域名www.a.com和www.b.com。
www.a.com绑定到/var/www/a下.www.b.com绑定到/var/www/b下。用基于域名的方式配置虚拟主机。

1、将 http://www.a.comhttp://www.b.com 的DNS解析到你的服务器IP上。
2、删除apache的默认主机配置文件。你也不希望创建2个虚拟主机后人家还能直接访问/var/www/ 吧 ;
进入 /etc/apache2/sites-enabled/ ; 删除 000-default 文件。
3、在 /etc/apache2/sites-enabled/ 目录,创建2个文件。文件名用 a.conf 和 b.conf 。

阅读全文 »