Имам спешна нужда от помощ с един код.

Fozzy

Well-Known Member
Здравейте! Знаете, че не съм програмист, а тук ми трябва една спешна редакция на Wordpress код. Предполагам, че и без да сте запознати със системата ще разберете за какво става въпрос.

Та, имам следната структура в Уърдпрес:

Parent Page
* Child Page 1
- Child Child Page 1
- Child Child Page 2
- Child Child Page 3

Тоест, Parent ми е главната страница. Child Page 1 ми е подстраница на главната, а Child Child Page са подстраници на Child Page.

Имам един код, който показва в хедъра къде се намираш с линкове. Например ако си на Child Child Page 2, то той ще покаже:

Начало \ Child Page 1 \ Child Child Page 2

Сега проблема, искам направя нов код, който да ми показва вътрешните страници. Например ако си на Child Child Page (без значение коя), в едно меню отдясно да излиза:

-> Child Child Page 1
-> Child Child Page 2
-> Child Child Page 3

Да излизат всички страници, които са подстраници на основната.

Истинският код е:

Код:
function rt_breadcrumb(){
	global $taxonomy,$term_slug,$post,$delimiter;
	//Markup
	$delimiter=' \\ ';
	
	//Home Page
	_e('You are here: ', 'rt_theme');
	echo "<a href=\"". get_bloginfo('url') ."\" title=\"". get_bloginfo('name')."\">".__( 'Home', 'rt_theme' )."</a>";

	// page parents function
	function page_parents($parent_page_id,$child_pages){
		global $delimiter;

		$parent_page = get_page($parent_page_id);
		$page_parents = $delimiter."<a href=\"".get_permalink($parent_page->ID)."\" title=\"". get_the_title($parent_page->ID) ."\" >". get_the_title($parent_page->ID) ."</a>" .$child_pages;
 
		if ($parent_page->post_parent) page_parents($parent_page->post_parent,$page_parents);
		
		else echo $page_parents;

	}

По-надолу има следното, не знам дали е от значение:

Код:
//get start page
	function get_start_page($start_page){
		global $delimiter;
		
		//start page parents
		$get_start_page=get_page($start_page);
		if ($get_start_page -> post_parent){
			page_parents( $get_start_page -> post_parent,''); 
		}
		
		//start page
		if ($start_page) {
			echo  $delimiter."<a href=\"".get_permalink($start_page)."\" title=\"". get_the_title($start_page) ."\" >". get_the_title($start_page) ."</a>";
		}
	}

Аз направих някаква нова функция, но тя ми изкарва само страницата, на която се намирам, а не всички от подкатегорията:

Код:
/* RT-Breadcrumb Side Function */
function rt_breadcrumbside(){
	global $taxonomy,$term_slug,$post,$delimiter;
	
	// page parents function
		$child_page = get_page($child_page_id);
		$page_childs = $delimiter."<li><a href=\"".get_permalink($child_page->ID)."\" title=\"". get_the_title($child_page->ID) ."\" >". get_the_title($child_page->ID) ."</a></li>" .$child_pages;
 
		if ($child_page->post_child) page_child($child_page->post_child,$page_child);
		
		else echo $page_childs;

	} 
	
	// term parents function
	function term_parents($term_id,$child_terms){
		global $taxonomy,$delimiter;

		$parent_term = get_term_by('ID',$term_id, $taxonomy);
		$term_parents = $delimiter."<a href=\"".get_term_link($parent_term->slug,$taxonomy)."\" title=\"". $parent_term->name ."\" >". $parent_term->name ."</a>" .$child_terms;
		
		if ($parent_term->parent) term_parents($parent_term -> parent,$term_parents);
		
		else echo $term_parents;
	
	}

Any help will be appreciated, както се казва. Според мен някой, който разбира за 5 минутки ще го сглоби. Ако не е така, кажете, за да знам да плащам на някого.

Поздрави!
 
То си има функция за тази работа. Би трябвало това да ти свърши работа:

PHP:
wp_list_pages('child_of=ID_NA_STRANICATA&exclude=&title_li=');

или по конкретно нещо в този стил:

PHP:
if( is_page() ) {
  wp_list_pages('child_of='.get_the_ID().'&exclude=&title_li=');
}

или ти искаш всички със същия parent ?
 
От: Имам спешна нужда от помощ с един код.

Пробвай с това:

PHP:
<?php 

$Pages      = wp_list_pages('title_li=&echo=0&depth=1');
$InnerPages = wp_list_pages('child_of='.($post->post_parent != false ? $post->post_parent : $post->ID).'&title_li=&echo=0');
$Title      = ($post->post_parent != false) ? trim(get_the_title($post->post_parent)) : trim(wp_title('', false));
if($Title != '')
  $Pages      = str_replace($Title.'</a></li>',
                            $Title.'</a>'.
                            '<ul>'.$InnerPages.'</ul></li>',
                            $Pages);
echo $Pages;
unset($Pages, $InnerPages);

?>
 
Васко, нещо не мога да се ориентирам къде да сложа кода.

Тео, не бачка това, показва ми всички главни страници.

Най-лесно е да си го представите така. Имам менюта:

- Продукти
-- Маркови продукти
--- Дрехи
--- Обувки
--- Бельо
-- Евтини китайски боклуци
--- Палачинки
--- Джоджен
--- Джинджифил

Идеята е като си в страница "дрехи", да ти показва:

--- Дрехи
--- Обувки
--- Бельо

А когато си в "джинджифил" примерно:


--- Палачинки
--- Джоджен
--- Джинджифил

Дано ме разберете какво искам :)
 
От: Имам спешна нужда от помощ с един код.

хммм, тогава май ти трябва това:

PHP:
<?php
  if($post->post_parent) {
  $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0$sort_column=menu_order");
  $title_heading = get_the_title($post->post_parent);
  }
 
  else {
  $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
  $title_heading = get_the_title($post->ID);
  }
  if ($children) { ?>
 
  <h2> <? echo $title_heading ?> </h2>
  <ul>
  <?php echo $children; ?>
  </ul>
 
<?php } ?>

Би трябвало да ти показва нещата така:
Ако си в главната - да ти листва подстраниците, ако си в подстраница, да ти показва "съседите" от същия родител :)
 
МЕРСИ! Стана точно това, което ми трябваше. Ей тва, е като знаеп какво правиш е елементарно. Мерси много :)
 

Горе