我有一大堆页面(第1页)需要显示特定的导航栏,还有第二大页面集(第2页)需要显示不同的导航栏。
我尝试使用各种jQuery来识别URL是否包含某个单词,如果确实包含该单词,则显示相应的导航栏-但没有成功。
下面是我尝试过的jQuery。
<script>
if(strpos($url ,'page1/') !== FALSE) {
echo '#page1-navigation-bar';
}
if(strpos($url ,'page2/') !== FALSE){
echo '#page2-navigation-bar';
}
</script>
这没有效果,我不确定这是否是因为编码错误,我在错误的位置输入了编码,我需要做一些其他事情,除了编码之外,还要结合其他所有内容。
还不确定在显示另一个时是否会隐藏一个?
请通过说明所需的任何代码以及确切在何处进行输入来提供帮助。
谢谢, 迈克尔
答案 0 :(得分:0)
也许可以在PHP中这样尝试:
<?php
$page = array("page1/" /*, "page2/", "page3/", "all other pages" */ );
if(in_array(strpos($url, $page))
{echo '#page1-navigation-bar';}
else
{echo '#page2-navigation-bar';}
?>
答案 1 :(得分:0)
有两种方法可以解决此问题。您可以按照WebSon的建议进行操作,但是可以采用其他方法,可以通过页面模板进行操作,也可以使用自定义帖子元数据进行操作。现在注意,当您使用“ ID”做某事时,建议您使用wp_nav_menu()
更改显示的导航。
<?php
$first_array = [ 'page1', 'page3', 'page5' ];
$second_array = [ 'page2', 'page4', 'page6' ];
$wp_nav_args = [ //your default args ];
if ( is_page($first_array ) ) {
// Change the entire array or parts of it.
$wp_nav_args = [];
}
elseif ( is_page($second_array) ) {
// Change the entire array or parts of it.
$wp_nav_args = [];
}
wp_nav_menu($wp_nav_args);
<?php
$wp_nav_args = [ //your default args ];
if ( is_page_template('template-menu-a') ) {
// Change the entire array or parts of it.
$wp_nav_args = [];
}
elseif ( is_page_template('template-menu-b') {
// Change the entire array or parts of it.
$wp_nav_args = [];
}
wp_nav_menu($wp_nav_args);
只想分享这种方式,因为您还可以通过创建自定义帖子元将其用于其他一些事情。此示例在“更新/发布”框中显示一个复选框。
<?php
function add_custom_meta_field() {
$post_id = get_the_ID();
if ( get_post_type( $post_id ) !== 'page' ) {
return;
}
$value = get_post_meta( $post_id, '_navigation_b', true );
?>
<div class="misc-pub-section misc-pub-section-last">
<input type="checkbox" value="1" <?php checked( $value, true, true ); ?> name="_navigation_b" id="_navigation_b" /><label for="_navigation_b"><?php _e( 'Add To Your Calendar Icons', 'navy' ); ?></label>
</div>
<?php
}
add_action( 'post_submitbox_misc_actions', 'add_custom_meta_field' );
function save_custom_meta_field() {
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
return;
}
if ( ! current_user_can( 'edit_post', $post_id ) ) {
return;
}
if ( isset( $_POST['_navigation_b'] ) ) {
update_post_meta( $post_id, '_navigation_b', $_POST['_navigation_b'] );
} else {
delete_post_meta( $post_id, '_navigation_b' );
}
}
add_action( 'save_post', 'save_custom_meta_field' );