0

我正在使用以下代码发布到 wordpress

   <?php
            require("class-IXR.php");  
            $client = new IXR_Client('http://domain.com/xmlrpc.php');

            $USER = 'user';
            $PASS = 'pass';

            $content['title'] = 'Test title';
            $content['categories'] = array("games");
            $content['description'] = '<p>Lorem ipsum dolor sit amet</p>';
            $content['custom_fields'] = array( array('key' => 'my_custom_fied','value'=>'yes') );
            $content['mt_keywords'] = array('foo','bar');

            if (!$client->query('metaWeblog.newPost','', $USER,$PASS, $content, true))
            {
                die( 'Error while creating a new post' . $client->getErrorCode() ." : ". $client->getErrorMessage());  
            }
            $ID =  $client->getResponse();

            if($ID)
            {
                echo 'Post published with ID:#'.$ID;
            }

    ?>

我怎样才能避免发布重复的标题。例如,如果我已经有标题的帖子Test it。当我尝试发布另一个带有标题的帖子时,Test it它不应该发布。

Ps:我的博客里有1000个帖子。

4

2 回答 2

0
if (is_null(get_page_by_title( $content['title'], OBJECT, 'post'))) {

// Do your stuff in this case (no post with the same title)

}

else {

// Do not create post

}
于 2012-12-03T20:28:21.737 回答
0

如果您想使用 WordPress XML-RPC API 检查重复的 WordPress 帖子,您将需要使用wp.getPosts获取所有已发布的 WordPress 帖子的列表,然后遍历所有帖子以确保存在没有重复。

https://codex.wordpress.org/XML-RPC_WordPress_API/Posts中所示,您需要先检索所有博客文章的列表,然后遍历所有博客文章以确定是否已设置 post_title 或 post_name。

$result = $client->query('wp.getPosts','', $USER, $PASS)
if (!$result) {
    die( 'Error while getting posts' . $client->getErrorMessage());
}

$posts = $client->message->params[0];

$title_to_search_for = 'This is a duplicate title   ';

// loop through all of the $posts, see if the title is duped.
$title_to_search_for = trim(strtolower($title_to_search_for));

$is_duplicate = false;

foreach($posts as $post) {
    if (trim(strtolower($post->post_title) === $title_to_search_for)
        $is_duplicate = true;

    if (trim(strtolower($post->post_name) === $title_to_search_for)
        $is_duplicate = true;
}
于 2015-03-25T05:29:15.220 回答