FAQ Working with WordPress

Topics

Administration Administration

Can my posts have URL instead of /index.php?p=76? Can my posts have URL instead of /index.php?p=76?

See:

Top ↑

How can I find out if I have mod_rewrite? How can I find out if I have mod_rewrite?

To get information about your server, you can use the phpinfo() function:

1. Paste this into text editor

<?php phpinfo(); ?>

2. Save as info.php Upload to server. Visit in your browser (www.example.com/info.php)

The info.php file returns a page outlining the details of your PHP installation. You can see if mod_rewrite is loaded. Under the apache header, look in the Loaded Modules section and see if mod_rewiite is listed.

Top ↑

How do I change file and folder permissions? How do I change file and folder permissions?

See:

Top ↑

How long is the release cycle of WordPress? How long is the release cycle of WordPress?

A major release of WordPress happens every 6 months or so. Suggest and vote on ideas for future releases at the WordPress Extend Ideas site.

Also refer WordPress Versions for the chronologically listed versions of WordPress along with the Change Log information on new features and improvements in each version. There are the future releases and links to their respective milestones in the bug tracker.

Top ↑

See:

Top ↑

What are Roles for and what permissions do different Roles have? What are Roles for and what permissions do different Roles have?

See:

Top ↑

Does the 644 permissions on wp-config.php compromise the username and password to all other users on my shared server? Does the 644 permissions on wp-config.php compromise the username and password to all other users on my shared server?

This is a limitation of the way PHP is set up on your server. If you previously used Movable Type, Perl was probably set up with suexec so Movable Type executed as your user. In this case, PHP is running as the web server user, which is why it has to be at least 444. There is phpsuexec but it seems many hosts don’t use it.

However this is often not an issue on modern shared hosts because even though the file is “World” readable each account is set up with a “jailshell” which keeps people locked in their home directory, and PHP can be easily modified with an open_basedir restriction to keep people from writing PHP scripts to read your files. If you are really concerned, you should contact your host to see what measures they are taking.

Top ↑

How do I redirect users back to my blog’s main page after they login? How do I redirect users back to my blog’s main page after they login?

By default, WordPress reroutes a registered user to the Administration Screens after they log into the blog. To change the page, there are WordPress Plugins that can handle the redirect, or you can set the Theme function to handle it. See Function_Reference/wp_login_url.

Top ↑

How do I change permissions for my files so I can edit them using the Theme Editor? How do I change permissions for my files so I can edit them using the Theme Editor?

See:

Top ↑

How do I prevent my images from being hot-linked by another website? How do I prevent my images from being hot-linked by another website?

You can use your .htaccess file to protect images from being hot linked, or, in other words, being linked-to from other websites. This can be a drain on your bandwidth, because if someone links directly to the image on your site, then you lose the bandwidth.

Top ↑

How do I backup and restore my WordPress database using phpMyadmin? How do I backup and restore my WordPress database using phpMyadmin?

See:

Top ↑

How do I prevent comment flooding? How do I prevent comment flooding?

Comment flooding is when a lot of comments (probably spam) are posted to your website in a very short duration of time. This is only one aspect of the broader problem of comment spam in general, but it can quickly overwhelm a moderator’s ability to manually delete the offending comments.

WordPress manages the worst floods automatically by default. Any commenters from the same IP or e-mail address (other than registered users with manage_options capabilities) that post within 15 seconds of their last comment gets their comment discarded. The time setting can be changed by a number of plugins that extend this functionality. You might also consider one of the many broader spam blocking plugins, such as Akismet, or even turning your comment system over to Disqus.

You could also just change the time setting by inserting the following filter into functions.php of your current theme. Or you may create and install a very basic plugin and insert the following code:

function dam_the_flood( $dam_it, $time_last, $time_new ) {
	if ( ($time_new - $time_last) < 300 ) // time interval is 300
		return true;                  // seconds
	return false;
}
add_filter('comment_flood_filter', 'dam_the_flood', 10, 3);

