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

我对这个用于显示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.''.%24custom_fields%5B';

$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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405809.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

飞凌开发板 cramfs 镜像文件修改

From: http://blog.csdn.net/ex_net/article/details/7247111 CRAMFS文件系统是专门针对闪存设计的只读压缩的文件系统,其容量上限为256M,采用zlib压缩,文件系统类型可以是EXT2或EXT3.    如果使用RAMDISK方式来使用文件系统,那么在系统运行之后,首先得把flash上的映像文件全…

html 后# 号的作用,及html 如何传参

2019独角兽企业重金招聘Python工程师标准>>> 经常在 网上看到一些静态网页后加着 #XXX 如http://www.family168.com/tutorial/springsecurity3/html/introduction.html#spring-security-core 这种形式。这个#spring-security-core 起的作用就是在 introduction 中定…

[发布] 矩阵乘法及其对于编程求斐波那契数列的某一项的应用

需要PDF的读者可以向我索要。 如果发现有翻印与用于商业用途,将予追究。 编者注:本文中如果没有特殊说明,除法均只取整数部分,忽略小数部分。 感谢大家对我的支持!同时感谢ysy大聚聚。转载于:https://www.cnblogs.com…

oracle新建用户sql局域,oracle 新建数据库,及创建用户,表空间,sqlplus导入导出数据库...

oracle11G新建数据库:默认下一步:默认下一步:默认下一步:填写数据库名下一步:默认下一步:完成,再按指示确定,就完成了数据库的创建。数据库创建完后,在oracle11G Net Man…

STM32项目中一种在线升级/应用升级OTA-IAP设计方案

STM32 OTA-IAP设计方案 OTA是Over-the-Air的简写,即空中下载技术,通过网络远程给用户进行系统更新和升级。IAP是In Application Programming的简写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在…

嵌入式GUI FTK支持输入法

From: http://blog.csdn.net/absurd/article/details/5318285 春节期间给FTK增加输入法支持,目前支持拼音输入法,五笔输入法和手写输入法。手写输入法只是实现了框架,识别引擎才开个头,这是今年FTK开发的重点任务。拼音输入法&…

STM32程序占用的内存容量计算

STM32中程序占用内存容量 Keil MDK下Code, RO-data,RW-data,ZI-data这几个段: Code存储程序代码。RO-data存储const常量和指令。RW-data存储初始化值不为0的全局变量。ZI-data存储未初始化的全局变量或初始化值为0的全局变量。占用的FlashCode RO Data RW Data; 运行消耗的…

matlab生成exe-在没有安装matlab的电脑上运行matlab生成的exe

在没有安装matlab的电脑上运行matlab生成的exe 本文介绍如何将matlab生成exe,并将该exe在没有安装matlab的电脑上运行,与以前的博文相似地,不说废话,直接干货。 1、编写函数 2、用mcc 生成exe mcc -m testexe.m 3、在matlab命令…

Androd开发之广告栏设计

对于做Android开发的工程师对于这个效果的实现一定不陌生,本篇我将带领大家先简单实现这个效果,再为大家介绍一下其中的原理,方便新手学习,老手复习,内容简单易懂,没有基础一样学习,不扯没用的了…

在exe执行机上安装MCR环境(matlab运行环境)

未安装matlab的执行机上运行matlab生成的exe,需要提前安装好MCR。此文介绍安装方法。 1、 D:\MATLAB\R2016a\toolbox\compiler\deploy\win64 中MCRinstaller.exe 安装到该计算机上 2、 Mbuild –setup 安装合适的编译器 3、 将M 文件编译为可执行文件的语法是 mc…

Qt Label自适应显示Logo图片

一、要求 Qt Creator Ui中的Label标签控件显示一张Logo图片,要求图片自适应控件的大小。 二、实现(代码) QImage Image;//声明QImage 对象 Image.load(":/image/image/logo.jpg");//加载图片,前提是该图片存在项目的…

oracle数据倾斜优化,Hive数据倾斜优化 - ericquan8的个人页面 - OSCHINA - 中文开源技术交流社区...

数据倾斜成因:由于数据分布不均匀,造成数据大量的集中到一点,造成数据热点。具体为某一个reduce接收到的数据是其他reduce的n倍,导致明显的木桶效应。症状:1,对表做select count(1) from tb group by key&a…