Setting HTTP status header in WordPress using status_header

The status_header is a function in WordPress that is used to send a HTTP status header to a client or browser. The primary role of this function is to communicate the status of the HTTP response to the client. This is essential in providing feedback to the client on whether a request made to the server has been successful or has failed. The status header can indicate a range of outcomes including successful interactions, redirections, client errors, and server errors.

One of the potential uses of the status_header function is in the development of custom error pages. By using this function, developers can send specific HTTP status codes to the client, which can then be used to display the corresponding custom error page. This can enhance the user experience by providing more informative and user-friendly error messages.

Another application of the status_header function is in the area of search engine optimization (SEO). By sending the correct HTTP status codes, developers can guide search engine crawlers in indexing their websites. For instance, by sending a ‘200 OK’ status, developers can indicate to crawlers that a page is functioning correctly and should be indexed. Conversely, by sending a ‘404 Not Found’ status, developers can prevent crawlers from indexing broken or non-existent pages.

Parameters Accepted by the status_header Function

The status_header function in WordPress accepts two parameters, detailed as follows:

  • $code (int): This is a required parameter, which stands for the HTTP status code.
  • $description (string): This is an optional parameter with a default value of an empty string (”). It represents a user-defined description for the HTTP status. If not specified, the function will default to the outcome of the get_status_header_desc() for the provided code.

Return Value of the status_header Function

The status_header function in WordPress does not return any value.


How to Set a Custom HTTP Status Code

In this example, we use the status_header function to set a custom HTTP status code. This can be useful in cases where you need to provide a more specific status code to the client.

function set_custom_status_header() {
 status_header( 201 );
add_action( 'init', 'set_custom_status_header' );

How to Set a 404 Status Code

Here, the status_header function is used to set a 404 status code. This can be useful when you want to indicate that a requested resource could not be found on the server.

function set_404_status_header() {
 status_header( 404 );
add_action( 'init', 'set_404_status_header' );

How to Set a 500 Status Code

In this example, we use the status_header function to set a 500 status code. This can be used to indicate that there was an internal server error.

function set_500_status_header() {
 status_header( 500 );
add_action( 'init', 'set_500_status_header' );


The status_header function plays a key role in HTTP response handling. It is responsible for sending a raw HTTP header to a client, typically a browser, indicating the status of the request made by the client. This status can vary, indicating success, redirection, client error, or server error, amongst others. The function is integral to web development and server-side scripting, as it allows developers to control and manage the responses sent to users based on their requests, thereby facilitating a more dynamic and interactive web experience.

Related WordPress Functions