Creating plugins can be very easy, the above code actually has most of the work done for you.

Top ↑

Why can’t I delete the uncategorized Category? Why can’t I delete the uncategorized Category?

Deleting a category does not delete the posts in that category. Instead, posts that were only assigned to the deleted category are set to the uncategorized category. Also, all Pages are assigned the uncategorized Category.

The uncategorized category cannot be deleted, however you can specify your default categories for posts on the SettingsWriting screen of the Administration Screens.

Top ↑

Why is there no Page Template option when writing or editing a Page? Why is there no Page Template option when writing or editing a Page?

If there is no Page Template option when writing or editing a Page it may because there is no template file with the proper structure. For the Page Template box to be available to assign to a Page there must be a least one template file in your theme that has a structure at the beginning of the template file that looks like this:

<?php
/*
Template Name: My Custom Page
*/
?>

Create a new PHP file with any name under the theme directory and put above codes into the file. You will see the Page Template box appears that includes “My Custom Page” option in the Page Edit Screen. For more detail about Custom Page Template, refer Page Templates.

Top ↑

How can I have a static front page and posts display on a page as Web site top page? How can I have a static front page and posts display on a page as Web site top page?

See:

This is the example Page Template if you want to display one latest post, instead of the Page content, on your static front page.

<?php
/*
Template Name: MyFront
*/
get_header(); ?>

	<div id="primary" class="content-area">
		<main id="main" class="site-main" role="main">

		<?php
		$args = array('posts_per_page' => 1, 'cat' => 1);
		$the_query = new WP_Query( $args );

		// The Loop
		while ( $the_query->have_posts() ) : $the_query->the_post();

				get_template_part( 'content', get_post_format() );

		// End the loop.
		endwhile;
		?>		

		</main><!-- .site-main -->
	</div><!-- .content-area -->

<?php get_footer(); ?>

See also:

Top ↑

How do I determine a Post, Page, Category, Tag, or User ID? How do I determine a Post, Page, Category, Tag, or User ID?

Sometimes it is necessary to know the ID of a particular Post, Page, Category, Tag, or User. To determine that ID, use one of these method:

  • Look in your browser status bar for the ID:
    1. Visit the related list table screen in your Administration Screen. For instance in the case of Posts visit Posts->All Posts, for Pages visit Pages->All Pages, and for Categories visit Posts->Categories.
    2. Now hover your mouse over the ‘item’ you need the ID. In the case of Pages, hover over that particular Page’s title in the Title column and for Categories hover over the Categories Name in the Name column.
    3. Look at the status bar (at the bottom of your browser) and the you will find at the end of the line something like “post=123” or “tag_ID=67”. In these cases, 123 is the Page ID, and 67 is the Category ID.
  • Install a plugin:
    1. Install and activate Reveal IDs for WP Admin or others.
    2. Find the ID displayed with each item.

Top ↑

Configuration Configuration

Top ↑

How can I change how the date and / or time is displayed? How can I change how the date and / or time is displayed?

See:

Top ↑

How can I control comments people make? How can I control comments people make?

See:

Top ↑

What do the Discussion Options mean? What do the Discussion Options mean?

See:

Top ↑

How do I install plugins? How do I install plugins?

See:

Top ↑

How can I change what appears between Categories when I post in more than one Category? How can I change what appears between Categories when I post in more than one Category?

In Twenty Fifteen theme, the post’s multiple categories are displayed with commas between them. To configure the way the categories display,
1. Create a Child Themes of Twenty Fifteen theme.
2. Copy twentyfifteen_entry_meta() function from parent’s inc/template-tags.php to child theme’s functions.php.

function twentyfifteen_entry_meta() {
	if ( is_sticky() && is_home() && ! is_paged() ) {
		:
	}
}

3. Replace ‘, ‘ in the argument of get_the_category_list call in twentyfifteen_entry_meta() function.

