WordPress 连结由“绝对路径”改为“相对路径

WordPress 原生绝对路径转相对路径的方法 wp_make_link_relative 在 /wp-includes/formatting.php

过滤连结

连结相关的过滤器 (filter),透过 wp_make_link_relative 把绝对路径改为相对路径

Example:

过滤所有连结

一次转完所有连结相关的过滤器 (filter) ,但排除 WordPress sitemap 中的连结,WordPress sitemap 仍维持绝对路径

Example:

排除部分连结连结,维持绝[……]

Read more

WordPress 使用 Namespace Warning call_user_func_array() expects parameter 1 to be a valid callback

在开发 WordPress Plugin 常用字串来代表 functions ,最常用的莫过于add_action() &add_filter()

实际上在 WordPress API 中是用 php call_user_func() 来执行传入的 function,但到了执行阶段并没有办法直接调用在 Namespace 中的 function , 否则 Namespace 就没意义了。

所以在 Namespace 文件中用上述的方法呼叫

会得到下列错误讯息,主要是找不到传入的 function

Warning call[……]

Read more

WordPress Contact Form 7 (CF7) 新增自订义字段

Contact Form 7 这插件应该不用我多说了,是WordPress百万级插件,但他的表单字段有限,是一些常用的字段,这样怎么能应付刁钻的客户呢?本篇介绍几种方式新增自订义字段

  1. 透过 CF7 shortcode 来建立自订义字段。
  2. 透过 CF7 的 wpcf7_form_elements 这个 filter 新增自订字段HTML。
  3. 透过 WP shortcode 新增自订字段HTML。

透过 CF7 shortcode 来建立自订义字段。

Contact Form 7 提供的 shortcode API 跟 WordPress 不同,Contact Form[……]

Read more

WordPress 文章不分页显示全部,不使用WP_Query(),使用pre_get_posts

不限制显示文章笔数(文章不分页)

在自订页面上显示所有文章,我们可以用 WP_Query()  轻易达成, 在 posts_per_page 参数设为 -1 即可,但有时我们需要在主题页面上显示所有文章,但又不想再跟数据库要一次资料,多少会影响效能,或是开发插件,并不会去动到主题,所以就没办法使用 WP_Query()  ,所以可以改使用 pre_get_posts  这个钩子,去修改Main Query 参数,下方针对两种方法作介绍。

使用 WP_Query()

pre_get_posts_fun

使用这个钩子,要[……]

Read more

$wpdb get SQL string 取得mySQL查询字串

$wpdb 取得MySQL查询字串

WordPress 提供了 wpdb 这 Class 有很多方法可以操作数据库,如果是用 wpdb 的内建方法来处理查询,有时除错会想看最终组出来送到数据库的查询字串,只要 echo $wpdb->last_query ,就可以取得囉。

范例:

参考:

[……]

Read more

WordPress thumbnail default size 默认缩图尺寸表

WordPress 默认缩图尺寸表

尺寸名 (字串)大小尺寸说明thumbnail小150 x 150 强制裁剪尺寸medium中等300 x 300 最大高度300像素medium_large中大768 x 无限高 WP4.4增加large 大1024 x 1024 最大高度1024像素full完整尺寸原始大小 

WooCommerce 默认缩图尺寸表

尺寸名 (字串)大小尺寸说明shop_thumbnail小180 x 180强制裁剪尺寸shop_catalog中300 x 300强制裁剪尺寸shop_[……]

Read more

WordPress 插件宣告

任何插件的第一步,宣告这是个WordPress插件

在为您的项目分配版本号时,请记住,WordPress使用PHP version_compare() 函数来比较插件版本号。因此,在您发布新版本的插件之前,您应该确保这个PHP函数认为新版本比旧版本“更大”。

例如,1.02实际上大于 1.1。

[……]

Read more