PHP vraagje m.b.t. wordpress
28 oktober 2008 - 11:30   
geplaatst door: Duke
Beste,

Ik ben een site aan het maken voor een school en gebruik daar een cms voor (wordpress). Ik vind het een heel aardig systeem dat je behoorlijk kunt manipuleren op één ding na:
Als ik een pagina aanmaak verschijnt er automatisch een button in de navigatiebalk. Ik wil een aantal subpagina's aanmaken die daar niet verschijnen en via het Wordpressforum ben ik erachter gekomen dat ik dat met "exclude=...." moet doen. Ik zou in m'n header deze regel aan moeten passen:

<?php wp_list_pages('title_li=&depth=1&sort_column=menu_order'); ?>

naar dit:<?php wp_list_pages('title_li=&depth=1&sort_column=menu_order&exclude=2,3,74,72'); ?>

Aangezien die regel niet in m'n header stond moest ik deze vervangen:
<?php include (TEMPLATEPATH '/main-nav.php'); ?>
voor bovenstaande.
Vervolgens heb ik zelf uitgevonden hoe ik dan m'n homepage en m'n 404 er weer terug in moest hangen maar het werkt uiteindelijk niet. Hij laat alleen de prive-pagina 'Leerkrachten" niet zien terwijl dat wel de bedoeling is en de pagina "1a" laat hij wel zien terwijl dat niet moet.

Ik heb in beide documenten alle mogelijke aanpassingen uitgeprobeerd maar ik kom er niet uit en het wordpressforum zwijgt ook hier. Vandaar dat ik de vraag nu hier plaats in de hoop dat één van jullie macfreakers me kan helpen. Anders kan dit "mooie systeem" gewoon in de prullenbak.

Het moet in éen van deze documenten opgelost kunnen worden:
Header:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><title>
<?php<br>if (is_home()) {<br>echo bloginfo('name'); echo ": "; echo bloginfo('description');<br>} elseif (is_404()) {<br>echo '404 Not Found';<br>} elseif (is_category()) {<br>echo 'Topics:'wp_title('');<br>} elseif (is_search()) {<br>echo 'Search Results';<br>} elseif (is_day() || is_month() || is_year() ) {<br>echo 'Archives:'wp_title('');<br>} else {<br>echo wp_title('');<br>$subtitle get_post_meta($post->ID'Subtitle'$single true);<br>if($subtitle !== '') { echo ': ' $subtitle; }<br>} ?>
</title>
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
<meta name="robots" content="all" />
<meta name="generator" content="WordPress <?php bloginfo('version'); ?>" />
<meta http-equiv="author" content="Oleg" />
<meta http-equiv="contact" content="http://www.metamorphozis.com/contact/" />
<meta name="copyright" content="Copyright (c) 2005-<?php echo date("Y",time()); ?> Metamorphozis. All Rights Reserved." />
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="<?php bloginfo('rss2_url'); ?>" />
<link rel="alternate" type="text/xml" title="RSS .92" href="<?php bloginfo('rss_url'); ?>" />
<link rel="alternate" type="application/atom+xml" title="Atom 0.3" href="<?php bloginfo('atom_url'); ?>" />
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
<!--[if IE 7]>
<link href="<?php bloginfo('stylesheet_directory'); ?>/ie7_css.css" rel="stylesheet" type="text/css" />
<![endif]-->
<?php<br>/***Do not Edit it***/<br>wp_head(); <br>global $options;<br>foreach ($options as $value) <br>{<br>if (get_settings$value['id'] ) === FALSE) <br>{ <br>$$value['id'] = $value['std']; <br>}<br>else <br>{ <br>$$value['id'] = get_settings$value['id'] ); <br>} <br>} <br><br>global $link_privacy,$link_terms;<br>$link_privacy=$mt_ice_link_privacy;<br>$link_terms=$mt_ice_link_terms;<br>/*** End of Do not Edit Restriction***/<br>?>
</head>
<body>

<!-- start header -->
<div class="top">
<div class="header">
<div id="logo">
<h1><a href="<?php bloginfo('url'); ?>"><?php echo bloginfo('name'); ?></a></h1>
<h2><?php bloginfo('description'); ?></h2>
</div>
</div>
</div>
<div class="container">

