GithubHelp home page GithubHelp logo

irontony / wordpress_postcontroller Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bellthomas/wordpress_postcontroller

0.0 2.0 0.0 300 KB

A PHP Class which enables you to create/manage/update Wordpress posts and pages.

Home Page: http://hbt.io

PHP 100.00%

wordpress_postcontroller's Introduction

Wordpress PostController

This is a PHP Class which enables you to create/manage/update Wordpress posts and pages.

This require Wordpress 2.9+ to run.

Usage

Include the class.postcontroller.php file in your Wordpress plugin/theme.

You now have access to the class and its functions. Instantiate the class.

$Poster = new PostController;

This class has two major functions; Creating and Updating posts. We'll start with creating.

See index.php for working examples.

Post Creation

The minimum requisite for creating a post is having the title set. You can do this by using the following code;

$Poster->set_title( "New Post" ); 

After this has been set, simply run the create method.

$Poster->create();

Note: The method will check if there is another post with the same name (just to ensure that it isn't making duplicates). Hence a unique title is required.

There are many other attributes you can set. To do this, you simply run their respective method before calling the create method.

 

Post Updating

Search

Before we can update a post, we need to find it. To do this, we use the search method.

$Poster->search( ' SEARCH_BY ' , ' DATA ' );

This method accepts 2 parameters, the attribute to search by and the data to search for.

You can search by title;

$Poster->search( 'title' , ' DATA ' );

You can search by ID;

$Poster->search( 'id' , ' DATA ' );

And you can search by slug;

$Poster->search( 'slug' , ' DATA ' );

The data parameter will accept either a string (if searching by title or slug) or an integer (if searching by title).

If a post or page cannot be found with the specified parameters, an error will be added to the $erros array. You can call and display this with the following code.

$error = $Poster->get_var(errors);
$Poster->PrettyPrint($error);

 

Update

Once a post has been found, you can assign it new attributes.

Once the attributes have been set, simply call the update method.

$Poster->update();

For example, if you wish to change the title of post 1 (ID = 1), you would use the following code.

$Poster->search( 'id' , 1 );
$Poster->set_title( "New Title" ); 
$Poster->update();

All the attributes can be updated this way.

 

Attributes

Title

We have already seen this method. It sets the post's title. No HTML is allowed here, and is stripped out.

$Poster->set_title( "New Post" ); 

Type

This method sets the post type of the page. Input the slug of the post type, eg. 'post' and 'page'. Custom post types are supported.

$Poster->set_type( "page" ); 

Content

This method sets the post's content. HTML is allowed.

$Poster->set_content( "<h1>This is my awesome new post!</h1>" ); 

Author

This sets the post's author. Simply specify the author ID of the new author. This must be an integer.

$Poster->set_author_id( 12 ); 

Slug / 'Name'

This is the custom url path of the post (if enabled). Take care with this, as if the slug is already in use, it may cause some errors. I have included validation to try and avoid this at all costs though. No special characters or html allowed.

$Poster->set_post_slug( "new_slug" ); 

Categories

This is an integer or array of integers. This function is non destructive, meaning it will preserve any categories already set (see 'Multiple Function Example'). The integers correspond to Category ID's, which will be unique to each Wordpress site. NB Category with ID 1 is created automatically and can't be deleted.

$Poster->add_category( array( 1 , 2 ) );    // Adds post to both categories 1 and 2.
$Poster->add_category( 1 );    // Adds post to category 1.
// Multiple Function Example
$Poster->add_category( 1 );
$Poster->add_category( 2 );
// This adds the post to both category 1 and 2.

Template (Pages Only)

This method alows you to set your page's template (must be a page). If applied to a different post type it will be ignored, and an error will be added to the errors array. The format of the input will be 'php_template_name.php' and will be unique to each theme.

$Poster->set_page_template( "fullwidth_page.php" ); 

State

This method sets the post's state.

Available options; [ 'draft' | 'publish' | 'pending'| 'future' | 'private' | custom registered status ]

$Poster->set_post_state( "pending" ); 

 

Retrieving Variables

To retrieve defined variables you can use the get_vars method.

$Poster->get_var('title'); // Returns the title (if you have set it)
$Poster->get_var('type'); // Returns the post type (if you have set it)
$Poster->get_var('content'); // Returns the content (if you have set it)
$Poster->get_var('category'); // Returns the category as an array (if you have set it)
$Poster->get_var('template'); // Returns the template (if you have set it)
$Poster->get_var('slug'); // Returns the slug (if you have set it)
$Poster->get_var('auth_id'); // Returns the author id (if you have set it)
$Poster->get_var('status'); // Returns the post's status (if you have set it)

// AFTER YOU HAVE EITHER CREATED A POST OR SUCCESFULLY SEARCHED FOR ONE YOU CAN USE THESE

$Poster->get_var('current_post'); // Returns the a PHP Object of the post. This can be used to check if the search method was successful $Poster->get_var('current_post_id'); // Returns the selected post's ID (integer). $Poster->get_var('current_post_permalink'); // Returns the URL permalink of the selected post

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.