GVKun编程网logo

php – WordPress Rest API无法与Postman合作(wordpress restful api)

4

在本文中,您将会了解到关于php–WordPressRestAPI无法与Postman合作的新资讯,同时我们还将为您解释wordpressrestfulapi的相关在本文中,我们将带你探索php–Wo

在本文中,您将会了解到关于php – WordPress Rest API无法与Postman合作的新资讯,同时我们还将为您解释wordpress restful api的相关在本文中,我们将带你探索php – WordPress Rest API无法与Postman合作的奥秘,分析wordpress restful api的特点,并给出一些关于MWeb 1.3.7 发布!增加发布到 Wordpress 等支持 MetaWeblog API 的服务,如:Wordpress 博客、新浪博客、cnblogs、oschina。、php – WordPress REST API创建使用自定义表的自定义端点、php – WordPress REST API慢响应时间、php-WordPress REST API端点的实用技巧。

本文目录一览:

php – WordPress Rest API无法与Postman合作(wordpress restful api)

php – WordPress Rest API无法与Postman合作(wordpress restful api)

我正在使用wordpress REST API插件.当我访问Google Chrome中的API链接时,它会返回JSON响应,但如果我尝试将其与Postman一起使用,则无效.相反,它返回此响应:

<html>
<body>
    <script type="text/javascript" src="/aes.js" ></script>
    <script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f
        <d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),b=toNumbers("98344c2eee86c3994890592585b49f80"),c=toNumbers("8c438240f47c9d866926316329bd2945");document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/"; document.cookie="referrer="+escape(document.referrer); location.href="http://adismc.vortekhosting.net/wordpress/wp-json/wp/v2/posts/1?ckattempt=1";
        </script>
        <noscript>This site requires JavaScript to work, please enable JavaScript in your browser or use a browser with JavaScript support</noscript>
    </body>
</html>

我认为它与cookie有关,但我不确定为什么它需要一个简单的GET请求的cookie?我如何解决这个问题并让它与Postman合作?

解决方法:

它似乎是您的托管(example)上的反DDOS /机器人保护.我已经解决了更改托管问题.

可能在服务器设置中可以关闭保护,或者您可以询问您的托管支持.

MWeb 1.3.7 发布!增加发布到 Wordpress 等支持 MetaWeblog API 的服务,如:Wordpress 博客、新浪博客、cnblogs、oschina。

MWeb 1.3.7 发布!增加发布到 Wordpress 等支持 MetaWeblog API 的服务,如:Wordpress 博客、新浪博客、cnblogs、oschina。

<h2 id="toc_0">MWeb 1.3.7 版的新功能</h2>

<ul> <li>增加发布到 Wordpress 等支持 Metaweblog API 的服务,目前经测试过的有: Wordpress 博客、新浪博客、cnblogs、oschina。</li> <li>增加发布到 Tumblr 和 Scriptogr.am </li> <li>即时预览改进,原来会闪动,现在拿掉了同步滚动功能后不会了。</li> <li>编辑器和三栏切换也有小改进。</li> </ul>

<h2 id="toc_1">下边介绍一下发布到 Wordpress 等支持 Metaweblog API 的功能</h2>

<p>我所知,Mac 下支持这一功能的 Native 的 Markdown 编辑器就只有 MWeb 了。之前用过 Live Writer 的朋友都知道这功能非常好用,因为加图片非常方便!然后是离线写作,不用担心内容丢失,还可以方便地发布到多处地方。我之前用 Live Writer 时还会时不时要切到 HTML 代码下去修正一下格式问题,有点难用,现在用 Markdown 的话,就不会有这情况了。可以说:Markdown 和 Metaweblog API 才是真正的完美结合!</p>

<p>在 MWeb 中点菜单:<code>MWeb</code> - <code>Preferences</code> - <code>Publishing</code> 即可进入发布设置界面,如下:</p>

<p><img src="http://static.oschina.net/uploads/img/201504/17093925_FuAC.jpg" alt=""/></p>

<h3 id="toc_2">增加发布到 Wordpress 的服务</h3>

<p>点 Wordpress.org 这个按钮,如下图,由于 Wordpress 的远程发布网址可以由博客网址得知,所以只需要填入博客网址、帐号、密码即可。密码是存到 Keychain,所以可无需担心。<br/> <img src="http://static.oschina.net/uploads/img/201504/17093927_x1hn.jpg" alt=""/></p>

<h3 id="toc_3">增加发布到 新浪博客、cnblogs、oschina 的服务</h3>

<p>点 Metaweblog API 这个按钮,如下图,必填的只有 帐号、密码、Publish URL。Publish URL 这个一般支持 Metaweblog API 的服务都会提供的。</p>

