2004-01-27 10:58:01 +01:00
< ? php
2004-02-17 05:56:29 +01:00
// Default filters
add_filter ( 'the_title' , 'convert_chars' );
add_filter ( 'the_title' , 'trim' );
add_filter ( 'the_title_rss' , 'strip_tags' );
add_filter ( 'the_content' , 'convert_smilies' );
add_filter ( 'the_content' , 'convert_chars' );
add_filter ( 'the_content' , 'wpautop' );
add_filter ( 'the_excerpt' , 'convert_smilies' );
add_filter ( 'the_excerpt' , 'convert_chars' );
add_filter ( 'the_excerpt' , 'wpautop' );
2004-01-27 10:58:01 +01:00
function get_the_password_form () {
2004-02-20 02:53:41 +01:00
$output = '<form action="' . get_settings ( 'siteurl' ) . ' / wp - pass . php " method= " post " >
2004-04-17 17:56:23 +02:00
< p > ' . __("This post is password protected. To view it please enter your password below:") . ' </ p >
< p >< label > ' . __("Password:") . ' < input name = " post_password " type = " text " size = " 20 " /></ label > < input type = " submit " name = " Submit " value = " Submit " /></ p >
2004-01-27 10:58:01 +01:00
</ form >
2004-02-20 02:53:41 +01:00
' ;
2004-02-17 05:56:29 +01:00
return $output ;
2004-01-27 10:58:01 +01:00
}
function the_ID () {
2004-02-17 05:56:29 +01:00
global $id ;
echo $id ;
2004-01-27 10:58:01 +01:00
}
function the_title ( $before = '' , $after = '' , $echo = true ) {
2004-02-17 05:56:29 +01:00
$title = get_the_title ();
if ( ! empty ( $title )) {
$title = apply_filters ( 'the_title' , $before . $title . $after );
if ( $echo )
echo $title ;
else
return $title ;
}
2004-01-27 10:58:01 +01:00
}
2004-02-17 05:56:29 +01:00
2004-01-27 10:58:01 +01:00
function the_title_rss () {
2004-02-17 05:56:29 +01:00
$title = get_the_title ();
$title = apply_filters ( 'the_title' , $title );
2004-02-17 05:57:31 +01:00
$title = apply_filters ( 'the_title_rss' , $title );
2004-02-17 05:56:29 +01:00
echo $title ;
2004-01-27 10:58:01 +01:00
}
2004-02-17 05:56:29 +01:00
2004-01-27 10:58:01 +01:00
function get_the_title () {
2004-02-17 05:56:29 +01:00
global $post ;
$output = stripslashes ( $post -> post_title );
if ( ! empty ( $post -> post_password )) { // if there's a password
$output = 'Protected: ' . $output ;
}
return $output ;
2004-01-27 10:58:01 +01:00
}
2004-02-17 05:56:29 +01:00
function the_content ( $more_link_text = '(more...)' , $stripteaser = 0 , $more_file = '' ) {
2004-01-27 10:58:01 +01:00
$content = get_the_content ( $more_link_text , $stripteaser , $more_file );
$content = apply_filters ( 'the_content' , $content );
2004-03-31 18:41:30 +02:00
$content = str_replace ( ']]>' , ']]>' , $content );
2004-01-27 10:58:01 +01:00
echo $content ;
}
function the_content_rss ( $more_link_text = '(more...)' , $stripteaser = 0 , $more_file = '' , $cut = 0 , $encode_html = 0 ) {
2004-02-17 05:56:29 +01:00
$content = get_the_content ( $more_link_text , $stripteaser , $more_file );
$content = apply_filters ( 'the_content' , $content );
if ( $cut && ! $encode_html ) {
$encode_html = 2 ;
}
if ( $encode_html == 1 ) {
$content = htmlspecialchars ( $content );
$cut = 0 ;
} elseif ( $encode_html == 0 ) {
$content = make_url_footnote ( $content );
} elseif ( $encode_html == 2 ) {
$content = strip_tags ( $content );
}
if ( $cut ) {
$blah = explode ( ' ' , $content );
if ( count ( $blah ) > $cut ) {
$k = $cut ;
$use_dotdotdot = 1 ;
} else {
$k = count ( $blah );
$use_dotdotdot = 0 ;
}
for ( $i = 0 ; $i < $k ; $i ++ ) {
$excerpt .= $blah [ $i ] . ' ' ;
}
$excerpt .= ( $use_dotdotdot ) ? '...' : '' ;
$content = $excerpt ;
}
2004-03-31 18:41:30 +02:00
$content = str_replace ( ']]>' , ']]>' , $content );
2004-02-17 05:56:29 +01:00
echo $content ;
2004-01-27 10:58:01 +01:00
}
2004-02-17 05:56:29 +01:00
function get_the_content ( $more_link_text = '(more...)' , $stripteaser = 0 , $more_file = '' ) {
2004-01-29 07:49:19 +01:00
global $id , $post , $more , $single , $withcomments , $page , $pages , $multipage , $numpages ;
2004-04-21 00:56:47 +02:00
global $preview , $cookiehash ;
2004-01-27 10:58:01 +01:00
global $pagenow ;
$output = '' ;
if ( ! empty ( $post -> post_password )) { // if there's a password
2004-02-17 05:56:29 +01:00
if ( $_COOKIE [ 'wp-postpass_' . $cookiehash ] != $post -> post_password ) { // and it doesn't match the cookie
2004-01-27 10:58:01 +01:00
$output = get_the_password_form ();
return $output ;
}
}
if ( $more_file != '' ) {
$file = $more_file ;
} else {
2004-04-21 00:56:47 +02:00
$file = $pagenow ; //$_SERVER['PHP_SELF'];
2004-01-27 10:58:01 +01:00
}
$content = $pages [ $page - 1 ];
$content = explode ( '<!--more-->' , $content );
if (( preg_match ( '/<!--noteaser-->/' , $post -> post_content ) && (( ! $multipage ) || ( $page == 1 ))))
$stripteaser = 1 ;
$teaser = $content [ 0 ];
if (( $more ) && ( $stripteaser ))
$teaser = '' ;
$output .= $teaser ;
if ( count ( $content ) > 1 ) {
if ( $more ) {
$output .= '<a id="more-' . $id . '"></a>' . $content [ 1 ];
} else {
2004-02-20 02:53:41 +01:00
$output .= ' <a href="' . get_permalink () . " #more- $id\ " > $more_link_text </ a > " ;
2004-01-27 10:58:01 +01:00
}
}
if ( $preview ) { // preview fix for javascript bug with foreign languages
$output = preg_replace ( '/\%u([0-9A-F]{4,4})/e' , " '&#'.base_convert(' \\ 1',16,10).';' " , $output );
}
return $output ;
}
function the_excerpt () {
2004-02-17 05:56:29 +01:00
echo apply_filters ( 'the_excerpt' , get_the_excerpt ());
2004-01-27 10:58:01 +01:00
}
function the_excerpt_rss ( $cut = 0 , $encode_html = 0 ) {
$output = get_the_excerpt ( true );
2004-02-17 05:56:29 +01:00
$output = convert_chars ( $output );
2004-01-27 10:58:01 +01:00
if ( $cut && ! $encode_html ) {
$encode_html = 2 ;
}
if ( $encode_html == 1 ) {
$output = htmlspecialchars ( $output );
$cut = 0 ;
} elseif ( $encode_html == 0 ) {
$output = make_url_footnote ( $output );
} elseif ( $encode_html == 2 ) {
$output = strip_tags ( $output );
2004-03-31 18:41:30 +02:00
$output = str_replace ( '&' , '&' , $output );
2004-01-27 10:58:01 +01:00
}
if ( $cut ) {
$excerpt = '' ;
$blah = explode ( ' ' , $output );
if ( count ( $blah ) > $cut ) {
$k = $cut ;
$use_dotdotdot = 1 ;
} else {
$k = count ( $blah );
$use_dotdotdot = 0 ;
}
for ( $i = 0 ; $i < $k ; $i ++ ) {
$excerpt .= $blah [ $i ] . ' ' ;
}
$excerpt .= ( $use_dotdotdot ) ? '...' : '' ;
$output = $excerpt ;
}
2004-03-31 18:41:30 +02:00
$output = str_replace ( ']]>' , ']]>' , $output );
2004-05-09 20:31:58 +02:00
echo apply_filters ( 'the_excerpt_rss' , $output );
2004-01-27 10:58:01 +01:00
}
2004-02-06 21:28:26 +01:00
function get_the_excerpt ( $fakeit = true ) {
2004-01-27 10:58:01 +01:00
global $id , $post ;
2004-02-22 15:39:04 +01:00
global $cookiehash ;
2004-01-27 10:58:01 +01:00
$output = '' ;
$output = stripslashes ( $post -> post_excerpt );
if ( ! empty ( $post -> post_password )) { // if there's a password
2004-02-17 05:56:29 +01:00
if ( $_COOKIE [ 'wp-postpass_' . $cookiehash ] != $post -> post_password ) { // and it doesn't match the cookie
2004-04-17 17:56:23 +02:00
$output = __ ( 'There is no excerpt because this is a protected post.' );
2004-01-27 10:58:01 +01:00
return $output ;
}
}
2004-02-22 15:39:04 +01:00
// If we haven't got an excerpt, make one in the style of the rss ones
2004-01-27 10:58:01 +01:00
if (( $output == '' ) && $fakeit ) {
2004-02-22 15:39:04 +01:00
$output = $post -> post_content ;
2004-01-27 10:58:01 +01:00
$output = strip_tags ( $output );
$blah = explode ( ' ' , $output );
$excerpt_length = 120 ;
if ( count ( $blah ) > $excerpt_length ) {
$k = $excerpt_length ;
$use_dotdotdot = 1 ;
} else {
$k = count ( $blah );
$use_dotdotdot = 0 ;
}
$excerpt = '' ;
for ( $i = 0 ; $i < $k ; $i ++ ) {
$excerpt .= $blah [ $i ] . ' ' ;
}
$excerpt .= ( $use_dotdotdot ) ? '...' : '' ;
$output = $excerpt ;
} // end if no excerpt
return $output ;
}
2004-04-24 21:23:57 +02:00
function wp_link_pages ( $args = '' ) {
parse_str ( $args , $r );
if ( ! isset ( $r [ 'before' ])) $r [ 'before' ] = '<p>' . __ ( 'Pages:' );
if ( ! isset ( $r [ 'after' ])) $r [ 'after' ] = '</p>' ;
if ( ! isset ( $r [ 'next_or_number' ])) $r [ 'next_or_number' ] = 'number' ;
if ( ! isset ( $r [ 'nextpagelink' ])) $r [ 'nextpagelink' ] = 'Next page' ;
if ( ! isset ( $r [ 'previouspagelink' ])) $r [ 'previouspagelink' ] = 'Previous page' ;
if ( ! isset ( $r [ 'pagelink' ])) $r [ 'pagelink' ] = '%' ;
if ( ! isset ( $r [ 'more_file' ])) $r [ 'more_file' ] = '' ;
link_pages ( $r [ 'before' ], $r [ 'after' ], $r [ 'next_or_number' ], $r [ 'nextpagelink' ], $r [ 'previouspagelink' ], $r [ 'pagelink' ], $r [ 'more_file' ]);
}
2004-01-27 10:58:01 +01:00
function link_pages ( $before = '<br />' , $after = '<br />' , $next_or_number = 'number' , $nextpagelink = 'next page' , $previouspagelink = 'previous page' , $pagelink = '%' , $more_file = '' ) {
global $id , $page , $numpages , $multipage , $more ;
global $pagenow ;
global $querystring_start , $querystring_equal , $querystring_separator ;
if ( $more_file != '' ) {
$file = $more_file ;
} else {
$file = $pagenow ;
}
if (( $multipage )) {
if ( $next_or_number == 'number' ) {
echo $before ;
for ( $i = 1 ; $i < ( $numpages + 1 ); $i = $i + 1 ) {
$j = str_replace ( '%' , " $i " , $pagelink );
2004-02-20 02:53:41 +01:00
echo ' ' ;
2004-01-27 10:58:01 +01:00
if (( $i != $page ) || (( ! $more ) && ( $page == 1 ))) {
if ( '' == get_settings ( 'permalink_structure' )) {
echo '<a href="' . get_permalink () . $querystring_separator . 'page' . $querystring_equal . $i . '">' ;
} else {
echo '<a href="' . get_permalink () . $i . '/">' ;
}
}
echo $j ;
if (( $i != $page ) || (( ! $more ) && ( $page == 1 )))
echo '</a>' ;
}
echo $after ;
} else {
if ( $more ) {
echo $before ;
$i = $page - 1 ;
if ( $i && $more ) {
if ( '' == get_settings ( 'permalink_structure' )) {
echo '<a href="' . get_permalink () . $querystring_separator . 'page' . $querystring_equal . $i . '">' ;
} else {
echo '<a href="' . get_permalink () . $i . '/">' ;
}
}
$i = $page + 1 ;
if ( $i <= $numpages && $more ) {
if ( '' == get_settings ( 'permalink_structure' )) {
echo '<a href="' . get_permalink () . $querystring_separator . 'page' . $querystring_equal . $i . '">' ;
} else {
echo '<a href="' . get_permalink () . $i . '/">' ;
}
}
echo $after ;
}
}
}
}
function previous_post ( $format = '%' , $previous = 'previous post: ' , $title = 'yes' , $in_same_cat = 'no' , $limitprev = 1 , $excluded_categories = '' ) {
2004-02-26 17:15:48 +01:00
global $tableposts , $id , $post , $wpdb ;
2004-01-27 10:58:01 +01:00
global $p , $posts , $posts_per_page , $s , $single ;
global $querystring_start , $querystring_equal , $querystring_separator ;
if (( $p ) || ( $posts_per_page == 1 ) || 1 == $single ) {
$current_post_date = $post -> post_date ;
$current_category = $post -> post_category ;
$sqlcat = '' ;
if ( $in_same_cat != 'no' ) {
$sqlcat = " AND post_category = ' $current_category ' " ;
}
$sql_exclude_cats = '' ;
if ( ! empty ( $excluded_categories )) {
$blah = explode ( 'and' , $excluded_categories );
foreach ( $blah as $category ) {
$category = intval ( $category );
$sql_exclude_cats .= " AND post_category != $category " ;
}
}
$limitprev -- ;
$lastpost = @ $wpdb -> get_row ( " SELECT ID, post_title FROM $tableposts WHERE post_date < ' $current_post_date ' AND post_status = 'publish' $sqlcat $sql_exclude_cats ORDER BY post_date DESC LIMIT $limitprev , 1 " );
if ( $lastpost ) {
$string = '<a href="' . get_permalink ( $lastpost -> ID ) . '">' . $previous ;
if ( $title == 'yes' ) {
$string .= wptexturize ( stripslashes ( $lastpost -> post_title ));
}
$string .= '</a>' ;
$format = str_replace ( '%' , $string , $format );
echo $format ;
}
}
}
function next_post ( $format = '%' , $next = 'next post: ' , $title = 'yes' , $in_same_cat = 'no' , $limitnext = 1 , $excluded_categories = '' ) {
2004-05-10 01:26:41 +02:00
global $tableposts , $posts_per_page , $post , $wpdb , $single ;
if ( 1 == $posts_per_page || 1 == $single ) {
2004-01-27 10:58:01 +01:00
$current_post_date = $post -> post_date ;
$current_category = $post -> post_category ;
$sqlcat = '' ;
if ( $in_same_cat != 'no' ) {
$sqlcat = " AND post_category=' $current_category ' " ;
}
$sql_exclude_cats = '' ;
if ( ! empty ( $excluded_categories )) {
$blah = explode ( 'and' , $excluded_categories );
foreach ( $blah as $category ) {
$category = intval ( $category );
$sql_exclude_cats .= " AND post_category != $category " ;
}
}
2004-02-25 00:49:51 +01:00
$now = current_time ( 'mysql' );
2004-01-27 10:58:01 +01:00
$limitnext -- ;
2004-02-25 00:49:51 +01:00
$nextpost = @ $wpdb -> get_row ( " SELECT ID,post_title FROM $tableposts WHERE post_date > ' $current_post_date ' AND post_date < ' $now ' AND post_status = 'publish' $sqlcat $sql_exclude_cats AND ID != $post->ID ORDER BY post_date ASC LIMIT $limitnext ,1 " );
2004-01-27 10:58:01 +01:00
if ( $nextpost ) {
$string = '<a href="' . get_permalink ( $nextpost -> ID ) . '">' . $next ;
if ( $title == 'yes' ) {
$string .= wptexturize ( stripslashes ( $nextpost -> post_title ));
}
$string .= '</a>' ;
$format = str_replace ( '%' , $string , $format );
echo $format ;
}
}
}
function next_posts ( $max_page = 0 ) { // original by cfactor at cooltux.org
2004-04-21 00:56:47 +02:00
global $p , $paged , $what_to_show , $pagenow ;
2004-01-27 10:58:01 +01:00
global $querystring_start , $querystring_equal , $querystring_separator ;
if ( empty ( $p ) && ( $what_to_show == 'paged' )) {
2004-04-21 00:56:47 +02:00
$qstr = $_SERVER [ 'QUERY_STRING' ];
2004-01-27 10:58:01 +01:00
if ( ! empty ( $qstr )) {
2004-02-20 02:53:41 +01:00
$qstr = preg_replace ( '/&paged=\d{0,}/' , '' , $qstr );
$qstr = preg_replace ( '/paged=\d{0,}/' , '' , $qstr );
2004-04-21 00:56:47 +02:00
} elseif ( stristr ( $_SERVER [ 'REQUEST_URI' ], $_SERVER [ 'SCRIPT_NAME' ] )) {
if ( '' != $qstr = str_replace ( $_SERVER [ 'SCRIPT_NAME' ], '' ,
$_SERVER [ 'REQUEST_URI' ]) ) {
2004-02-20 02:53:41 +01:00
$qstr = preg_replace ( '/^\//' , '' , $qstr );
$qstr = preg_replace ( '/paged\/\d{0,}\//' , '' , $qstr );
$qstr = preg_replace ( '/paged\/\d{0,}/' , '' , $qstr );
$qstr = preg_replace ( '/\/$/' , '' , $qstr );
2004-01-27 10:58:01 +01:00
}
}
if ( ! $paged ) $paged = 1 ;
$nextpage = intval ( $paged ) + 1 ;
if ( ! $max_page || $max_page >= $nextpage ) {
2004-04-28 09:27:03 +02:00
echo get_settings ( 'home' ) . '/' . $pagenow . $querystring_start .
2004-01-27 10:58:01 +01:00
( $qstr == '' ? '' : $qstr . $querystring_separator ) .
'paged' . $querystring_equal . $nextpage ;
}
}
}
function next_posts_link ( $label = 'Next Page »' , $max_page = 0 ) {
global $p , $paged , $result , $request , $posts_per_page , $what_to_show , $wpdb ;
if ( $what_to_show == 'paged' ) {
if ( ! $max_page ) {
$nxt_request = $request ;
//if the query includes a limit clause, call it again without that
//limit clause!
if ( $pos = strpos ( strtoupper ( $request ), 'LIMIT' )) {
$nxt_request = substr ( $request , 0 , $pos );
}
$nxt_result = $wpdb -> query ( $nxt_request );
$numposts = $wpdb -> num_rows ;
$max_page = ceil ( $numposts / $posts_per_page );
}
if ( ! $paged )
$paged = 1 ;
$nextpage = intval ( $paged ) + 1 ;
if ( empty ( $p ) && ( empty ( $paged ) || $nextpage <= $max_page )) {
echo '<a href="' ;
next_posts ( $max_page );
echo '">' . preg_replace ( '/&([^#])(?![a-z]{1,8};)/' , '&$1' , $label ) . '</a>' ;
}
}
}
function previous_posts () { // original by cfactor at cooltux.org
2004-04-21 00:56:47 +02:00
global $_SERVER , $p , $paged , $what_to_show , $pagenow ;
2004-01-27 10:58:01 +01:00
global $querystring_start , $querystring_equal , $querystring_separator ;
if ( empty ( $p ) && ( $what_to_show == 'paged' )) {
2004-04-21 00:56:47 +02:00
$qstr = $_SERVER [ 'QUERY_STRING' ];
2004-01-27 10:58:01 +01:00
if ( ! empty ( $qstr )) {
2004-02-20 02:53:41 +01:00
$qstr = preg_replace ( '/&paged=\d{0,}/' , '' , $qstr );
$qstr = preg_replace ( '/paged=\d{0,}/' , '' , $qstr );
2004-04-21 00:56:47 +02:00
} elseif ( stristr ( $_SERVER [ 'REQUEST_URI' ], $_SERVER [ 'SCRIPT_NAME' ] )) {
if ( '' != $qstr = str_replace ( $_SERVER [ 'SCRIPT_NAME' ], '' ,
$_SERVER [ 'REQUEST_URI' ]) ) {
2004-02-20 02:53:41 +01:00
$qstr = preg_replace ( '/^\//' , '' , $qstr );
$qstr = preg_replace ( " /paged \ / \ d { 0,} \ // " , '' , $qstr );
$qstr = preg_replace ( '/paged\/\d{0,}/' , '' , $qstr );
$qstr = preg_replace ( '/\/$/' , '' , $qstr );
2004-01-27 10:58:01 +01:00
}
}
$nextpage = intval ( $paged ) - 1 ;
if ( $nextpage < 1 ) $nextpage = 1 ;
2004-04-28 09:27:03 +02:00
echo get_settings ( 'home' ) . '/' . $pagenow . $querystring_start .
2004-01-27 10:58:01 +01:00
( $qstr == '' ? '' : $qstr . $querystring_separator ) .
'paged' . $querystring_equal . $nextpage ;
}
}
function previous_posts_link ( $label = '« Previous Page' ) {
global $p , $paged , $what_to_show ;
if ( empty ( $p ) && ( $paged > 1 ) && ( $what_to_show == 'paged' )) {
echo '<a href="' ;
previous_posts ();
echo '">' . preg_replace ( '/&([^#])(?![a-z]{1,8};)/' , '&$1' , $label ) . '</a>' ;
}
}
function posts_nav_link ( $sep = ' :: ' , $prelabel = '<< Previous Page' , $nxtlabel = 'Next Page >>' ) {
global $p , $what_to_show , $request , $posts_per_page , $wpdb ;
if ( empty ( $p ) && ( $what_to_show == 'paged' )) {
$nxt_request = $request ;
if ( $pos = strpos ( strtoupper ( $request ), 'LIMIT' )) {
$nxt_request = substr ( $request , 0 , $pos );
}
$nxt_result = $wpdb -> query ( $nxt_request );
$numposts = $wpdb -> num_rows ;
$max_page = ceil ( $numposts / $posts_per_page );
if ( $max_page > 1 ) {
previous_posts_link ( $prelabel );
echo preg_replace ( '/&([^#])(?![a-z]{1,8};)/' , '&$1' , $sep );
next_posts_link ( $nxtlabel , $max_page );
}
}
}
2004-02-26 22:42:47 +01:00
/*
* Post - meta : Custom per - post fields .
*/
function get_post_custom () {
global $id , $post_meta_cache ;
return $post_meta_cache [ $id ];
}
function get_post_custom_keys () {
global $id , $post_meta_cache ;
if ( ! is_array ( $post_meta_cache [ $id ]))
return ;
if ( $keys = array_keys ( $post_meta_cache [ $id ]))
return $keys ;
}
function get_post_custom_values ( $key = '' ) {
global $id , $post_meta_cache ;
return $post_meta_cache [ $id ][ $key ];
}
// this will probably change at some point...
function the_meta () {
global $id , $post_meta_cache ;
if ( $keys = get_post_custom_keys ()) {
2004-03-29 20:46:33 +02:00
echo " <ul class='post-meta'> \n " ;
2004-02-26 22:42:47 +01:00
foreach ( $keys as $key ) {
2004-02-26 23:22:54 +01:00
$values = array_map ( 'trim' , $post_meta_cache [ $id ][ $key ]);
$value = implode ( $values , ', ' );
2004-02-26 22:42:47 +01:00
2004-03-29 20:46:33 +02:00
echo " <li><span class='post-meta-key'> $key :</span> $value </li> \n " ;
2004-02-26 22:42:47 +01:00
}
echo " </ul> \n " ;
}
}
2004-03-24 15:41:05 +01:00
?>