wordpress激活链接管理工具Link Manager和获取wordpress meta的ID

WordPress 欲思 2评论

在3.5版本之前,wordpress有一个链接管理工具挺方便管理友情链接的,但是在3.5版本之后就取消了这个功能,这好像有些不大方便了,所以我要重新激活(wp并没有把这个功能去掉,只是默认没有激活罢了)。
代码只有一行如下:

add_filter( 'pre_option_link_manager_enabled', '__return_true' );

wordpress开发中要根据post id取回meta的值是很方便的,可以使用wordpress的内置的函数, get_post_meta, get_postmeta等等, 但是要根据wordpress的post id 和meta的key取回这个meta的id,那就可以使用下面的函数实现:

function get_mid_by_key( $post_id, $meta_key ) {
  global $wpdb;
  $mid = $wpdb->get_var( $wpdb->prepare("SELECT meta_id FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = %s", $post_id, $meta_key) );
  if( $mid != '' )
    return (int)$mid;

  return false;
}

上面 的函数只是返回了单一的meta的id, 但是如果有很多个meta具有相同的key的时候,那就要对函数进行一些修改了,我把函数修改成下面的样子,就可以可以返回一个meta id的数组了。

function get_mids_by_key( $post_id, $meta_key ) {
    global $wpdb;
    $mids_obj = $wpdb->get_results( $wpdb->prepare(
        "SELECT meta_id FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = %s", $post_id, $meta_key));
    $mids = array();
    foreach ($mids_obj as $mid) {
        $mids[] = $mid->meta_id;
    }
    if(empty($mids)){
        return false;
    }else{
        return $mids;
    }
}

转载请注明:欲思博客 » wordpress激活链接管理工具Link Manager和获取wordpress meta的ID

如果你觉得这篇文章或者我分享的主题对你有帮助,请支持我继续更新网站和主题 !捐赠本站
喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 请问这个函数在哪个文件里
    mak2014-11-01 15:37 回复
    • 什么意思?直接放functions.php就行了额。
      欲思2015-01-25 16:41 回复