<p><img src="http://static.oschina.net/uploads/img/201504/17093927_CKSG.jpg" alt=""/></p>

<p>下面说一下新浪博客、cnblogs、oschina 的 Publish URL。</p>

<ul> <li>新浪博客的 Publish URL:<a href="http://upload.move.blog.sina.com.cn/blog_rebuild/blog/xmlrpc.php">http://upload.move.blog.sina.com.cn/blog_rebuild/blog/xmlrpc.php</a></li> <li>cnblogs 的 Publish URL:<a href="http://www.cnblogs.com/Blog%E5%90%8D/services/metaweblog.aspx">http://www.cnblogs.com/Blog名/services/metaweblog.aspx</a>。其中 <strong>Blog 名</strong> 请换为您的博客名。cnblogs 的博客后台设置,拉到最下面,也可以找到这个网址。比如说我的是 <a href="http://rpc.cnblogs.com/metaweblog/OtisBlog">http://rpc.cnblogs.com/metaweblog/OtisBlog</a> 两者网址不同,但是效果一样。</li> <li>oschina 的 Publish URL:<a href="http://my.oschina.net/action/xmlrpc">http://my.oschina.net/action/xmlrpc</a></li> </ul>

<h3 id="toc_4">发布</h3>

<p>如下图红框处,你可以在 MWeb 分享按钮(右上角的第三个按钮)中找到所增加的发布服务。名称会显示 <code>Blog Name</code> 中设定的名称。</p>

<p><img src="http://static.oschina.net/uploads/img/201504/17093920_7QSi.jpg" alt=""/></p>

<p>比如说我要发布到我的 Wordpress 博客,点 <code>oulvhai 的 Wordpress 博客</code>,如下图:<br/> <img src="http://static.oschina.net/uploads/img/201504/17093929_iYWk.jpg" alt=""/></p>

<p>要注意的时,有些博客服务是不支持上边的一些设置的,比如说 <code>Custom URL</code>、<code>Publish Date</code>、<code>Status</code> 等。设定好后,点 <code>Publish</code> 按钮就可以发布了。</p>

<p>要说明的是:Metaweblog API 有自动上传图片的功能,有看到我现在这文章的图片都是在本地的,发布时就会自动把图片上传到所发布的博客服务。所以就不用找图床了。我这文章会发布到以下几个地方:</p>

<ul> <li>我的用 MWeb 静态网站功能生成的个人博客:<a href="http://coderforart.com">http://coderforart.com</a></li> <li>同样用 MWeb 静态网站功能生成的 MWeb 中文官网:<a href="http://zh.mweb.im">http://zh.mweb.im</a></li> <li>我的 Wordpress 测试博客:<a href="http://appbk.sinaapp.com/">http://appbk.sinaapp.com/</a></li> <li>我的新浪博客:<a href="http://blog.sina.com.cn/oulvhai">http://blog.sina.com.cn/oulvhai</a></li> <li>我在 cnblogs 的博客:<a href="http://www.cnblogs.com/OtisBlog">http://www.cnblogs.com/OtisBlog</a></li> <li>我在 oschina 的博客:<a href="http://my.oschina.net/oulvhai">http://my.oschina.net/oulvhai</a></li> </ul>

<h2 id="toc_5">关于 MWeb Lite</h2>

<p>MWeb Lite 的定位是 Markdown 编辑器和一些 MWeb 正式版的功能的体验。对于轻度使用 Markdown 的朋友来说, MWeb Lite 已足够了,MWeb 正式版的功能大部分用不到。MWeb Lite 的 Markdown 编辑器功能是跟 MWeb 正式版一样的。这个功能会随着 MWeb 这个产品的不断打磨而得到更好的体验。目前 MWeb Lite 对于正式版不同的地方有:</p>

<ol> <li>文档库 MWeb Lite 限定为 10 个文档</li> <li>发布服务只能增加 1 个。</li> </ol>

<h2 id="toc_6">其他</h2>

<p>这里说一下用 MWeb 生成的静态博客的好处:可直接打开所生成的 HTML 文档就能预览!这个是不同于 otcpress 等静态博客生成方式的。otcpress 等生成的 HTML 直接打开预览是没办法看到效果的,必须上传或者用 otcpress 来预览。MWeb 的静态博客功能没有 otcpress 这么强大,但是对于简单只想写一下博客的朋友来说,我觉得足够了。当然,下一版也会增强静态博客功能的。</p>

<p>另外发布到 Wordpress.com、bloger、evernote 功能也是会有的,这几个要在 1.4 版发布后才会开始弄。</p>

php – WordPress REST API创建使用自定义表的自定义端点

php – WordPress REST API创建使用自定义表的自定义端点

