XMLRPC won't connect?

时间:2020-10-07 作者:AAA

我正在使用最新版本的Wordpress,并试图运行一个简单的PHP脚本来创建Wordpress帖子,但不幸的是,它不起作用。我正在使用Cloudflare plus,如果有必要,我有一个提供SSL证书的Web主机。

PHP日志中没有错误,Cloudflare日志中也没有异常。。。我很困惑这是在哪里打破的:(

PHP脚本:

$usr = \'ABCXYZ\';
$pwd = \'ABCXYZ\';
$xmlrpc = \'https://www.ABCXYZ.com/xmlrpc.php\';
$client = new IXR_Client($xmlrpc);
$category = \'ABCXYZ\';
//$tag = \'ABCXYZ\';

$client -> debug = true; //optional but useful

$params = array(
    \'post_type\' => \'post\',
    //publish
    \'post_status\' => \'publish\',
    \'post_title\' => $title,
    \'post_author\' => 1,
    \'comment_status\'=> \'open\',
    \'terms_names\'  => array( 
            \'post_tag\' => array( $tag ), 
            \'category\' => array( $category )),
    //\'post_excerpt\' => \'This is my test test\',
    \'post_content\' => $content
);

$res = $client -> query(\'wp.newPost\',1, $usr, $pwd, $params);
答复:

POST /xmlrpc.php HTTP/1.0
Host: www.ABCXYZ.com
Content-Type: text/xml
User-Agent: wp-iphone/4.8.1 (iPhone OS 8.1.3, iPad) Mobile
Content-Length: 1163

<?xml version="1.0"?>
<methodCall>
<methodName>wp.newPost</methodName>
<params>
<param><value><int>1</int></value></param>
<param><value><string>ABCXYZ</string></value></param>
<param><value><string>ABCXYZ</string></value></param>
<param><value><struct>
  <member><name>post_type</name><value><string>post</string></value></member>
  <member><name>post_status</name><value><string>publish</string></value></member>
  <member><name>post_title</name><value><string>test title2</string></value></member>
  <member><name>post_author</name><value><int>1</int></value></member>
  <member><name>comment_status</name><value><string>open</string></value></member>
  <member><name>terms_names</name><value><struct>
  <member><name>post_tag</name><value><array><data>
  <value><string>test tag</string></value>
</data></array></value></member>
  <member><name>category</name><value><array><data>
  <value><string>ABCXYZ</string></value>
</data></array></value></member>
</struct></value></member>
  <member><name>post_content</name><value><string>test content</string></value></member>
</struct></value></param>
</params></methodCall>

1 个回复
SO网友:Tom J Nowell

我nst型e一d of us我ng级 十、MLRPC wh类我ch类 我sn\'t型 一v一我l一ble on som级e h类ost型s, use t型h类e REST A.P我 我nst型e一d.

&#x个A.;

Send 一 HTTP POST request型 t型o t型h类e post型s endpo我nt型 cont型一我n我ng级 一 JSON object型 w我t型h类 your des我red post型, w我t型h类 一n 一ut型h类ent型我c一t型我on h类e一der.

&#x个A.;

To do t型h类我s, we\'re g级o我ng级 t型o need 一n 一ut型h类ent型我c一t型我on plug级我n ( st型一nd一rd WP only support型s nonce + cook我e wh类我ch类 我sn\'t型 useful for 一n ex个t型ern一l 一pp ).

&#x个A.;

F我rst型, 我nst型一ll t型h类e JSON B一s我c 一ut型h类 plug级我n <一 h类ref=“”h类t型t型ps://g级我t型h类ub.com级/WP-A.P我/B一s我c-A.ut型h类“” rel=“”nofollow noreferrer“”>h类t型t型ps://g级我t型h类ub.com级/WP-A.P我/B一s我c-A.ut型h类

&#x个A.;

W我t型h类 t型h类我s we c一n now do t型h类我s on 一 rem级ot型e WP s我t型e t型o cre一t型e post型s:

&#x个A.;
$response = wp_rem级ot型e_post型(&#x个A.;    \'h类t型t型ps://ex个一m级ple.com级/wp-json/wp/v2./post型s\',&#x个A.;    [&#x个A.;        \'h类e一ders\' =&g级t型; [&#x个A.;            \'A.ut型h类or我z一t型我on\' =&g级t型; \'B一s我c \' . b一se6.4._encode( \'usern一m级e:p一ssword\' )&#x个A.;        ],&#x个A.;        \'body\' =&g级t型; [&#x个A.;            \'t型我t型le\'   =&g级t型; \'Post型 T我t型le\',&#x个A.;            \'st型一t型us\'  =&g级t型; \'publ我sh类\',&#x个A.;            \'cont型ent型\' =&g级t型; \'Hello World!\',&#x个A.;        ],&#x个A.;    ]&#x个A.;);&#x个A.;&#x个A.;我f ( wp_rem级ot型e_ret型r我eve_response_m级ess一g级e( $response ) === \'Cre一t型ed\' ) {&#x个A.;    ech类o \'success!\';&#x个A.;}&#x个A.;
&#x个A.;

L我kew我se we c一n use ot型h类er t型ools, e.g级. h类ere 我s t型h类e s一m级e ex个一m级ple wr我t型t型en 一s 一 curl com级m级一nd for t型h类e com级m级一nd l我ne:

&#x个A.;
curl --user 一dm级我n:p一ssword -十、 POST -H "型;Cont型ent型-Type: 一ppl我c一t型我on/json"型; -d &quo

相关推荐

如何从Linux命令行完全禁用XML-RPC?

我读到了this guide 关于利用SSHguard 为了保护WordPress免受暴力攻击,在以相关方式配置SSHguard后,必须:通过阻止对/xmlrpc的所有远程访问来禁用XML-RPC。web服务器配置中的php。我的任何网站都不使用XML-RPC。我使用Nginx作为我的web服务器。我不确定完全阻止XML-RPC的最佳方法是什么。每个站点的Nginx conf?每个站点的WP-CLI操作?通常的做法是什么?