Irene T.
Irene T.

Reputation: 1393

Adding custom php code when a new post is created in Wordpress post-new.php

I have a php code that create an html file, insert some data and upload it inside a folder. How can i add my custom php code inside post-new.php so when the post is published to do this...

Also i need to get the post future image path, post url and post title.

Thank you all!

MY code is:

$my_file = 'myindex.html';
$handle = fopen($my_file, 'w') or die('Cannot open file:  '.$my_file); //implicitly creates file

$stringData = "<!doctype html>\n";
fwrite($handle, $stringData);
$stringData = "<html>\n";
fwrite($handle, $stringData);
$stringData = "<head>\n";
fwrite($handle, $stringData);
$stringData = "<meta charset='utf-8'>\n";
fwrite($handle, $stringData);
$stringData = "<title>MyYiyle</title>\n";
fwrite($handle, $stringData);
$stringData = "<meta property='og:type' content='Article' />\n";
fwrite($handle, $stringData);
$stringData = "<meta property='og:image' content='' />\n";
fwrite($handle, $stringData);
$stringData = "<meta property='og:image:width' content='640' />\n";
fwrite($handle, $stringData);
$stringData = "<meta property='og:image:height' content='360' />\n";
fwrite($handle, $stringData);
$stringData = "<meta name='image' content='' /> \n";
fwrite($handle, $stringData);
$stringData = "</head>\n";
fwrite($handle, $stringData);
$stringData = "<body>\n";
fwrite($handle, $stringData);
$stringData = "</body>\n";
fwrite($handle, $stringData);
$stringData = "</html>\n";
fwrite($handle, $stringData);

if (fclose($handle)){


// FTP access parameters
$host = 'xxx';
$usr = 'xxx';
$pwd = 'xxx';

// file to move:
$local_file = './' . $my_file;
$ftp_path = '/newposts/' . $my_file;

// connect to FTP server (port 21)
$conn_id = ftp_connect($host, 21) or die ("Cannot connect to host");

// send access parameters
ftp_login($conn_id, $usr, $pwd) or die("Cannot login");

// turn on passive mode transfers (some servers need this)
//ftp_pasv ($conn_id, true);

// perform file upload
$upload = ftp_put($conn_id, $ftp_path, $local_file, FTP_ASCII);

// check upload status:
print (!$upload) ? 'Cannot upload' : 'Upload complete';
print "\n";

/*
** Chmod the file (just as example)
*/

// If you are using PHP4 then you need to use this code:
// (because the "ftp_chmod" command is just available in PHP5+)

/*
if (!function_exists('ftp_chmod')) {
   function ftp_chmod($ftp_stream, $mode, $filename){
        return ftp_site($ftp_stream, sprintf('CHMOD %o %s', $mode, $filename));
   }
}
 */

// try to chmod the new file to 666 (writeable)
/*
if (ftp_chmod($conn_id, 777, $ftp_path) !== false) {
    print $ftp_path . " chmoded successfully to 666\n";
} else {
    print "could not chmod $file\n";
}
 */
// close the FTP stream
ftp_close($conn_id);


}

Upvotes: 1

Views: 302

Answers (1)

stephenspann
stephenspann

Reputation: 1843

Check out Wordpress's Action hooks, and include them in your theme:

http://codex.wordpress.org/Plugin_API/Action_Reference

'publish_page', 'publish_post' or something similar is probably what you need.

'save_post' occurs when a post is added, and includes the post object (url/slug, title, etc)

Upvotes: 3

Related Questions