Author: 迎迎 姚

  • There are something you can remove for WordPress

    There are something you can remove for WordPress

    这些代码,可以帮助你去除 header 里一些不必要的元素,CSS 和 JS 引入链接后面的版本号,隐藏admin bar 里的评论icon,清理仪表盘里的众多 Widgets,甚至去除源码里链接的 域名 部分。

  • WordPress 多媒体库只显示当前用户上传的文件

    WordPress 多媒体库只显示当前用户上传的文件

    在 wordpress 的 media library 里只显示当前用户上传的文件。也试用于 acf_form //wordpress show only media user has uploaded add_action(‘pre_get_posts’,’ml_restrict_media_library’); function ml_restrict_media_library( $wp_query_obj ) { global $current_user, $pagenow; if( !is_a( $current_user, ‘WP_User’) ) return; if( ‘admin-ajax.php’ != $pagenow || $_REQUEST[‘action’] != ‘query-attachments’ ) return; if( !current_user_can(‘manage_media_library’) ) $wp_query_obj->set(‘author’, $current_user->ID ); return; } is_a() 函数已废弃,自 PHP 5 起使用 instanceof 类型运算符。上例在 PHP 5…

  • Get first or last element from PHP array()

    Get first or last element from PHP array()

    $stack = array(“orange”, “banana”, “apple”, “raspberry”); $last_value = array_pop($stack); // return “raspberry” $first_value = array_shift(array_values($stack)); // return “orange”

  • WordPress 参考函数:get_children

    WordPress 参考函数:get_children

    描述 get_children() 返回附件(attachments)、历史版本(revisions)或者根据父页面获取子页面。类似与 get_posts()。 概要 array $children =& get_children( mixed $args = “”, constant $output = OBJECT); 返回值 返回一个文章关联数组(参数 $output 决定输出的变量类型),以文章ID作为数组的Key。如果没有发现任何文章,返回空数组。 在版本2.9之前,如果没有发现任何文章则返回 false。 默认参数(版本2.7) $defaults = array( ‘post_parent’ => 0, ‘post_type’ => ‘any’, ‘numberposts’ => -1, ‘post_status’ => ‘any’ );  参数 全部参数参考 get_posts()。 版本2.6以后,你必须通过一个非空的文章类型(post_type)参数(或附件(attachment)或页面(page))。 $args (混合型)通过一个数组设置多个参数。通过一个整形的文章ID或者一个文章对象可以获得该文章的子文章。如果是一个空的值,则可以获得当前文章或者页面的子文章或页面。 $args[‘numberposts’] (整形)获取子文章或页面的数量。可选的,默认 -1(无限制) $args[‘post_parent’] (整形)通过文章或页面的ID获取他们的子文章或页面。Pass 0 to get attachments without…

  • WordPress 参考函数:get_boundary_post

    WordPress 参考函数:get_boundary_post

    描述 获取发表的第一篇或最后一篇文章。 使用 <?php get_boundary_post( $in_same_cat, $excluded_categories, $start ); ?>  参数 $in_same_cat (布尔型)(可选)是否在同一分类。默认:false $excluded_categories (字符串)(可选)排除分类的ID。默认:’’ $start (布尔型)(可选)是否是第一篇。默认:true。 返回值 如果成功,返回文章对象。 如果全局变量 $post 没有设定,返回空。 如果没有相应的文章存在,返回空字符串。 注释 get_boundary_post() 将文章指向第一篇文章。 变更日志 版本2.8.0起 源码位置 get_boundary_post()在 wp-includes/link-template.php.

  • WordPress 参考函数:get_adjacent_post

    WordPress 参考函数:get_adjacent_post

    描述 获取毗连的文章。 可以是前一篇或后一篇。 使用 <?php get_adjacent_post( $in_same_cat, $excluded_categories, $previous ) ?>  参数 $in_same_cat (布尔型)(可选的)文章是否在相同的分类。 默认:false。 $excluded_categories (字符串)(可选的)剔除分类的ID。默认:‘’ $previous (布尔型)(可选的)是否返回上一篇文章。默认:true 返回值 如果没有错误,返回文章对象。 如果全局变量 $post 没有设置,返回值是 Null。 如果不存在相匹配的文章,返回空字符串。 注释 使用全局变量:(对象)$post 使用全局变量:(对象)$wpdb Filters $adjacent 是 ‘previous’ 或者 ‘next’ “get_{$adjacent}_post_join”: $join, $in_same_cat, $excluded_categories “get_{$adjacent}_post_where”: $wpdb->prepare(“WHERE p.post_date $op %s AND p.post_type = %s AND p.post_status = ‘publish’ $posts_in_ex_cats_sql”, $current_post_date, $post->post_type), $in_same_cat, $excluded_categories…

  • Change position of Featured image Metabox in wordpress

    特征图片的位置一开始已经写死在Wordpress 核心里了,如果你想把它移到左边区域,或者边栏的靠前位置,下面或许是一个解决方案。 首先是去除掉特色图片的metabox,然后使用 add_meta_box 重新添加。 post_thumbnail_meta_box 是一个已经定义好的函数,可以直接调用。 前提:你必须在模板里已经启用 Post Thumbnails add_theme_support( ‘post-thumbnails’ ); add_theme_support( ‘post-thumbnails’, array( ‘post’ ) ); // Posts only add_theme_support( ‘post-thumbnails’, array( ‘page’ ) ); // Pages only add_theme_support( ‘post-thumbnails’, array( ‘post’, ‘movie’ ) ); // Posts and Movies 然后: add_action(‘do_meta_boxes’, ‘customposttype_image_box’); function customposttype_image_box() { remove_meta_box( ‘postimagediv’, ”, ‘side’ ); add_meta_box(‘postimagediv’, __(‘Featured Image’),…

  • 降低 Yoast metabox 的优先级

    Yoast 是一款非常优秀的 SEO 插件,但是它生产的 metabox 总是觉得优先级太高,通过下面的filter可以降低它的优先级,将Yoast的metabox排到后面去。 if (is_admin()) : add_filter( ‘wpseo_metabox_prio’, function() { return ‘low’;}); endif;

  • Remove Mappress metabox from WP admin except specific page template

    Mappress 是一个很好用的google地图插件,但是它在后台的每个编辑页面里都添加了一个Metabox,大多时候这都不是我们想要的,所以我创建了一个 page-contact.php 的页面模板。让它出现在选择了该页面模板的页面。 if (is_admin()) : function remove_plugin_metaboxes(){ global $post; //var_dump(get_page_template_slug($post->ID)); if(get_page_template_slug($post->ID) != “page-templates/page-contact.php”){ remove_meta_box(‘mappress’, ‘page’, ‘normal’); remove_meta_box(‘mappress’, ‘page’, ‘side’); } } add_action( ‘do_meta_boxes’, ‘remove_plugin_metaboxes’ ); endif;

  • Remove classes and id from wp_nav_menu

    function my_special_nav_class( $classes, $item ) { foreach($classes as $key=>$class){ if(preg_match(‘/^menu-item(.*)|^page(.*)/i’,$class)){ unset($classes[$key]); } } return $classes; } add_filter( ‘nav_menu_css_class’, ‘my_special_nav_class’, 10, 2 ); this filter will remove all the classes beginning as ‘menu-item’ and ‘page’. function my_special_nav_id($id) { return ”; } add_filter( ‘nav_menu_item_id’, ‘my_special_nav_id’ ); this filter will remove the id of ‘li’ element