$categories_list = get_the_category_list( _x( ', ', 'Used between list items, there is a space after the comma.', 'twentyfifteen' ) );

If you change it by ‘ > ‘, ‘ &bull; ‘ or ‘ | ‘ then you will see an arrow, a bullet or “pipe” (|) between the categories.
4. Activate the child theme.

Top ↑

Why are all the comments being moderated? Why are all the comments being moderated?

Go to the Settings > Discussion screen and make sure that Comment must be manually approved is unchecked. With that option selected, all comments are sent to the moderation queue to await approval.
Make sure that Hold a comment in the queue if it contains x or more links. is not blank and contains a number higher than zero. If this value is blank or zero, all comments containing links will be moderated.
If the option mentioned above is unchecked, the link moderation value is higher than zero, and you still have this problem, then upgrade the comment spam plugins you have installed. If this continues to be a problem, deactivate the comment spam plugins one by one to determine the culprit and contact the plugin author for help.

Top ↑

How do I disable comments? How do I disable comments?

First, uncheck Allow people to post comments on new articles on the Settings > Discussion screen. This will only disable comments on future posts.
Next, to completely disable comments, you will have to edit each past post and uncheck Allow Comments from the Edit Post screen. Use Bulk Edit to disable multiple posts at once.

  1. In the Posts_Screen, check the checkbox in the Table’s title to select all Posts in a given table.
  2. From Bulk Actions box, select Edit and click Apply.
  3. In the Bulk Edit Screen, select Do not allow option from Comments box
  4. Click Update.

Posts Bulk Edit Screen

Alternatively, you could run below MySQL query from the command line on a shell account or using phpMyAdmin, or through a wp-cli `wp db query`:

UPDATE wp_posts SET comment_status = 'closed';

If your goal is to permanently remove comments, then follow the next steps. This is the example of Twenty Fifteen theme customization.
1. Create a Child Themes of Twenty Fifteen theme.
2. Copy twentyfifteen_entry_meta() function from parent’s inc/template-tags.php to child theme’s functions.php.
3. Comment out the if block that contains comments-link.

function twentyfifteen_entry_meta() {
	if ( is_sticky() && is_home() && ! is_paged() ) {
		:
	}

	// if ( ! is_single() && ! post_password_required() && ( comments_open() || get_comments_number() ) ) {
	// 	echo '';
	// 	/* translators: %s: post title */
	// 	comments_popup_link( sprintf( __( 'Leave a comment on %s', 'twentyfifteen' ), get_the_title() ) );
	// 	echo '';
	// }
}

It removes the number of comments or “Leave a comment” message from bottom of each post.
4. Newly create comments.php under the Child Theme’s directory without any contents. It removes the comment area of exsiting posts.
5. Activate the Child Teheme.

Top ↑

How do I disable trackbacks and pingbacks? How do I disable trackbacks and pingbacks?

First, uncheck Allow link notifications from other blogs (pingbacks and trackbacks) on new articles on the Settings > Discussion screen. This will only disable trackbacks and pingbacks on future posts.
Next, to completely disable trackbacks and pingbacks, you will have to edit each past post and uncheck Allow trackbacks and pingbacks on this page from the Edit Post screen. Use Bulk Edit to disable multiple posts at once. See also above image.

  1. In the Posts_Screen, check the checkbox in the Table’s title to select all Posts in a given table.
  2. From Bulk Actions box, select Edit and click Apply.
  3. In the Bulk Edit Screen, select Do not allow option from Pings box.
  4. Click Update.

Alternatively, you could run this MySQL query from the command line on a shell account or using phpMyAdmin, or through a wp-cli `wp db query`:

UPDATE wp_posts SET ping_status = 'closed';

Top ↑

How do I change the site admin name? How do I change the site admin name?

To change your Admin Name, in the Administration Screens, choose the Users->Your Profile menu. Make your changes there. However, you are not able to change the username from within the Administration screen. In order to do this you must directly edit the MySQL database, however this is not recommended as your username is not often seen by other users.

