Hugh's Blog

WordPress 单篇文章添加分页

问题:在单篇文章模板调用分类查询会 301 跳转回到原页面。 例如:自定义文章类型 author,模板为 single-author.php,分页链接 /author/example/page/2 会 301 重定向到 /author/example。 原因:WordPress 对于分页查询参数会有判断,例如 is_single,满足的话会移除参数。 ...

WordPress 对上传的文件进行预处理

WordPress 上传的文件保存名称一般为原始名称不经过修改,除非遇到同名,这样保存的文件有时候会碰到一些小问题,例如带中文或者空格,浏览器可能不能识别或者在使用 FileZilla 下载文件时由于编码问题会使文件名称乱码等等,而公司的录资料人员经常这样子干。。。解决方法也简单,不使用插件直接使用 WordPress 提供的过滤钩子 wp_handle_u...

WordPress 文章自定义 wpautop 过滤内容

在使用 WordPress 开发过程中,有的时候需要对主题进行二次开发,而主题有时候会依赖 WordPress 的 wpautop 来对内容进行过滤,特别是后台使用可拖动编辑器的情况下,如果某些页面使用内置编辑器的话,则输出的内容会多出一些不必要的标签,例如 <p><p/>,<br> 等等,这时候,在前台输出的页面则容易样...

WordPress 更换域名时丢失 Widgets 数据

今天在对一个 WordPress 网站更换域名时,直接对 sql 文件进行域名替换,更新完之后网站的一些内容丢失了,发现大都是 Widgets 的内容。 网上找也有类似的情况,大概是因为 WordPress 在保存数组内容时会先对数组进行 serialize 处理,当我们修改了内容之后,可能会导致内容的长度不一致,然后使用 unserialize 取数据时...

WordPress 媒体图片不能加载

最近在对一个低版本的 WordPress 网站进行迁移并升级到最新的版本 (4.5.3),升级完之后出现一个问题,在打开 wp-admin/upload.php 页面时图片与文件加载不出来,但是换成 List View 却可以加载,而且在 Featured Image 或者 Add Media 中依然不能加载,google 也没找到解决办法,网上有的说是 h...

WordPress 调用模板文件时传递参数

WordPress的 get_template_part() 函数不能向模板传递参数 但其实有个很简单的方法,代码如下,注意要加上文件后缀 include(locate_template('filename.php')); // locate_template('filename.php', true); // 直接在子...

WordPress 分类页面使用自定义分页显示 404

不知道是什么原因造成的,但是修改了之后确实是没有问题了,具体可以看参考 // 如果多处地方需要用到参数的话,可以定义一下, 方便修改 function my_posts_per_page() { return 15; } function cure_wp_amnesia_on_query_string($query_string) { if (!is...

WordPress 使用 gettext 来替换内容

有时候一些插件或者主题会使用 __() 或 _e() 来对一些文本内容进行输出,在不修改插件或者主题代码的情况下,可以使用 gettext方法来进行修改 在 functions.php 中添加下面的代码 function my_text_strings($translated_text, $text, $domain) { switch ($trans...

WordPress 修改 tinyMCE 设置

今天在 WordPress 中使用默认的编辑器修改文章内容,在切换代码模式中发现编辑器会把 span 标签给过滤掉,而我需要保留 span 标签,Google 之后发现原来可以在 functions 中对 tinyMCE 进行初始化设置。 <?php function custom_tinymce_config($init) { // Don...

WordPress 主题常用 functions

创建新的主题时 functions.php 的一些常用设置。 <?php // Remove wpautop // remove_filter('the_content', 'wpautop'); // Remove wp_head or wp_footer actions // Actions added in ...

WordPress Ajax 简单使用

使用 Wordpress 自带的 Ajax 方法,需要先定义 action add_action('wp_ajax_nopriv_example_test', 'example_test'); add_action('wp_ajax_example_test', 'example_test')...

WordPress 跳转到自定义模板

使用 WordPress 进行自定义的模板跳转 function load_custom_emplate_function($template) { global $wp_query; if (!file_exists($template)) return; $wp_query->is_page = true; $wp_query->i...

WordPress 获取多个自定义分类法下的文章

主要还是使用 WP_Query 来获取,关键是 args 参数。 // 随便怎么写,反正能获取到 ids 或 slugs 就行 // 获取 post 下的要显示的分类 slug $category_value = get_post_meta($post->ID, 'tz_category_include', true); // 根据 ...

WordPress 获取子页面

获取子页面很简单,代码也不长,需要注意的变量的传递问题。 代码 // get_page_children 方法 // 首先获取到需要的 pages // $query = new WP_Query(); // $pages = $query->query(array('post_type' => 'page',...

WordPress 返回带 HTML 标签的内容

今天遇到一个小需求,需要在一篇文章显示另一篇文章的内容。 使用 shortcode 来实现,然后在文章中调用,shortcode 定义需要返回带 html 标签的内容。 functions.php 中添加 function getAnotherPostContent($atts) { $atts = shortcode_atts(array( &...

WordPress 显示某个分类下的文章

之前写过一个在 sidebar 下显示分类文章的,这个也是类似,就不多说了。 直接建立 template 文件。 <?php /** * Template Name: Posts By Category */ get_header(); // 获取 post 的某个字段 (分类 slug),这个是从 page 页面中添加的,没看到的话点击右上角的...

WordPress 在 Sidebar 中显示某个分类下的文章

实现过程 注册 sidebar widget (register_sidebar) 添加获取分类文章的 shortcode (add_shortcode) 允许在 widget 中使用 shortcode (do_shortcode) 使用的是 cherry framework 主题,所以修改的是主题下的 sidebar-init.php 文件,...

WordPress 自定义上传文件类型

很简单!! 在 functions.php 文件中添加如下代码。 /** * Add custom file type */ add_filter('upload_mimes', 'custom_upload_xml'); function custom_upload_xml($mimes = array()) {...

WordPress 搜索添加自定义字段

昨天工作需要修改 WordPress 搜索功能,就是在搜索时把 post_excerpt 也添加到查询当中,用的是 wordpress 自带 pre_get_posts 的 api,添加到 add_action 就行,想要添加其他自定义字段也是类似的。 把代码添加到 functions.php中 /* add excerpt search */ add_...

WordPress 根据国家 IP 自动跳转到不同页面

项目中需要根据访问者 ip 来为其自动跳转到不同页面,例如大陆用户访问自动跳转到另一个服务器,其他用户则不变;想到的方法有两种,一种是使用 ip 数据库来进行筛选,然后在 php 中使用 header 函数进行跳转,另一种是修改 .htaccess 文件 (这个没实验过),还有网上说用 javascript 来获取浏览器语言来进行跳转。方法应该有很多,但是能...

WordPress 添加自定义 Sidebar

找到一篇很好的学习教程,感谢作者,具体看这里。PS:貌似需要 FQ 才能访问-_-! 首先在 functions.php 文件下注册 sidebar if ( function_exists('register_sidebar') ) { register_sidebar(array( 'name' => &#...

WordPress 获取文章中的图片

获取 post 中的特色图片 <?php $thumbnail_image_url = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'thumbnail'); echo $thumbnail_image_url[0]; // OR $thumbnai...