<div class="navigation">
<?php include (TEMPLATEPATH '/main-nav.php'); ?>
<div class="clear"><span></span></div>
</div>
<!-- end header -->

main-nav:

<ul>
<!-- To show "current" on the home page -->
<li<?php if (is_home()) { echo " id=\"current\""; } ?>>
<a href="<?php bloginfo('url'); ?>" title="<?php _e('Home Page'); ?>"><span><?php _e('Home'); ?></span></a></li>

<?php <br>$pages $wpdb->get_results("SELECT post_name, post_title, ID FROM $wpdb->posts WHERE post_type='page' ");<br>$getTitle=trim(wp_title(' 'false));<br>$check=0;<br>foreach($pages as $page){ ?>
<?php <br>$getPageTitle=trim($page->post_title);<br>if($getTitle==$getPageTitle)<br>{$check=1;}<br>else<br>{$check=0;}<br>?>
<li>
<a <?php if($check==1)echo'id="mactive"' ?> href="<?php echo get_settings('home')."/?page_id=".($page->ID); ?>"><span class="mLink"><?php echo $page->post_title?></span>
<span class="m<?php echo $page->post_title?>"></span>
</a>
</li>
<?php ?>

</ul>
<!-- END MAIN-NAV.PHP -->

http://www.deratatouille.be/0testmap/wordpress

PHP vraagje m.b.t. wordpress
30 oktober 2008 - 10:56    reactie #1
geplaatst door: Armand
Ik begrijp dus dat de "exclude=.." oplossing niet werkt?

In dat geval zou je dus zelf zoiets moeten maken in de main-nav file op basis van de zelfde ID's. De ID's worden geselecteerd uit de database en daarom kun je dus, vlak voordat de menu wordt opgebouwd, deze ID's controleren.

Probeer eens:


<li>
<a <?php if($check==1)echo'id="mactive"' ?> href="<?php echo get_settings('home')."/?page_id=".($page->ID); ?>"><span class="mLink"><?php echo $page->post_title?></span>
<span class="m<?php echo $page->post_title?>"></span>
</a>
</li>
<?php ?>

te vervangen door :


<?php <br>$IDArray = array(237472); /* Lijst met ID die NIET getoond moeten worden => excluded */<br>if (!in_array($page->ID$IDArray) {<br>?>
<li>
<a <?php if($check==1)echo'id="mactive"' ?> href="<?php echo get_settings('home')."/?page_id=".($page->ID); ?>"><span class="mLink"><?php echo $page->post_title?></span>
<span class="m<?php echo $page->post_title?>"></span>
</a>
</li>
<?php } } ?>

Controleer even of de types en zo correct zijn.

Succes
- Armand

IMac 24 Inch, 2,4 Ghz, Wireless keyboard and Mighty Mouse
PHP vraagje m.b.t. wordpress
30 oktober 2008 - 11:23    reactie #2
geplaatst door: Duke
dank je Armand,

we zijn er bijna . Op deze regel geeft hij nog een fout: if (!in_array($page->ID, $IDArray) {

kan ik die nog aanpassen?

PHP vraagje m.b.t. wordpress
30 oktober 2008 - 11:43    reactie #3
geplaatst door: Armand
Wat is de foutmelding ?

- Armand

IMac 24 Inch, 2,4 Ghz, Wireless keyboard and Mighty Mouse
PHP vraagje m.b.t. wordpress
30 oktober 2008 - 11:45    reactie #4
geplaatst door: Duke
Parse error: syntax error, unexpected '{' in  ..... die regel dus
PHP vraagje m.b.t. wordpress
30 oktober 2008 - 12:22    reactie #5
geplaatst door: Armand
Aha, er moet een extra ) achter $IDArray

dus


if (!in_array($page->ID, $IDArray)) {

- Armand

IMac 24 Inch, 2,4 Ghz, Wireless keyboard and Mighty Mouse
PHP vraagje m.b.t. wordpress
30 oktober 2008 - 13:24    reactie #6
geplaatst door: Duke
Armand,

Je bent m'n held! het werkt.

Heel hartelijk dank dat je de moeite wilde nemen.

PHP vraagje m.b.t. wordpress
30 oktober 2008 - 16:00    reactie #7
geplaatst door: Armand
Graag gedaan ...
IMac 24 Inch, 2,4 Ghz, Wireless keyboard and Mighty Mouse