Wordpress

Wordpress

From TUMRAI [QuickNote]

Jump to: navigation, search


Contents

Hi

config

define('DISALLOW_FILE_EDIT', true);
define('SP_REQUEST_URL', ($_SERVER['HTTPS'] ? 'https://' : 'http://') . $_SERVER['HTTP_HOST']);
define('WP_SITEURL', SP_REQUEST_URL); 
define('WP_HOME', SP_REQUEST_URL);
define('WP_MEMORY_LIMIT', '512M'); 

/* Uncomment and change WP_MAX_MEMORY_LIMIT to increase the memory limit for admin pages. */
define('WP_MAX_MEMORY_LIMIT', '1024M'); 
/* Change WP_MEMORY_LIMIT to increase the memory limit for public pages. */
define('WP_MEMORY_LIMIT', '256M');

/* Uncomment and change WP_MAX_MEMORY_LIMIT to increase the memory limit for admin pages. */
//define('WP_MAX_MEMORY_LIMIT', '256M');
define( 'AUTOMATIC_UPDATER_DISABLED', true );

Redirect

&redirect_to=http...

nopaging

	'nopaging' => true, 


user area

<?php if(current_user_can('administrator')) { ?>
    -- Stuff here for administrators --
<?php } ?>

Get post object

<?php 
$thispost = get_post();
print_r($thispost);
?> 


WP_Post Object
(
    [ID] =>
    [post_author] =>
    [post_date] => 
    [post_date_gmt] => 
    [post_content] => 
    [post_title] => 
    [post_excerpt] => 
    [post_status] =>
    [comment_status] =>
    [ping_status] => 
    [post_password] => 
    [post_name] =>
    [to_ping] => 
    [pinged] => 
    [post_modified] => 
    [post_modified_gmt] =>
    [post_content_filtered] => 
    [post_parent] => 
    [guid] => 
    [menu_order] =>
    [post_type] =>
    [post_mime_type] => 
    [comment_count] =>
    [filter] =>
)
echo  $thispost->post_title;

get custom field

<?php 
$custom = get_post_custom();
var_dump($custom);
?>
<?php print_r($custom[youtube_id]);?>
<?php the_field(youtube_id); // acf ?>

Login/Logout

<?php if ( is_user_logged_in() ) { ?>
    <a href="<?php echo wp_logout_url(); ?>"> LOGOUT</a>
<?php } else { ?>
  
   <a href="http://10.176.5.99/wp-admin">LOGIN</a>
<?php } ?>

Remove WPMUDEV Easily get updates

define('WPMUDEV_HIDE_BRANDING', true);

or plugin

Remove WPMU Dashboard Install Nag

Remove Check Auth

remove_action( 'admin_enqueue_scripts', 'wp_auth_check_load' );
remove_filter( 'heartbeat_send',        'wp_auth_check' );
remove_filter( 'heartbeat_nopriv_send', 'wp_auth_check' );

wp mail

<?php
date_default_timezone_set('Asia/Bangkok');
//$date = date("H:i:s");
$datefull = date("l jS \of F Y h:i:s A");
//echo $date;
wp_mail('[email protected]', 'mail demo '.$date, $datefull);
?>

wp editor

<?php

$content = '';
$editor_id = 'mycustomeditor';

wp_editor( $content, $editor_id );

?>

http://codex.wordpress.org/Function_Reference/wp_editor

Install Wp without FTP

define('FS_METHOD','direct');

FAV

wpfav

Template Tag Parameters

<?php bloginfo(); ?>

name <?php bloginfo('name'); ?>
description <?php bloginfo('description'); ?>
url <?php bloginfo('url'); ?>
admin_email <?php bloginfo('admin_email'); ?>
version <?php bloginfo('version'); ?>
admin_email = [email protected]



More

More

wordpress plugin

new on 2.9

post thumbnail

functions.php on theme folder