See:

Top ↑

How do I find the absolute path I need for uploading images? How do I find the absolute path I need for uploading images?

1. Open the below page from your Browser

http://(site URL)/wp-admin/options.php

2. Refer upload_url_path option value.
If the value is blank, then the directory wp-content/upload is the default destination to save.

Top ↑

Which files do I change to alter the way my blog looks? Which files do I change to alter the way my blog looks?

See:

Top ↑

How do I upload images? How do I upload images?

See:

Top ↑

Can I change the “Error establishing database connection” message to something more descriptive? Can I change the “Error establishing database connection” message to something more descriptive?

Just simply create a file to reside at wp-content/db-error.php, and in that file put the message you want displayed to users when WordPress determines the database connection is not available. That file will be used in place of “Error establishing database connection” message. You could even use the db-error.php to redirect users elsewhere. Here’s an example for db-error.php:

<?php
<pre>echo '<h2> This site is currently experiencing a problem with the database server.</h2>  Press your browser Reload button to try again!';
?>

Top ↑

Modifying Modifying

Top ↑

Can I change the Smilies? Can I change the Smilies?

See:

Top ↑

How do I edit files? How do I edit files?

See:

Top ↑

What is The Loop? What is The Loop?

See:

Top ↑

How can I change the URL-structure for my posts? How can I change the URL-structure for my posts?

See:

Top ↑

How can I change URL-structure for my posts on a Windows server? How can I change URL-structure for my posts on a Windows server?

See:

Top ↑

How do I use WordPress Template Tags to change what is displayed on the blog? How do I use WordPress Template Tags to change what is displayed on the blog?

See:

Top ↑

Put this inside the section of your Theme’s template header.php file:

<base target="_blank" />

See:

Top ↑

How can I add an image to my RSS feed? How can I add an image to my RSS feed?

See:

Top ↑

If I turn off comments, it says “Comments Off” on the weblog. so how do I remove that? If I turn off comments, it says “Comments Off” on the weblog. so how do I remove that?

Depending on your theme, some other message of similar intent may be displayed. The specifics of how to remove this message is theme dependent. You should be able to find the offending text in your theme’s comments.php file. If it’s displayed by a PHP function, comment out the function with slash-asterisks ‘/*‘ and ‘*/(without quotes) on either end of the function:

<?php /* _e( 'Comments are closed.' , 'twentytwelve' ); */ ?>

If it’s simply HTML, comment out the enclosing HTML tags by adding ‘<!-- ‘ and ‘ -->(not including the quotes, note the space after the first and before the last comment symbols):

<!-- <p class="nocomments">Comments are closed.</p> -->

If you decide later to restore the message, you can simply remove the comment symbols.

Top ↑

How do I change what is shown when I password protect a post? How do I change what is shown when I password protect a post?

Hook the filters ‘the_title‘ and ‘the_password_form‘. Your filter function is passed exactly what the filter names imply. Use the str_replace() function to search out the offending text and replace it with your preference (or nothing).
Note the ‘the_title‘ filter fires for every single title, not just password protected posts, so you need to use the existence of the post_password property to know whether to apply the string replace function or not.
Some themes may also have additional locations where content needs to be canged. Next example works with Twenty Fifteen Theme.

add_filter('the_title', 'replace_protected', 10, 2);
function replace_protected( $title, $id ) {
	$post = get_post( $id );
	if ( ! empty( $post->post_password ) ) {
		$title = str_replace('Protected:', 'Hidden:', $title);
	}
	return $title;
}
add_filter('the_password_form', 'replace_message');
function replace_message( $form ) {
	return str_replace('This post is password protected. To view it please enter your password below:',
		'Enter you password below to see the surprise:', $form);
}

Top ↑

How can I allow certain HTML tags in my comments? How can I allow certain HTML tags in my comments?

