帮我打4.6分。JSON API插件中的附件响应对象

时间:2011-07-22 作者:generalchaos

我是JSON API插件的忠实粉丝。开发人员做得很好,我非常感谢他。我正在学习如何使用json和jquery,并试图限制从ajax请求中获得的信息。我已经能够成功地使用include和custom字段选项,但amd对4.6的理解有点欠缺。附件响应对象。是否有办法将结果限制为仅提供拇指图像?如果是这样的话,谁能提供一个语法示例。我不确定如何在查询字符串中处理这些对象。任何帮助都会很棒。如果我需要澄清什么,请告诉我。

我通过以下请求url缩小了结果范围:/?json=get_recent_posts&include=title,url,categories,thumbnail,custom_fields&custom_fields=field1\'

插件url:http://wordpress.org/extend/plugins/json-api/other_notes/插件作者:http://profiles.wordpress.org/users/dphiffer/

尊敬的WordPress开发人员

3 个回复
SO网友:moimikey

我认为这实际上完全取决于限制这些信息的问题是什么。是否不想公开此特定数据?您不想遍历这么多数据吗?您是否打算通过$传递此数据。getJSON()请求?您是否将此数据传递给PHP函数来处理它?

您可以创建一个新的控制器,用您自己的规范来处理这个问题,您可以限制JSON输出。第三方控制器的一个很好的示例如下:wordpress json custom taxonomy problem.

或者,如果您想要一种我有时会采用的方法,将JSON输出传递给PHP变量,对其进行解码,将特定数据过滤到新数组,或者按原样使用该数组,或者将其重新编码为JSON格式。这方面的一个更好的例子(更像是伪代码,而不是供您使用的代码,因为它是直接从我的一个项目中剪切、粘贴和重新组织的):

$json = bbtf_feed_cache( \'/api/get_recent_posts/?count=-1&post_type=highline_gallery\', \'artists_jsonp\' );

if( is_array( $json ) && ! empty( $json ) ) {
    $object  = $json[\'posts\'];
    $artists = array();

    foreach( $object as $item ) {
        $artists[] = array( \'label\' => $item[\'title_plain\'], \'value\' => $item[\'title_plain\'], \'slug\' => $item[\'slug\'], \'id\' => $item[\'id\'] );
    }

    $json = json_encode( $artists );    
}
如果这有帮助,请告诉我。。。

SO网友:Jerome

在主题功能文件中添加:

add_theme_support( \'post-thumbnails\' );    
set_post_thumbnail_size( 50, 50, true ); // 50 pixels wide by 50 pixels tall, crop mode
。。etc-http://codex.wordpress.org/Post_Thumbnails#Setting_a_Post_Thumbnail

然后在主题索引文件中,在has post循环中添加以下内容:

// check if the post has a Post Thumbnail assigned to it.    
if ( has_post_thumbnail() ) {
    the_post_thumbnail();
}
现在,当您调用JSON时,应该显示一个名为缩略图的额外字段。

SO网友:Adam Munns

如果您希望限制使用多个自定义大小时占用大量提要的附件/图像,则可以使用插件作者提供的过滤器删除某些附件大小

add_filter(\'json_api_encode\', \'my_encode_attachments\');

function my_encode_attachments($response) {
  if (isset($response[\'posts\'])) {
    foreach ($response[\'posts\'] as $post) {
        foreach ($post->attachments as $attachment){
            unset($attachment->images[\'full\']);
            unset($attachment->images[\'thumbnail\']);
            unset($attachment->images[\'medium\']);
            unset($attachment->images[\'large\']);
            unset($attachment->images[\'bones-thumb-300\']);
            unset($attachment->images[\'bones-thumb-600\']);
            unset($attachment->images[\'post-thumbnail\']);
            unset($attachment->images[\'vendor-thumb\']);
            unset($attachment->images[\'0\']);
        }
    }
  } 
  return $response;
}

结束

相关推荐

WordPress AJAX调用通过die()返回零

我正在请求一个插件。这在我的测试平台(常规WP)上运行良好,但在WPMU(两个最新的WP版本)上会出现问题这是我的职责:function my_action_callback() { $post = $_POST[\'shortcode\']; $post = str_replace(\'\\\"\',\'\"\',$post); echo do_shortcode($post); die(); } 有什么问题吗?