<?php if ( function_exists( 'add_theme_support' ) ) { // Added in 2.9
	add_theme_support( 'post-thumbnails' );
	set_post_thumbnail_size( 100,100, true ); // Normal post thumbnails
	add_image_size( 'single-post-thumbnail', 400, 9999 ); // Permalink thumbnail size
}
?>

crop

set_post_thumbnail_size( 50, 50, true ); // Normal post thumbnails 
add_image_size( 'single-post-thumbnail', 400, 9999,true ); // Permalink thumbnail size

on post or page template

the_post_thumbnail();                  // without parameter -> Thumbnail

the_post_thumbnail('thumbnail');       // Thumbnail
the_post_thumbnail('medium');          // Medium resolution
the_post_thumbnail('large');           // Large resolution
the_post_thumbnail( array(100,100) );  // Othe resolutions

on template

<?php 
//This must be in one loop
if(has_post_thumbnail()) {
	the_post_thumbnail();
} else {
	echo '<img src="'.get_bloginfo("template_url").'/images/img-default.png" />';
}
?>

custom html output on functions.php

add_filter( 'post_thumbnail_html', 'my_post_image_html', 10, 3 );
function my_post_image_html( $html, $post_id, $post_image_id ) {
	$html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_post_field( 'post_title', $post_id ) ) . '">' . $html . '</a>';
	return $html;
}

if no photo

<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
<?php // This must be in one loop 
if(has_post_thumbnail()) { ?>
<div id="slide" style="height:451px;">
 <a href="<?php $values = get_post_custom_values("linkto"); echo $values[0]; ?>"><?php the_post_thumbnail('headpic'); ?></a>
</div>
 
<?php } else { ?>
<div id="slide" style="height:0px;">
NO
</div>
<?php } ?>
<?php endwhile; // end of the loop. ?>

get thumbnail path

<?php
//Get the Thumbnail URL
$src = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), array( 400,405 ), false, '' );
echo $src[0];
?>


http://wpengineer.com/the-ultimative-guide-for-the_post_thumbnail-in-wordpress-2-9/

Call Post

<?php query_posts('p=3&showposts=1'); ?> 
<?php while (have_posts()) : the_post(); ?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to
<?php the_title_attribute(); ?>">
<?php the_content(); ?>
</a>
<?php endwhile; ?>

include

<?php include (TEMPLATEPATH . "/file.php"); ?>

Brake Loop Query

<?php wp_reset_query(); ?>

Random post thumbnail

<?php query_posts('cat=6&showposts=1&orderby=rand'); ?> 
<?php while (have_posts()) : the_post(); ?>
<? the_post_thumbnail('headerimg'); ?>

<?php endwhile; ?>
<?php wp_reset_query(); ?>

Call Page

<?php query_posts('pagename=home-text&showposts=1'); ?> 
<?php while (have_posts()) : the_post(); ?>
<a href="<?php the_permalink() ?>" rel="bookmark" 
title="Permanent Link to <?php the_title_attribute(); ?>">
<?php the_content(); ?>
</a>
<?php endwhile; ?>


Loop

<!-- Start the Loop. -->
 <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

 <!-- The following tests if the current post is in category 3. -->
 <!-- If it is, the div box is given the CSS class "post-cat-three". -->
 <!-- Otherwise, the div box will be given the CSS class "post". -->
 <?php if ( in_category('3') ) { ?>
           <div class="post-cat-three">
 <?php } else { ?>
           <div class="post">
 <?php } ?>

 <!-- Display the Title as a link to the Post's permalink. -->
 <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>

 <!-- Display the Time. -->
 <small><?php the_time('F jS, Y'); ?></small>

 <!-- Display the Post's Content in a div box. -->
 <div class="entry">
   <?php the_content(); ?>
 </div>

 <!-- Display a comma separated list of the Post's Categories. -->
 <p class="postmetadata">Posted in <?php the_category(', '); ?></p>
 </div> <!-- closes the first div box -->

 <!-- Stop The Loop (but note the "else:" - see next line). -->
 <?php endwhile; else: ?>

 <!-- The very first "if" tested to see if there were any Posts to -->
 <!-- display.  This "else" part tells what do if there weren't any. -->
 <p>Sorry, no posts matched your criteria.</p>

 <!-- REALLY stop The Loop. -->
 <?php endif; ?>