是否可以创建连接到同一数据库但具有自定义表的自定义端点?如果有,怎么样?

例如 :

wp_TempTable(自定义表)

我想用自定义端点访问它…我搜索了多个论坛和网站但没有运气..

解决方法:

对的,这是可能的.这不会使用wordpress推荐的Controller模式,但可以完成工作,其中的工作是将传入的json转换为自定义表中的一行(此处称为restaurants).

function handle_post( WP_REST_Request $request ) {
    global $wpdb;
    $item = $request->get_json_params();

    $fields = array();
    $values = array();
    foreach($item as $key => $val) {
        array_push($fields, preg_replace("/[^A-Za-z0-9]/", '', $key));
        array_push($values, $wpdb->prepare('%s', $val));
    }
    $fields = implode(", ", $fields);
    $values = implode(", ", $values);
    $query = "INSERT INTO `restaurants` ($fields) VALUES ($values)";
    $list = $wpdb->get_results($query);

    return $list;
}


add_action( 'rest_api_init', function () {
  register_rest_route( 'restos/v1', '/post', array(
    'methods' => 'POST',
    'callback' => 'handle_post',
    'permission_callback' => function () {
      return current_user_can( 'edit_others_posts' );
    }
  ) );
} );

php – WordPress REST API慢响应时间

php – WordPress REST API慢响应时间

我对wordpress REST API的速度有疑问.我要做的是尽可能快地获取有关总共26k记录的报告数据,以便为用户提供流畅的用户体验.我遇到的问题是,当调用REST API时,似乎wordpress会加载核心,插件和主题.

我已经跑出了我所知道的优化代码的方法,是否有一些wordpress调整有人知道提高速度?对于使用REST API的人来说,这些结果是否正常?正如您所看到的,运行代码的时间不是问题,而是wordpress的开销.

概述:因此,从版本4.8开始,问题是wordpress的限制. wordpress旨在加载插件和主题以及每个REST API请求的所有核心.这是响应时间慢的原因.

解决方案:目前唯一的解决方案是对插件中的文件进行ajax调用,并仅加载部分wordpress核心.下面的代码是直接文件访问,同时仍然能够使用快速响应时间的wordpress功能.

//Tell wordpress to only load the basics
define('SHORtiniT',1);

//get path of wp-load.PHP and load it
require_once $_SERVER['DOCUMENT_ROOT'] . '/wp-load.PHP';

// register global database
global $wpdb;

// return data selected from DB to user

结果:响应时间低至100毫秒.这与1069ms到108ms之间存在巨大差异.

参考:
https://deliciousbrains.com/wordpress-rest-api-vs-custom-request-handlers/

最后说明:wordpress REST API非常新,功能非常强大,您应该在大多数情况下使用,其中响应时间不是问题.

php-WordPress REST API端点

php-WordPress REST API端点

我正在编写一个Angular WP主题,并且试图减少帖子页面上的HTTP请求数量.

在帖子页面上,我想列出所有不同的分类法,最新帖子,获取特色图片和其他一些信息.我可以使用REST API v2插件对单个请求进行全部处理,但这是很多请求.

我希望为主题创建一个端点,解析帖子,然后将其全部返回到一个请求中,但是我似乎无法弄清楚.

我当时正在考虑使用查询字符串来获取此子弹.这是我一直在测试的内容:

function app_get_post($data) {
    global $wp_query;

    return [
        'test' => $data,
        'vars' => $wp_query->query_vars
    ];
}

add_action( 'rest_api_init', function () {
    register_rest_route( 'app/v1', '/post', [
        'methods' => 'GET',
        'callback' => 'app_get_post',
    ] );
} );

这是产生的:

{
test: { },
vars: [ ]
}

我确实尝试使用query_vars钩子添加查询var,但是它也不起作用.

有什么建议么?我要这样做正确吗?

解决方法:

您应该传递参数

function app_get_post($data) {

    return [
        'test' => $data["postid"]        
    ];
}

add_action( 'rest_api_init', function () {
    register_rest_route( 'app/v1', '/post/(?P<postid>\d+)', [
        'methods' => 'GET',
        'callback' => 'app_get_post',
    ] );
} )

例如参考http://wiki.workassis.com/wordpress-create-rest-api/

我们今天的关于php – WordPress Rest API无法与Postman合作wordpress restful api的分享已经告一段落,感谢您的关注,如果您想了解更多关于MWeb 1.3.7 发布!增加发布到 Wordpress 等支持 MetaWeblog API 的服务,如:Wordpress 博客、新浪博客、cnblogs、oschina。、php – WordPress REST API创建使用自定义表的自定义端点、php – WordPress REST API慢响应时间、php-WordPress REST API端点的相关信息,请在本站查询。

本文标签: