我对这个用于显示JSON API中的自定义字段的the_content过滤器感到绝望.

我正在使用此插件http://wordpress.org/plugins/json-rest-api/从自定义帖子类型获得JSON响应.这些自定义帖子类型具有我必须在移动应用程序中显示的自定义字段.

为了实现这一点,我编写了以下代码,该代码使用the_content过滤器替换原始内容,仅使用HTML标签显示自定义帖子类型:

add_filter( 'the_content', 'add_custom_post_fields_to_the_content' );

function add_custom_post_fields_to_the_content( $content ){

global $post;

$custom_fields = get_post_custom($post->ID);

$content = '';

$content = $content.'';

$content = $content.'

'.$post->post_title.'

';

$content = $content.'

'.$custom_fields["wpcf-direccion"][0].'

';

$content = $content.'

'.$custom_fields["wpcf-phone"][0].'

';

$content = $content.'

'.$custom_fields["wpcf-facebook"][0].'

';

return $content;

}

因此,当我通过浏览器请求信息时,这是一个示例http://bride2be.com.mx/ceremonia/,自定义字段显示得很好,但是当我请求JSON数据时,仅显示HTML,而没有自定义字段的值.

这是一个例子:

我对此不知所措,有人可以帮助我吗?

解决方法:

您使用the_content过滤器的方式不仅在JSON API调用中,而且在各处都得到应用.

无论如何,您应该尝试将钩子添加到插件,而不是WordPress(至少不是第一次尝试).

以下未经测试,但我相信是正确的轨道:

/* Plugin Name: Modify JSON for CPT */

add_action( 'plugins_loaded', 'add_filter_so_19646036' );

# Load at a safe point

function add_filter_so_19646036()

{

add_filter( 'json_prepare_post', 'apply_filter_so_19646036', 10, 3 );

}

function apply_filter_so_19646036( $_post, $post, $context )

{

# Just a guess

if( 'my_custom_type' === $post['post_type'] )

$_post['content'] = 'my json content';

# Brute force debug

// var_dump( $_post );

// var_dump( $post );

// var_dump( $context );

// die();

return $_post;

}

您必须设置为inspect all three parameters,以确保这会在正确的帖子类型中发生,并且您在正确地操作$_post.

标签:wordpress-plugin,wordpress,json,php

来源: https://codeday.me/bug/20191030/1966534.html

php json传输被过滤,php-the_content过滤器,用于将自定义字段添加到JSON响应相关推荐

  1. Redis亿级数据过滤和布隆过滤器

    来自:我没有三颗心脏 一.布隆过滤器简介 上一次 我们学会了使用 HyperLogLog 来对大数据进行一个估算,它非常有价值,可以解决很多精确度不高的统计需求.但是如果我们想知道某一个值是不是已经在 ...

  2. json传输二进制的方案(python版)

    json传输二进制的方案(python版) 1.json不能直接传二进制文件 json只能传递基本的数型(如:int,long,string等),但不能传递byte类型.但是有时候我们想在json中传 ...

  3. asp.net core MVC 过滤器之ActionFilter过滤器(二)

    简介 Action过滤器将在controller的Action执行之前和之后执行相应的方法. 实现一个自定义Action过滤器 自定义一个全局异常过滤器需要实现IActionFilter接口 publ ...

  4. json传输二进制的方案【转】

    本文转自:http://wiyi.org/binary-to-string.html json 是一种很简洁的协议,但可惜的是,它只能传递基本的数型(int,long,string等),但不能传递by ...

  5. flask json传输失败_GO小知识之实例演示 json 如何转化为 map 和 struct

    简单谈一些 JSON 数据处理的小知识.近期工作中,因为要把数据库数据实时更新到 elasticsearch,在实践过程中遇到了一些 JSON 数据处理的问题. 实时数据 实时数据获取是通过阿里开源的 ...

  6. c#mvc过滤器之系统过滤器

    系统过滤器ActionName过滤器 [ActionName("Test")] 替换第一个视图为Test 在使用原视图会找不到路径相当于Index视图被覆盖了. 把路径改为Test ...

  7. html form表单数据转为json传输

    html form表单数据转为json传输 from 表单 <form id="form1" name="form1" method="post ...

  8. android string 过滤,Android 字符串过滤器InputFilter详解

    概述 InputFilter是系统提供的一个接口,里面只有一个方法filter(),用于过滤输入/插入的字符串,返回值为CharSequence. 一般都是通过判断语句来过滤字符串,在这里 Input ...

  9. 用python写一个彩票过滤器_37.Python自定义过滤器

    自定义模板过滤器 1.首先在某个app中,创建一个python包,叫做"templatetags",注意,这个包的名字一定要是"templatetags",否者 ...

最新文章

  1. apache-hadoop-1.2.1、hbase、hive、mahout、nutch、solr安装教程
  2. python if and_python有趣用法汇总(持续更新)
  3. Factory Method模式的误区:Factory Method模式是简化版的Abstract Factory吗?
  4. 大剑无锋之Redis面试题【推荐】
  5. @PostConstruct注解学习,最详细的分享教程
  6. Spring XML中如何使用 符号,比如数据库MySQL连接
  7. C语言,字符串指针做函数参数
  8. 工作流的节点关系详解
  9. 【Vue.js 知识量化】ES6 语法积累
  10. 我已经弃用头条了,难道还要抛弃微信?
  11. android 多个模块,Android Studio:多个模块的多个APK
  12. 微博自动同步发表到微头条工具使用说明
  13. 这些独家记忆串成我们的2022
  14. python字符串前加字母u或者r区
  15. Fedformer中的小波变换(FEB-w模块)
  16. 深度学习 情感分析_使用深度学习进行情感分析
  17. 关于c3p0报错:An attempt by a client to checkout a Connection has timed out
  18. 递归案例 ---- 母牛生小牛
  19. 播放mp4视频,有声音无图像,AVC(H264)编码转换
  20. 【公式输入】 latex和markdown支持的公式写法整理

热门文章

  1. php随机生成车牌号,生成汽车牌照
  2. grep 显示包含两个关键字_linux三剑客之-grep
  3. 计算机节电模式不能打开,电脑进入节电模式打不开怎么办
  4. 微型计算机一般不采用的控制方式,微型计算机控制作业.doc
  5. CSS如何让DIV的宽度随内容的变化
  6. C++ 学习基础篇(一)—— C++与C 的区别
  7. Linux 下 NFS服务的搭建
  8. 一个系统中同时使用VC6.0+OpenCV1.0和VS2010+OpenCV2.4.6.0的方法
  9. [react] React中怎么检验props?
  10. Taro+react开发(93):判断是否是H5端