[show details]

tag cloud

<?php wp_tag_cloud('smallest=15&largest=40&number=50&orderby=count'); ?>

Template Hierarchy

Tips

Search

<?php get_search_form(); ?>

Add Twenty Eleven Search form to Your themes

Add Twenty Eleven Search form to Your themes



WordPress Search Form without Search Button

WordPress Search Form without Search Button

Codex Links


Post & Page

Page List & Child

  • on page template แสดง subpage ออกมาเป็น bullet และยังแสดงเมื่อคลิ๊กเข้าใน subpage
<?php
  if($post->post_parent)
  $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
  else
  $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
  if ($children) { ?>
  <ul>
  <?php echo $children; ?>
  </ul>
  <?php } ?>
  • แสดง subpage ออกมาเป็น bullet แต่เมนู sub อื่นจะหายเมื่อคลิ๊กเข้าใน subpage
<?php
  $children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0');
  if ($children) { ?>
  <ul>
  <?php echo $children; ?>
  </ul>
  <?php } ?>
.current_page_item a {
	color: #f7931e;
}
.current_page_item li a {
	color: #999;
}

Post List

<ul><?php wp_get_archives('type=postbypost&limit=30'); ?></ul>

Post List on Drop Down Menu

<select name="archive-dropdown" onChange='document.location.href=this.options[this.selectedIndex].value;'> 
  <option value="">Select Post</option> 
 <?php wp_get_archives('type=postbypost&format=option&limit=35'); ?> </select>

Post list from some category

Use kwebble_archives_by_cat.php

<?php wp_get_archives('cat=1'); ?>
<?php wp_get_archives('cat=3&type=postbypost&limit=30'); ?>

Show the default monthly list of archives for category 1:

<?php wp_get_archives('cat=1'); ?>

The same list, but with posts from categories 1 and 3:

<?php wp_get_archives('cat=1,3'); ?>

Use posts from all categories except category 2:

<?php wp_get_archives('cat=-2'); ?>

Use posts from all categories except categories 2 and 8:

<?php wp_get_archives('cat=-2,-8'); ?>

Create a list of archives for category 1 as a dropdown box:

 <?php wp_get_archives('format=option&cat=1'); ?>

from marrine ky left menu post list

<?php  
	 if(is_category('3')){wp_get_archives('cat=3&type=postbypost&limit=30');} 
	 elseif (is_category('4')){wp_get_archives('cat=4&type=postbypost&limit=30');} 
	 elseif (is_category('5')){wp_get_archives('cat=5&type=postbypost&limit=30');} 
	 elseif (is_category('6')){wp_get_archives('cat=6&type=postbypost&limit=30');} 

 ?>

List Page

<?php
wp_list_pages('title_li=&child_of='.$post->ID.''); ?>
</ul></li>

List page on Horizontal

<div id='navigation'>
<ul class='navigation'>
<li<?php if (is_home()){echo ' class=\'current_page_item\'';}?>><a href='<?php bloginfo('url') ?>' title='Home'>Home</a></li>
<?php wp_list_pages('title_li='); ?>
</ul>
</div>


ul.navigation li {
display:inline;
}

ul.navigation li a {
color:#191919;
font-family:arial;
font-size:12px;
font-weight:bold;
letter-spacing:0;
padding:11px 30px 9px;
}
ul.navigation li a:hover {
background:#CC0000 none repeat scroll 0 0;
color:#F2F2F1;
text-decoration:none;
} 

<?php wp_list_cats(); ?>

