Heim  >  Artikel  >  Backend-Entwicklung  >  wp文本小工具运行php代码实现面包屑导航步骤

wp文本小工具运行php代码实现面包屑导航步骤

WBOY
WBOYOriginal
2016-06-23 13:19:241056Durchsuche

在wordpress中,很多主题都提供了很多小工具,其中很有用的一个小工具就是文本小工具。

下面说一下具体如何让文本小工具运行php代码来实现面包屑导航。

1.首先在主题下的function.php中要先添加面包屑导航函数

//添加面包屑导航function iaccepted_breadcrumbs() {  $delimiter = '&raquo;';  $name = 'Home'; //text for the 'Home' link  $currentBefore = '<span>';  $currentAfter = '</span>';  if ( !is_home() && !is_front_page() || is_paged() ) {    echo '<div id="crumbs">';    global $post;    $home = get_bloginfo('url');    echo '<a href="' . $home . '"><font color=red>' . $name . '</font></a> ' . $delimiter . ' ';    if ( is_category() ) {      global $wp_query;      $cat_obj = $wp_query->get_queried_object();      $thisCat = $cat_obj->term_id;      $thisCat = get_category($thisCat);      $parentCat = get_category($thisCat->parent);      if ($thisCat->parent != 0) echo(get_category_parents($parentCat, TRUE, ' ' . $delimiter . ' '));      echo $currentBefore;      single_cat_title();      echo $currentAfter;    } elseif ( is_day() ) {      echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';      echo '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '">' . get_the_time('F') . '</a> ' . $delimiter . ' ';      echo $currentBefore . get_the_time('d') . $currentAfter;    } elseif ( is_month() ) {      echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';      echo $currentBefore . get_the_time('F') . $currentAfter;    } elseif ( is_year() ) {      echo $currentBefore . get_the_time('Y') . $currentAfter;    } elseif ( is_single() ) {      $cat = get_the_category(); $cat = $cat[0];      echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');      echo $currentBefore;      the_title();      echo $currentAfter;    } elseif ( is_page() && !$post->post_parent ) {      echo $currentBefore;      the_title();      echo $currentAfter;    } elseif ( is_page() && $post->post_parent ) {      $parent_id  = $post->post_parent;      $breadcrumbs = array();      while ($parent_id) {        $page = get_page($parent_id);        $breadcrumbs[] = '<a href="' . get_permalink($page->ID) . '">' . get_the_title($page->ID) . '</a>';        $parent_id  = $page->post_parent;      }      $breadcrumbs = array_reverse($breadcrumbs);      foreach ($breadcrumbs as $crumb) echo $crumb . ' ' . $delimiter . ' ';      echo $currentBefore;      the_title();      echo $currentAfter;    } elseif ( is_search() ) {      echo $currentBefore . get_search_query() . $currentAfter;    } elseif ( is_tag() ) {      echo $currentBefore;      single_tag_title();      echo $currentAfter;    } elseif ( is_author() ) {       global $author;      $userdata = get_userdata($author);      echo $currentBefore .' ' . $userdata->display_name . $currentAfter;    } elseif ( is_404() ) {      echo $currentBefore . 'Error 404' . $currentAfter;    }    if ( get_query_var('paged') ) {      if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';      echo __('Page') . ' ' . get_query_var('paged');      if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';    }    echo '</div>';  }}

2要让小工具能够运行php代码必须要现在主题下的functions.php中加入如下代码

//让小工具中可以嵌入php代码function php_text($text){	if (strpos($text, '<'.'?')!==false)	{		ob_start();		eval('?'.'>'.$text);		$text = ob_get_contents();		ob_end_clean();	}	return $text;}add_filter('widget_text', 'php_text', 90);

这个样就能保证文本小工具中可以嵌入php代码并能正常执行。

3.选择要加入导航的位置,放置一个文本小工具,然后标题不需要填,内容填写如下:

您现在的位置:<?php if (functions_exists('iaccepted_breadcrumbs')) iaccepted_breadcrumbs(); ?>

这样就完成了在文本小工具中运行php代码实现面包屑导航,具体效果可以看本文章上方的导航。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:关于initialize如何实现Nächster Artikel:PHP代码 小白