Make WordPress Core

Opened 18 years ago

Closed 17 years ago

#7874 closed enhancement (wontfix)

the_sticky() to "the loop"

Reported by: ShaneF Owned by:
Priority: normal Milestone:
Component: Template Version: 2.7
Severity: normal Keywords: needs-patch reporter-feedback
Cc: Focuses:

Description

Adds a new loop function 'is_sticky'.

Attachments (1)

7874.1.diff​ (1.6 KB ) - added by ShaneF 18 years ago.

Download all attachments as: .zip

Change History (12)

@ShaneF
18 years ago

#1 @westi
18 years ago

  • Keywords reporter-feedback added; has-patch commit removed

What is wrong with the existing is_sticky() function that we already have?

#2 @ShaneF
18 years ago

  • Milestone 2.7
  • Resolution → worksforme
  • Status new → closed

Wait? There is one? :o

#3 @ShaneF
18 years ago

  • Keywords reporter-feedback removed

#4 @ShaneF
18 years ago

  • Milestone → 2.7
  • Resolution worksforme
  • Status closed → reopened
/**
 * Output 'Sticky', if the post is sticky.
 *
 * Used from within 'The Loop' to allow string output of what ever you want,
 * if the current post is a sticky post.
 *
 * @since 2.7.0
 *
 * @param str $sticky What are we outputing? default: Sticky
 * @param str $before Pre-prend our text
 * @param str $after What are we going to place afterwords
 * @param bool $echo Default to true. False for return.
 */
function the_sticky($sticky = '', $before = '', $after = '', $echo = true) {
	global $id;
	
	if (!is_sticky(absint($id)))
		return;
	
	if ( strlen($sticky) == 0 )
		$sticky = __('Sticky');

	$sticky = $before . $sticky . $after;

	if ( $echo )
		echo apply_filters( 'the_sticky', $sticky );
	else
		return apply_filters( 'the_sticky', $sticky );
		
}

This is what I was trying to do. For inside wp-includes/post.php

#5 @ShaneF
18 years ago

  • Summary is_sticky() to "the loop" → the_sticky() to "the loop"

#6 @ShaneF
18 years ago

function the_sticky($sticky = '', $before = '', $after = '', $echo = true) {
	global $id;
	
	if (!is_sticky(absint($id)))
		return;
	
	if ( strlen($sticky) == 0 ) {
		if (!is_sticky(absint($id)))
			return false;
		else
			return true;
	}

	$sticky = $before . $sticky . $after;

	if ( $echo )
		echo apply_filters( 'the_sticky', $sticky );
	else
		return apply_filters( 'the_sticky', $sticky );
		
}

This is a better version... :)

#7 @ryan
18 years ago

  • Milestone 2.7 → 2.8

Moving enhancements to 2.8.

#8 @ShaneF
18 years ago

  • Keywords has-patch added

#9 @Denis-de-Bernardy
17 years ago

  • Keywords needs-patch reporter-feedback added; has-patch removed
  • Milestone 2.8 → Future Release

Please expand on what you're trying to do a little, too. I personally fail to see how this the_sticky() function is useful.

Also, that the patch is for an is_sticky() function, which makes the ticket a bit confusing.

#10 @Denis-de-Bernardy
17 years ago

  • Component General → Template

#11 @Denis-de-Bernardy
17 years ago

  • Milestone Future Release
  • Resolution → wontfix
  • Status reopened → closed

no apparent interest, and can be done with a plugin

Note: See TracTickets for help on using tickets.