all - Displays all of the Categories
sort_column - Sorts by Category ID
sort_order - Sorts in ascending order
list - Sets the Categories in an unordered list (<ul><li>)
optioncount - Does not display the count of posts within each Category
hide_empty - Based upon the first two parameters (optionall and all), does not display Categories without posts
use_desc_for_title - Uses the Category description as the link title
children - Shows the children (sub-Categories) of every Category listed

<?php wp_list_categories(); ?>

<?php wp_list_categories(); ?>
 <?php wp_list_categories('child_of=20'); ?>
 <?php wp_list_categories('include=20'); ?>

categories in dropdown menu

<?php wp_dropdown_categories('show_option_none=Select location&child_of=16'); ?>
<script type="text/javascript"><!--
    var dropdown = document.getElementById("cat");
    function onCatChange() {
		if ( dropdown.options[dropdown.selectedIndex].value > 0 ) {
			location.href = "<?php echo get_option('home');
?>/?cat="+dropdown.options[dropdown.selectedIndex].value;
		}
    }
    dropdown.onchange = onCatChange;
--></script>

display category name

<?php
$category = get_the_category(); 
echo $category[0]->cat_name;
?>

current category

<?php single_cat_title(''); ?>
<?php echo category_description(); ?>

current category

<?php
if (is_category( )) {
  $cat = get_query_var('cat');
  $yourcat = get_category ($cat);
  echo 'the slug is '. $yourcat->slug;
 }
?>

display category ID

<?php
$categoryid = get_the_category(); 
echo $categoryid[0]->cat_ID;
?>


All Category Name

<?php 
foreach((get_the_category()) as $category) { 
    echo $category->cat_name;  echo " "; 
} 
?>

display post on current category

<ul><?php wp_get_archives('cat='.$categoryid[0]->cat_ID.'&type=postbypost&limit=30'); ?></ul>
<?php
$categoryid = get_the_category(); 
$thisid= $categoryid[0]->cat_ID;

?>
<ul id="submenu"><?php wp_get_archives('cat='.$categoryid[0]->cat_ID.'&type=postbypost&limit=30&after=":"'); ?></ul>

display parent category name

<?php
$category = get_the_category();
$parent = get_cat_name($category[0]->category_parent);
if (!empty($parent)) {
echo ' ' . $parent;
} else {
echo ' ' . $category[0]->cat_name;
}
?>

Sidebar link

Sidebar

on Function.php

register_sidebar(array(
  'name' => 'RightSideBar',
  'id' => 'right-sidebar',
  'description' => 'Widgets in this area will be shown on the right-hand side.',
  'before_title' => '<p>',
  'after_title' => '</p>'
));

on template

<?php
 if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('right-sidebar') ) :
endif; ?>

Themes

LIMIT POST

Replace the_content(); with the_content_limit(200, "continue..."); or
Replace the_content(); with get_the_content_limit(200, "continue...");

Limits the displayed text length

Install this plugin

<?php
/*
Plugin Name: Limit Posts
Plugin URI: http://labitacora.net/comunBlog/limit-post.phps
Description: Limits the displayed text length on the index page entries and generates a link to a page to read the full content if its bigger than the selected maximum length. 
Usage: the_content_limit($max_charaters, $more_link)
Version: 1.1
Author: Alfonso Sanchez-Paus Diaz y Julian Simon de Castro
Author URI: http://labitacora.net/
License: GPL
Download URL: http://labitacora.net/comunBlog/limit-post.phps
Make: 
    In file index.php 
    replace the_content() 
    with the_content_limit(1000, "more")
*/

function the_content_limit($max_char, $more_link_text = '(more...)', $stripteaser = 0, $more_file = '') {
    $content = get_the_content($more_link_text, $stripteaser, $more_file);
    $content = apply_filters('the_content', $content);
    $content = str_replace(']]>', ']]>', $content);

   if (strlen($_GET['p']) > 0) {
      echo $content;
   }
   else if ((strlen($content)>$max_char) && ($espacio = strpos($content, " ", $max_char ))) {
        $content = substr($content, 0, $espacio);
        $content = $content;
        echo $content;
        echo "<a href='";
        the_permalink();
        echo "'>"."..."."</a>";
        echo "<br><br>";
        echo "<a href='";
        the_permalink();
        echo "'>".$more_link_text."</a></p>";
   }
   else {
      echo $content;
   }
}