Use a custom filter in your themes functions.php or plugin:

add_filter('preprocess_comment','fa_allow_tags_in_comments');
 
function fa_allow_tags_in_comments($data) {
	global $allowedtags; 
	$allowedtags['span'] = array('style'=>array());
	$allowedtags['p'] = array();   
	return $data;
}

Top ↑

How can I add advanced search ability to WordPress? How can I add advanced search ability to WordPress?

See:

Top ↑

Posts Posts

Top ↑

How do I upload an image and display it in a post? How do I upload an image and display it in a post?

See:

Top ↑

What is pingback? What is pingback?

See:

Top ↑

What is trackback? What is trackback?

See:

Top ↑

Where is the permalink to my post? Where is the permalink to my post?

See:

Top ↑

Can I use desktop blogging software? Can I use desktop blogging software?

See:

Top ↑

Can I blog by email? Can I blog by email?

See:

Top ↑

Spam, Spammers, Comments Spam, Spammers, Comments

Top ↑

What can I do to stop comment spam? What can I do to stop comment spam?

See:

Top ↑

More Information on Comment Spam More Information on Comment Spam

See:

Top ↑

Importing and Exporting Importing and Exporting

Top ↑

How do I Import a WordPress WXR file when it says it is too large to import? How do I Import a WordPress WXR file when it says it is too large to import?

If a WordPress WXR file, an XML file exported from WordPress, is too large to import, there are several things you might try to overcome that limit.

  • Edit php.ini‘. Some hosts may not allow this settings.
memory_limit = 300M
post_max_size = 200M
upload_max_filesize = 100M
max_execution_time = 600
  • memory_limit: Maximum amount of memory in bytes that a PHP script is allowed to allocate.
  • post_max_size: Maximum size of post data allowed.
  • upload_max_filesize: Maximum size of an uploaded file.
  • max_execution_time: Maximum time in seconds a PHP script is allowed to run before it is terminated by the parser.

Note: memory_limit should be larger than post_max_size, and post_max_size must be larger than upload_max_filesize.

  • Edit .htaccess. Some hosts may not allow this settings.
php_value memory_limit 300M
php_value post_max_size 200M
php_value upload_max_filesize 100M
  • Edit wp-config.php
define('WP_MEMORY_LIMIT', '64MB');

See also Increasing memory allocated to PHP.

    • In multisite environment, configure following settings
      1. From Network Admin dashboard, select Settings > Network Settings and increase the values of ‘Site upload space’ and ‘Max upload file size’.
      2. From Network Admin dashboard, select Sites > All Sites and click Edit menu under your site. Click Settings tab and incease the value of ‘Site Upload Space Quota’ or leave it blank for network default
    • GZip the file. On some hosting services, a gzipped file can be automatically expanded in the background, without WordPress ever knowing the difference. This can allow you to make the file small enough to be fit into the maximum upload size constraints.
      1. On Windows, use 7Zip to create a gz archive out of the WXR file.
      2. On Linux, use the gzip command line.
      3. Make sure that the resulting file has the file extension of “.gz” before uploading it, as this is often necessary.
      4. This is not guaranteed to work, as it highly depends on the hosting configuration. If this fails, then try another method instead.
    • Break the WordPress WXR file into smaller pieces by separating the data between posts and pasting the header/footer into each file.

1. Always have the header

<rss version="2.0"
	xmlns:excerpt="http://wordpress.org/export/1.2/excerpt/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:wp="http://wordpress.org/export/1.2/"
>
<channel>
including all info like category, tags, etc to just before the first  

2. Always have the footer

</channel>
</rss>

3. In between, add the posts start with end with and check to see whether the XML file you’re creating is less than or equal to 2MB. You’ll get the hang of it.

4. As always, before importing the new XML’s, backup the database of the blog you are importing the XML files to and might as well export XML file of that blog as well for good measure.

See:

WXR Splitter Utilities:

Top ↑

See:

Back to FAQ