Hugh's Blog

WordPress 单篇文章添加分页

问题:在单篇文章模板调用分类查询会 301 跳转回到原页面。 例如:自定义文章类型 author,模板为 single-author.php,分页链接 /author/example/page/2 会 ...

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

WordPress 上传的文件保存名称一般为原始名称不经过修改,除非遇到同名,这样保存的文件有时候会碰到一些小问题,例如带中文或者空格,浏览器可能不能识别或者 ...

WordPress 文章自定义 wpautop 过滤内容

在使用 WordPress 开发过程中,有的时候需要对主题进行二次开发,而主题有时候会依赖 WordPress 的 wpautop 来对内容进行过滤,特别是后台使用可拖动编辑器的情况下,如果某些页 ...

WordPress 更换域名时丢失 Widgets 数据

今天在对一个 WordPress 网站更换域名时,直接对 sql 文件进行域名替换,更新完之后网站的一些内容丢失了,发现大都是 Widgets 的内容。 网上找也有类似的情况,大概是因为 ...

WordPress 媒体图片不能加载

最近在对一个低版本的 WordPress 网站进行迁移并升级到最新的版本 (4.5.3),升级完之后出现一个问题,在打开 wp-admin/upload.php 页面时图片与文件加载不出来,但是换成 List View ...

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

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

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

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

WordPress 使用 gettext 来替换内容

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

WordPress 修改 tinyMCE 设置

今天在 WordPress 中使用默认的编辑器修改文章内容,在切换代码模式中发现编辑器会把 span 标签给过滤掉,而我需要保留 span 标签,Google 之后发现原来可以在 functions 中 ...

WordPress 为文章分类添加图片

为文章分类添加图片字段 /** * Add image for category */ add_action('init', 'my_category_module'); function my_category_module() { $taxonomy = 'category'; add_action($taxonomy . '_add_form_fields', 'add_custom_field_for_taxonomy'); add_action($taxonomy . '_edit_form_fields', 'add_custom_field_for_taxonomy'); add_action('create_' . $taxonomy, 'save_custom_field_for_taxonomy'); add_action('edited_' . $taxonomy, 'save_custom_field_for_taxonomy'); } function add_custom_field_for_taxonomy($tag) { $category_images = get_option('category_images'); $category_image = ''; if (is_array($category_images) && array_key_exists($tag->term_id, $category_images)) { $category_image = $category_images[$tag->term_id]; } echo '<tr><th scope="row" valign="top"><label for="auteur_revue_image">Image</label></th><td>'; if ($category_image != ...

WordPress 主题常用 functions

创建新的主题时 functions.php 的一些常用设置。 <?php // Remove wpautop // remove_filter('the_content', 'wpautop'); // Remove wp_head or wp_footer actions // Actions added in /wp-includes/default-filters.php // remove_action('wp_head', '_wp_render_title_tag', 1); // remove_action('wp_head', 'wp_enqueue_scripts', 1); // remove_action('wp_head', 'wp_print_styles', 8); // remove_action('wp_head', 'wp_print_head_scripts', 9); // remove_action('wp_footer', 'wp_print_footer_scripts'); remove_action('wp_head', 'feed_links', 2); remove_action('wp_head', 'feed_links_extra', 3); remove_action('wp_head', 'rsd_link'); remove_action('wp_head', 'wlwmanifest_link'); remove_action('wp_head', 'index_rel_link'); remove_action('wp_head', 'parent_post_rel_link', 10, 0); remove_action('wp_head', ...

WordPress Ajax 简单使用

使用 Wordpress 自带的 Ajax 方法,需要先定义 action add_action('wp_ajax_nopriv_example_test', 'example_test'); add_action('wp_ajax_example_test', 'example_test'); function example_test() { $name = $_POST['name']; header('Content-Type: application/json'); $json = array(); $json['msg'] = 'Hello ' . $name; echo json_encode($json); exit; } 然后在前端页面调用就行,例如使用 jQuery jQuery.ajax({ type: 'POST', // url 路径必须带 'wp-admin/admin-ajax.php' url: ...

WordPress 跳转到自定义模板

使用 WordPress 进行自定义的模板跳转 function load_custom_emplate_function($template) { global $wp_query; if (!file_exists($template)) return; $wp_query->is_page = true; $wp_query->is_single = false; $wp_query->is_home = false; $wp_query->comments = false; // if we have a 404 status if ($wp_query->is_404) { // set status of 404 to false unset($wp_query->query["error"]); $wp_query->query_vars["error"] = ""; $wp_query->is_404 = false; } // change the header to 200 OK header("HTTP/1.1 200 OK"); //load our ...

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

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

WordPress 获取子页面

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

WordPress 返回带 HTML 标签的内容

今天遇到一个小需求,需要在一篇文章显示另一篇文章的内容。 使用 shortcode 来实现,然后在文章中调用,shortcode 定义需要返回带 html 标签的内容。 functions.php 中添 ...

WordPress 显示某个分类下的文章

之前写过一个在 sidebar 下显示分类文章的,这个也是类似,就不多说了。 直接建立 template 文件。 <?php /** * Template Name: Posts By Category */ get_header(); // 获取 post 的某个字段 (分类 slug),这个是从 ...

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

实现过程 注册 sidebar widget (register_sidebar) 添加获取分类文章的 shortcode (add_shortcode) 允许在 widget 中使用 shortcode (do_shortcode) 使用的是 cherry framework 主题,所以修改的是主题下的 sidebar-init.php 文件,也可以直接写在 functions.php 文件 <?php // Register sidebars by running cherry_widgets_init() on ...

WordPress 自定义上传文件类型

很简单!! 在 functions.php 文件中添加如下代码。 /** * Add custom file type */ add_filter('upload_mimes', 'custom_upload_xml'); function custom_upload_xml($mimes = array()) { $mimes = array_merge($mimes, array('xml' => 'application/xml')); return $mimes; } 添加上面代码可以将 xml 文件上传到后台中。 更多的文件类型可以到这 ...

WordPress 搜索添加自定义字段

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

WordPress 添加自定义 Sidebar

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

WordPress 获取文章中的图片

获取 post 中的特色图片 <?php $thumbnail_image_url = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'thumbnail'); echo $thumbnail_image_url[0]; // OR $thumbnail_image_url = wp_get_attachment_image_url(get_post_thumbnail_id($post->ID), 'thumbnail'); echo $thumbnail_image_url; ?>其中 thumbnail 可以替换成 medium/large/full,分别代表获得图片的尺寸,还可以 ...