?>

Code on theme

<?php the_content_limit(100,"Read more →");?>

or

<?php
if (is_single()) {
echo substr(get_the_content(),0,150)."... <a href=".get_permalink().">Read More →</a>";
} else {
the_content_limit(150,"Read More →");
}
?>

query posts from category

query_posts('cat=11,-7&showposts=5&orderby=rand');

From fm100 front page

<?php query_posts('category_name=knowledge frontpage;&showposts=4'); ?> 
<?php while (have_posts()) : the_post(); ?>
<ul class="thumbthumb">
<li class="thumbimg"><a href="<?php the_permalink(); ?>"><?php postimage('thumbnail'); ?><span class="thumbtitle">
<?php the_title(); ?>
</span>
</a></li></ul>
<?php endwhile; ?>

Cat ID

<?php
// retrieve one post with an ID of 2
//query_posts('page_id=2');
// retrieve  post from cat ID 3
query_posts('cat=3,-7&showposts=5&orderby=rand');
global $more;
// set $more to 0 in order to only get the first part of the post
$more = 0; 

// the Loop
while (have_posts()) : the_post(); 
  // the content of the post
  the_content('Read the full post »'); 
endwhile;
?>

Cat Name

<?php query_posts('category_name=jobs'); ?> 
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></il>
<?php endwhile; ?>

call some category and limit post

query_posts(array('category__and'=>array(1,3),'showposts'=>2,'orderby'=>title,'order'=>DESC));
query_posts(array('category__not_in' => array(1,3),'showposts'=>5));

cms

