本文整理汇总了PHP中bbp_get_page_by_path函数的典型用法代码示例。如果您正苦于以下问题:PHP bbp_get_page_by_path函数的具体用法?PHP bbp_get_page_by_path怎么用?PHP bbp_get_page_by_path使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了bbp_get_page_by_path函数的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: bbp_get_topic_archive_title
/**
* Return the topic archive title
*
* @since 2.0.0 bbPress (r3249)
*
* @param string $title Default text to use as title
*
* @uses bbp_get_page_by_path() Check if page exists at root path
* @uses get_the_title() Use the page title at the root path
* @uses get_post_type_object() Load the post type object
* @uses bbp_get_topic_post_type() Get the topic post type ID
* @uses get_post_type_labels() Get labels for topic post type
* @uses apply_filters() Allow output to be manipulated
*
* @return string The topic archive title
*/
function bbp_get_topic_archive_title($title = '')
{
// If no title was passed
if (empty($title)) {
// Set root text to page title
$page = bbp_get_page_by_path(bbp_get_topic_archive_slug());
if (!empty($page)) {
$title = get_the_title($page->ID);
// Default to topic post type name label
} else {
$tto = get_post_type_object(bbp_get_topic_post_type());
$title = $tto->labels->name;
}
}
return apply_filters('bbp_get_topic_archive_title', $title);
}
示例2: bbp_get_breadcrumb
/**
* Return a breadcrumb ( forum -> topic -> reply )
*
* @since bbPress (r2589)
*
* @param string $sep Separator. Defaults to '←'
* @param bool $current_page Include the current item
* @param bool $root Include the root page if one exists
*
* @uses get_post() To get the post
* @uses bbp_get_forum_permalink() To get the forum link
* @uses bbp_get_topic_permalink() To get the topic link
* @uses bbp_get_reply_permalink() To get the reply link
* @uses get_permalink() To get the permalink
* @uses bbp_get_forum_post_type() To get the forum post type
* @uses bbp_get_topic_post_type() To get the topic post type
* @uses bbp_get_reply_post_type() To get the reply post type
* @uses bbp_get_forum_title() To get the forum title
* @uses bbp_get_topic_title() To get the topic title
* @uses bbp_get_reply_title() To get the reply title
* @uses get_the_title() To get the title
* @uses apply_filters() Calls 'bbp_get_breadcrumb' with the crumbs
* @return string Breadcrumbs
*/
function bbp_get_breadcrumb($args = array())
{
// Turn off breadcrumbs
if (apply_filters('bbp_no_breadcrumb', is_front_page())) {
return;
}
// Define variables
$front_id = $root_id = 0;
$ancestors = $crumbs = $tag_data = array();
$pre_root_text = $pre_front_text = $pre_current_text = '';
$pre_include_root = $pre_include_home = $pre_include_current = true;
/** Home Text *********************************************************/
// No custom home text
if (empty($args['home_text'])) {
// Set home text to page title
$front_id = get_option('page_on_front');
if (!empty($front_id)) {
$pre_front_text = get_the_title($front_id);
// Default to 'Home'
} else {
$pre_front_text = __('Home', 'bbpress');
}
}
/** Root Text *********************************************************/
// No custom root text
if (empty($args['root_text'])) {
$page = bbp_get_page_by_path(bbp_get_root_slug());
if (!empty($page)) {
$root_id = $page->ID;
}
$pre_root_text = bbp_get_forum_archive_title();
}
/** Includes **********************************************************/
// Root slug is also the front page
if (!empty($front_id) && $front_id == $root_id) {
$pre_include_root = false;
}
// Don't show root if viewing forum archive
if (bbp_is_forum_archive()) {
$pre_include_root = false;
}
// Don't show root if viewing page in place of forum archive
if (!empty($root_id) && ((is_single() || is_page()) && $root_id == get_the_ID())) {
$pre_include_root = false;
}
/** Current Text ******************************************************/
// Forum archive
if (bbp_is_forum_archive()) {
$pre_current_text = bbp_get_forum_archive_title();
// Topic archive
} elseif (bbp_is_topic_archive()) {
$pre_current_text = bbp_get_topic_archive_title();
// View
} elseif (bbp_is_single_view()) {
$pre_current_text = bbp_get_view_title();
// Single Forum
} elseif (bbp_is_single_forum()) {
$pre_current_text = bbp_get_forum_title();
// Single Topic
} elseif (bbp_is_single_topic()) {
$pre_current_text = bbp_get_topic_title();
// Single Topic
} elseif (bbp_is_single_reply()) {
$pre_current_text = bbp_get_reply_title();
// Topic Tag (or theme compat topic tag)
} elseif (bbp_is_topic_tag() || get_query_var('bbp_topic_tag') && !bbp_is_topic_tag_edit()) {
// Always include the tag name
$tag_data[] = bbp_get_topic_tag_name();
// If capable, include a link to edit the tag
if (current_user_can('manage_topic_tags')) {
$tag_data[] = '<a href="' . bbp_get_topic_tag_edit_link() . '" class="bbp-edit-topic-tag-link">' . __('(Edit)', 'bbpress') . '</a>';
}
// Implode the results of the tag data
$pre_current_text = sprintf(__('Topic Tag: %s', 'bbpress'), implode(' ', $tag_data));
// Edit Topic Tag
} elseif (bbp_is_topic_tag_edit()) {
//.........这里部分代码省略.........
示例3: bbp_replace_the_content
/**
* Replaces the_content() if the post_type being displayed is one that would
* normally be handled by bbPress, but proper single page templates do not
* exist in the currently active theme.
*
* Note that we do *not* currently use is_main_query() here. This is because so
* many existing themes either use query_posts() or fail to use wp_reset_query()
* when running queries before the main loop, causing theme compat to fail.
*
* @since bbPress (r3034)
* @param string $content
* @return type
*/
function bbp_replace_the_content($content = '')
{
// Bail if not inside the query loop
if (!in_the_loop()) {
return $content;
}
$bbp = bbpress();
// Define local variable(s)
$new_content = '';
// Bail if shortcodes are unset somehow
if (!is_a($bbp->shortcodes, 'BBP_Shortcodes')) {
return $content;
}
// Use shortcode API to display forums/topics/replies because they are
// already output buffered and ready to fit inside the_content
/** Users *************************************************************/
// Profile View
if (bbp_is_single_user_edit() || bbp_is_single_user()) {
ob_start();
bbp_get_template_part('content', 'single-user');
$new_content = ob_get_contents();
ob_end_clean();
/** Forums ************************************************************/
// Forum archive
} elseif (bbp_is_forum_archive()) {
// Page exists where this archive should be
$page = bbp_get_page_by_path(bbp_get_root_slug());
if (!empty($page)) {
// Restore previously unset filters
bbp_restore_all_filters('the_content');
// Remove 'bbp_replace_the_content' filter to prevent infinite loops
remove_filter('the_content', 'bbp_replace_the_content');
// Start output buffer
ob_start();
// Grab the content of this page
$new_content = apply_filters('the_content', $page->post_content);
// Clean up the buffer
ob_end_clean();
// Add 'bbp_replace_the_content' filter back (@see $this::start())
add_filter('the_content', 'bbp_replace_the_content');
// No page so show the archive
} else {
$new_content = $bbp->shortcodes->display_forum_index();
}
// Forum Edit
} elseif (bbp_is_forum_edit()) {
$new_content = $bbp->shortcodes->display_forum_form();
// Single Forum
} elseif (bbp_is_single_forum()) {
$new_content = $bbp->shortcodes->display_forum(array('id' => get_the_ID()));
/** Topics ************************************************************/
// Topic archive
} elseif (bbp_is_topic_archive()) {
// Page exists where this archive should be
$page = bbp_get_page_by_path(bbp_get_topic_archive_slug());
if (!empty($page)) {
// Restore previously unset filters
bbp_restore_all_filters('the_content');
// Remove 'bbp_replace_the_content' filter to prevent infinite loops
remove_filter('the_content', 'bbp_replace_the_content');
// Start output buffer
ob_start();
// Grab the content of this page
$new_content = apply_filters('the_content', $page->post_content);
// Clean up the buffer
ob_end_clean();
// Add 'bbp_replace_the_content' filter back (@see $this::start())
add_filter('the_content', 'bbp_replace_the_content');
// No page so show the archive
} else {
$new_content = $bbp->shortcodes->display_topic_index();
}
// Topic Edit
} elseif (bbp_is_topic_edit()) {
// Split
if (bbp_is_topic_split()) {
ob_start();
bbp_get_template_part('form', 'topic-split');
$new_content = ob_get_contents();
ob_end_clean();
// Merge
} elseif (bbp_is_topic_merge()) {
ob_start();
bbp_get_template_part('form', 'topic-merge');
$new_content = ob_get_contents();
ob_end_clean();
// Edit
//.........这里部分代码省略.........
示例4: us_breadcrumbs
/**
* Based on breadcrumbs function by Dimox
* http://dimox.net/wordpress-breadcrumbs-without-a-plugin/
*/
function us_breadcrumbs()
{
/* === OPTIONS === */
$text['home'] = __('Home', 'us');
// text for the 'Home' link
$text['category'] = __('Archive by Category "%s"', 'us');
// text for a category page
$text['search'] = __('Search Results for "%s" Query', 'us');
// text for a search results page
$text['tag'] = __('Posts Tagged "%s"', 'us');
// text for a tag page
$text['author'] = __('Articles Posted by %s', 'us');
// text for an author page
$text['404'] = __('Error 404', 'us');
// text for the 404 page
$text['forums'] = __('Forums', 'us');
// text for the 404 page
$showCurrent = 1;
// 1 - show current post/page title in breadcrumbs, 0 - don't show
$showOnHome = 0;
// 1 - show breadcrumbs on the homepage, 0 - don't show
$delimiter = ' <span class="g-breadcrumbs-separator"><i class="mdfi_navigation_chevron_right"></i></span> ';
// delimiter between crumbs
$before = '<span class="g-breadcrumbs-item">';
// tag before the current crumb
$after = '</span>';
// tag after the current crumb
/* === END OF OPTIONS === */
global $post;
$homeLink = home_url() . '/';
$linkBefore = '<span typeof="v:Breadcrumb">';
$linkAfter = '</span>';
$linkAttr = ' rel="v:url" property="v:title"';
$link = $linkBefore . '<a class="g-breadcrumbs-item"' . $linkAttr . ' href="%1$s">%2$s</a>' . $linkAfter;
if (is_home() || is_front_page()) {
if ($showOnHome == 1) {
echo '<div id="crumbs"><a href="' . esc_url($homeLink) . '">' . $text['home'] . '</a></div>';
}
} else {
echo '<div class="g-breadcrumbs" xmlns:v="http://rdf.data-vocabulary.org/#">' . sprintf($link, $homeLink, $text['home']) . $delimiter;
if (is_category()) {
$thisCat = get_category(get_query_var('cat'), false);
if ($thisCat->parent != 0) {
$cats = get_category_parents($thisCat->parent, TRUE, $delimiter);
$cats = str_replace('<a', $linkBefore . '<a' . $linkAttr, $cats);
$cats = str_replace('</a>', '</a>' . $linkAfter, $cats);
echo $cats;
}
echo $before . sprintf($text['category'], single_cat_title('', false)) . $after;
} elseif (is_search()) {
echo $before . sprintf($text['search'], get_search_query()) . $after;
} elseif (is_day()) {
echo sprintf($link, get_year_link(get_the_time('Y')), get_the_time('Y')) . $delimiter;
echo sprintf($link, get_month_link(get_the_time('Y'), get_the_time('m')), __(get_the_time('F'), 'us')) . $delimiter;
echo $before . get_the_time('d') . $after;
} elseif (is_month()) {
echo sprintf($link, get_year_link(get_the_time('Y')), get_the_time('Y')) . $delimiter;
echo $before . __(get_the_time('F'), 'us') . $after;
} elseif (is_year()) {
echo $before . get_the_time('Y') . $after;
} elseif (is_single() && !is_attachment()) {
if (get_post_type() == 'topic' or get_post_type() == 'forum') {
$forums_page = bbp_get_page_by_path(bbp_get_root_slug());
if (!empty($forums_page)) {
$forums_page_url = get_permalink($forums_page->ID);
echo sprintf($link, $forums_page_url, $text['forums']);
}
$parent_id = $post->post_parent;
if ($parent_id) {
$breadcrumbs = array();
while ($parent_id) {
$page = get_page($parent_id);
$breadcrumbs[] = sprintf($link, get_permalink($page->ID), get_the_title($page->ID));
$parent_id = $page->post_parent;
}
$breadcrumbs = array_reverse($breadcrumbs);
for ($i = 0; $i < count($breadcrumbs); $i++) {
echo $delimiter . $breadcrumbs[$i];
// if ($i != count($breadcrumbs)-1) echo $delimiter;
}
// if ( get_post_type() == 'forum' ) {
// echo $delimiter;
// }
}
// if ( get_post_type() == 'forum' ) {
// if ($showCurrent == 1) echo $before . get_the_title() . $after;
// }
} elseif (get_post_type() != 'post') {
$post_type = get_post_type_object(get_post_type());
$slug = $post_type->rewrite;
printf($link, $homeLink . '/' . $slug['slug'] . '/', $post_type->labels->singular_name);
if ($showCurrent == 1) {
echo $delimiter . $before . get_the_title() . $after;
}
} else {
$cat = get_the_category();
//.........这里部分代码省略.........
示例5: bbp_template_include_theme_compat
/**
* Reset main query vars and filter 'the_content' to output a bbPress
* template part as needed.
*
* @since 2.0.0 bbPress (r3032)
*
* @param string $template
* @uses bbp_is_single_user() To check if page is single user
* @uses bbp_get_single_user_template() To get user template
* @uses bbp_is_single_user_edit() To check if page is single user edit
* @uses bbp_get_single_user_edit_template() To get user edit template
* @uses bbp_is_single_view() To check if page is single view
* @uses bbp_get_single_view_template() To get view template
* @uses bbp_is_search() To check if page is search
* @uses bbp_get_search_template() To get search template
* @uses bbp_is_forum_edit() To check if page is forum edit
* @uses bbp_get_forum_edit_template() To get forum edit template
* @uses bbp_is_topic_merge() To check if page is topic merge
* @uses bbp_get_topic_merge_template() To get topic merge template
* @uses bbp_is_topic_split() To check if page is topic split
* @uses bbp_get_topic_split_template() To get topic split template
* @uses bbp_is_topic_edit() To check if page is topic edit
* @uses bbp_get_topic_edit_template() To get topic edit template
* @uses bbp_is_reply_move() To check if page is reply move
* @uses bbp_get_reply_move_template() To get reply move template
* @uses bbp_is_reply_edit() To check if page is reply edit
* @uses bbp_get_reply_edit_template() To get reply edit template
* @uses bbp_set_theme_compat_template() To set the global theme compat template
*/
function bbp_template_include_theme_compat($template = '')
{
/**
* Bail if a root template was already found. This prevents unintended
* recursive filtering of 'the_content'.
*
* @link https://bbpress.trac.wordpress.org/ticket/2429
*/
if (bbp_is_template_included()) {
return $template;
}
/**
* If BuddyPress is activated at a network level, the action order is
* reversed, which causes the template integration to fail. If we're looking
* at a BuddyPress page here, bail to prevent the extra processing.
*
* This is a bit more brute-force than is probably necessary, but gets the
* job done while we work towards something more elegant.
*/
if (function_exists('is_buddypress') && is_buddypress()) {
return $template;
}
// Define local variable(s)
$bbp_shortcodes = bbpress()->shortcodes;
// Bail if shortcodes are unset somehow
if (!is_a($bbp_shortcodes, 'BBP_Shortcodes')) {
return $template;
}
/** Users *************************************************************/
if (bbp_is_single_user_edit() || bbp_is_single_user()) {
// Reset post
bbp_theme_compat_reset_post(array('ID' => 0, 'post_author' => 0, 'post_date' => 0, 'post_content' => bbp_buffer_template_part('content', 'single-user', false), 'post_type' => '', 'post_title' => bbp_get_displayed_user_field('display_name'), 'post_status' => bbp_get_public_status_id(), 'is_single' => true, 'is_archive' => false, 'comment_status' => 'closed'));
/** Forums ************************************************************/
// Forum archive
} elseif (bbp_is_forum_archive()) {
// Page exists where this archive should be
$page = bbp_get_page_by_path(bbp_get_root_slug());
// Should we replace the content...
if (empty($page->post_content)) {
// Use the topics archive
if ('topics' === bbp_show_on_root()) {
$new_content = $bbp_shortcodes->display_topic_index();
// No page so show the archive
} else {
$new_content = $bbp_shortcodes->display_forum_index();
}
// ...or use the existing page content?
} else {
$new_content = apply_filters('the_content', $page->post_content);
}
// Should we replace the title...
if (empty($page->post_title)) {
// Use the topics archive
if ('topics' === bbp_show_on_root()) {
$new_title = bbp_get_topic_archive_title();
// No page so show the archive
} else {
$new_title = bbp_get_forum_archive_title();
}
// ...or use the existing page title?
} else {
$new_title = apply_filters('the_title', $page->post_title);
}
// Reset post
bbp_theme_compat_reset_post(array('ID' => !empty($page->ID) ? $page->ID : 0, 'post_title' => $new_title, 'post_author' => 0, 'post_date' => 0, 'post_content' => $new_content, 'post_type' => bbp_get_forum_post_type(), 'post_status' => bbp_get_public_status_id(), 'is_archive' => true, 'comment_status' => 'closed'));
// Single Forum
} elseif (bbp_is_forum_edit()) {
// Reset post
bbp_theme_compat_reset_post(array('ID' => bbp_get_forum_id(), 'post_title' => bbp_get_forum_title(), 'post_author' => bbp_get_forum_author_id(), 'post_date' => 0, 'post_content' => $bbp_shortcodes->display_forum_form(), 'post_type' => bbp_get_forum_post_type(), 'post_status' => bbp_get_forum_visibility(), 'is_single' => true, 'comment_status' => 'closed'));
} elseif (bbp_is_single_forum()) {
// Reset post
//.........这里部分代码省略.........
示例6: bbp_replace_the_content
/**
* Replaces the_content() if the post_type being displayed is one that would
* normally be handled by bbPress, but proper single page templates do not
* exist in the currently active theme.
*
* @since bbPress (r3034)
* @param string $content
* @return type
*/
function bbp_replace_the_content($content = '')
{
$bbp = bbpress();
// Define local variable(s)
$new_content = '';
// Bail if shortcodes are unset somehow
if (!is_a($bbp->shortcodes, 'BBP_Shortcodes')) {
return $content;
}
// Use shortcode API to display forums/topics/replies because they are
// already output buffered and ready to fit inside the_content
/** Users *************************************************************/
// Profile View
if (bbp_is_single_user()) {
ob_start();
bbp_get_template_part('content', 'single-user');
$new_content = ob_get_contents();
ob_end_clean();
// Profile Edit
} elseif (bbp_is_single_user_edit()) {
ob_start();
bbp_get_template_part('content', 'single-user-edit');
$new_content = ob_get_contents();
ob_end_clean();
/** Forums ************************************************************/
// Reply Edit
} elseif (bbp_is_forum_edit()) {
$new_content = $bbp->shortcodes->display_forum_form();
// Forum archive
} elseif (bbp_is_forum_archive()) {
// Page exists where this archive should be
$page = bbp_get_page_by_path(bbp_get_root_slug());
if (!empty($page)) {
// Restore previously unset filters
bbp_restore_all_filters('the_content');
// Remove 'bbp_replace_the_content' filter to prevent infinite loops
remove_filter('the_content', 'bbp_replace_the_content');
// Start output buffer
ob_start();
// Grab the content of this page
$new_content = apply_filters('the_content', $page->post_content);
// Clean up the buffer
ob_end_clean();
// Add 'bbp_replace_the_content' filter back (@see $this::start())
add_filter('the_content', 'bbp_replace_the_content');
// No page so show the archive
} else {
$new_content = $bbp->shortcodes->display_forum_index();
}
/** Topics ************************************************************/
// Topic archive
} elseif (bbp_is_topic_archive()) {
// Page exists where this archive should be
$page = bbp_get_page_by_path(bbp_get_topic_archive_slug());
if (!empty($page)) {
// Restore previously unset filters
bbp_restore_all_filters('the_content');
// Remove 'bbp_replace_the_content' filter to prevent infinite loops
remove_filter('the_content', 'bbp_replace_the_content');
// Start output buffer
ob_start();
// Grab the content of this page
$new_content = apply_filters('the_content', $page->post_content);
// Clean up the buffer
ob_end_clean();
// Add 'bbp_replace_the_content' filter back (@see $this::start())
add_filter('the_content', 'bbp_replace_the_content');
// No page so show the archive
} else {
$new_content = $bbp->shortcodes->display_topic_index();
}
// Single topic
} elseif (bbp_is_topic_edit()) {
// Split
if (bbp_is_topic_split()) {
ob_start();
bbp_get_template_part('form', 'topic-split');
$new_content = ob_get_contents();
ob_end_clean();
// Merge
} elseif (bbp_is_topic_merge()) {
ob_start();
bbp_get_template_part('form', 'topic-merge');
$new_content = ob_get_contents();
ob_end_clean();
// Edit
} else {
$new_content = $bbp->shortcodes->display_topic_form();
}
/** Replies ***********************************************************/
// Reply archive
//.........这里部分代码省略.........