magic wind query_posts() many times, i must say wihtout query_posts() convert into CMS is just a toughest job or you have to do lot of coding hard coded, Hard coded means: html in dyanmic system. which is i dont like at all, owners use wordpress to do all thing dynamically not hard coded. so query_posts() is important a lot. now come on point, users dont have time to read my stupid talks :) so go ahead and see some hacks. 1. display particular page into side bar or any other place like home page ?? into a box

    <?php query_posts('page_id=1?); //retrieves page 1 only ?>

    <?php query_posts('pagename=about'); //retrieves the about page only ?>

    <?php query_posts('pagename=parent/child'); // retrieve the child page of a parent ?>

Example to display 3 pages into boxes on home page have done that on a recently develop CMS, it display 3 boxes on home page with some contents

PHP coding ----

cms 1st Box

    <?php
    query_posts('page_id=1?);
    ?>
    <div id="homebox">
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?><div class="post" id="post-<?php the_ID(); ?>">
    <h2><?php the_title(); ?></h2>
    <div class="entry">
    <?php the_content('<p class="serif">Read the rest of this page »</p>'); ?>

    <?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>

    </div>
    </div>
    <?php endwhile; endif; ?>
    <?php edit_post_link('Edit this entry.', '<p>', '</p>'); ?>
    </div>

cms 2nd Box

    <?php
    query_posts('page_id=2?);
    ?>
    <div id="homebox">
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

    <div class="post" id="post-<?php the_ID(); ?>">
    <h2><?php the_title(); ?></h2>
    <div class="entry">
    <?php the_content('<p class="serif">Read the rest of this page »</p>'); ?>

    <?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>

    </div>
    </div>
    <?php endwhile; endif; ?>
    <?php edit_post_link('Edit this entry.', '<p>', '</p>'); ?>
    </div>

cms 3rd Box

    <?php
    query_posts('page_id=3?);
    ?>
    <div id="homebox">
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

    <div class="post" id="post-<?php the_ID(); ?>">
    <h2><?php the_title(); ?></h2>
    <div class="entry">
    <?php the_content('<p class="serif">Read the rest of this page »</p>'); ?>

    <?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>

    </div>
    </div>
    <?php endwhile; endif; ?>
    <?php edit_post_link('Edit this entry.', '<p>', '</p>'); ?>
    </div>


Widget Area

Add widget area code to functions.php.

// Sidebars:
if ( function_exists('register_sidebar') ) {
register_sidebar(array(
'name'=>'Left Sidebar',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<div class="widget-title"><h3>',
'after_title' => '</h3></div>',
));
register_sidebar(array(
'name'=>'Right Sidebar',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<div class="widget-title"><h3>',
'after_title' => '</h3></div>',
));
register_sidebar(array(
'name'=>'New Widget Area',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<div class="widget-title"><h3>',
'after_title' => '</h3></div>',
));
} 

Call auto Widget

<?php 	if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>

or

<?php 	if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(2) ) : ?>

or

<?php 	if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(3) ) : ?>

permalink

  • (unix) create and set permission for .htaccess to 777
  • change permalink Custom Structure on admin setting to /%postname%/

CSS

calendar, imags on post & page,current


Comment

  • [wpcomment]

Comment

Static

<?php require_once('../wordpress/wp-config.php');?>
<?php wp_head(); ?>

Read more code

<?php query_posts('pagename=home-text'); ?> 
<?php while (have_posts()) : the_post(); ?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>">
<?php 
global $more;    // Declare global $more (before the loop).
$more = 0;       // Set (inside the loop) to display content above the more tag.
the_content("More...");
?>

Customizing the Read More

<?php the_content('Read more...<img src="' . bloginfo('template_directory'). '/images/leaf.gif" alt="read more" title="Read more..." />'); ?>

Conditional Tags


previos & Next post

 <?php previous_post(); ?> : <?php next_post(); ?>
<?php previous_post('%','« Previous', 'no'); ?> :  <?php next_post('%','Next »', 'no'); ?> 

only same cat : yes

<?php previous_post('%','« Previous', 'no','yes'); ?>    |  <?php next_post('%','Next »', 'no','yes'); ?>

next page

<!--nextpage-->

The parameters we'll be working with for the template tag are:

  • before: Text to put before all the links. Defaults to

    Pages:.

  • after: Text to put after all the links. Defaults to

    .
  • next_or_number: Indicates whether page numbers should be used. Valid values are number (Default) and next
  • nextpagelink: Text for link to next page. Defaults to Next page.
  • previouspagelink: (string) Text for link to previous page. Defaults to Previous page.
  • pagelink: Format string for page numbers. The  % in the parameter string will be replaced with the page number, so Page % generates "Page 1", "Page 2", etc. Defaults to %, just the page number.

You've seen the default look. Let's play with some other possibilities.

<?php link_pages(); ?>
<div class="pagelink"><?php wp_link_pages('pagelink=Page %'); ?></div>
<?php link_pages('<p><strong>Pages:</strong>', '', '', '', '', ''); ?>
<?php link_pages('', '', 'next_or_number', '', ' &laquo  ', ''); ?>
<?php link_pages('', '', 'number', '', '', '% '); ?>
<?php link_pages('', '', 'next_or_number', ' »  ', '', ''); ?>
<?php link_pages('', '</p>', '', '', '', ''); ?>


<?php link_pages('<p><strong>Pages:</strong>', '</p>', 'number', '', '', ' % '); ?>
<?php link_pages('<p><strong>Pages:</strong>', '</p>', 'next_or_number', ' » ', ' « ', ' % '); ?>

link : http://codex.wordpress.org/Styling_Page-Links

Clean image on Post

<?php 
ob_start();
			
   			the_content('Read the full post »» ',true);
  			$postOutput = preg_replace('/<img[^>]+./','', ob_get_contents());
	   
ob_end_clean();
echo $postOutput; 
?>


External

Solutuons

for user


text/code
HALLooooo