Как да махна менюто от конкретни странци на Wordpress сайт?

lowriderzzz

Well-Known Member
Здрасти!

От известно време се правя на уеб дизайнер (да това е точната дума "правя се", защото не мисля, ч съм) и се опитвам да махна менюто от определени landing страници на сайта ми. Като например ТАЗИ:

Задавам команда в style.css файла

.page-id-2102 #nav-topbar .nav-container {

display: none !important;
}


... но става.

А това че му забранявам точно тези двете (#nav-topbar .nav-container) го проверих с inspect element функцията на хрома.

Най-вероятно обаче нещо пропускам.

Някой да ме насочи ако може и ако има идея кое ми утърва...

Подрави!
 
.full-width #nav-topbar.nav-container {
display: none;
}


Пробвах го, гледам че се скри. Не схващам при теб какво става? Ти си на WordPress още повече. Там не се иска CSS, можеш да си махнеш менюто от самите настройки, ако темата позволява, а повечето позволяват. А ако не, сигурно и плъгини има такива.
 
.full-width #nav-topbar.nav-container {
display: none;
}


Пробвах го, гледам че се скри. Не схващам при теб какво става? Ти си на WordPress още повече. Там не се иска CSS, можеш да си махнеш менюто от самите настройки, ако темата позволява, а повечето позволяват. А ако не, сигурно и плъгини има такива.

С директно въвеждане на команда чрез inspect element и при мен става. Но става като го едитна в style.css файла не го прилага. На WP съм да, но темата не позволява да се маха менюто от определени страници, а плъг-ини излшни не ми се слагат, за да не се товари сайта.

Иначе ето как е в style.css файла -> СКРИЙН ШОТ

Други атрибути като заглавие и т.н. които съм забранил по същия начин ги премахва, но за менюто някак не иска и не знам защо...
 
Пробвай с !important таг, виж дали не си сгрешил id-то на страницата, и ако пак не стане, пробвай да оставиш само .page-id*** .nav-container.

Така само можем да гадаем. Нещо си пропуснал.
 
Правилният начин

Дъщерна тема.

копираш от оригиналната тема page.php в дъщерната като page_without_nav.php
трябва да имаш нещо от сорта на това според темата
сменяш get_header() с get_header('nonav');
PHP:
<?php
/* Template Name: No navigation Page */

/**
 * The template for displaying pages without menu.
*
*/

get_header('nonav'); ?>

    <?php while ( have_posts() ) : the_post(); ?>

        <?php get_template_part( 'content', 'page' ); ?>

        <?php
            // If comments are open or we have at least one comment, load up the comment template
            if ( comments_open() || '0' != get_comments_number() )
                comments_template();
        ?>

    <?php endwhile; // end of the loop. ?>

<?php get_footer(); ?>
копираш от оригиналната тема header.php в дъщерната като header-nonav.php
и в него изтриваш менюто

Сменяш си темплейта на страниците и си свиркаш.

PS за 11 години във форума да беше понаучил нещо
 
Правилният начин

Дъщерна тема.

копираш от оригиналната тема page.php в дъщерната като page_without_nav.php
трябва да имаш нещо от сорта на това според темата
сменяш get_header() с get_header('nonav');
PHP:
<?php
/* Template Name: No navigation Page */

/**
 * The template for displaying pages without menu.
*
*/

get_header('nonav'); ?>

    <?php while ( have_posts() ) : the_post(); ?>

        <?php get_template_part( 'content', 'page' ); ?>

        <?php
            // If comments are open or we have at least one comment, load up the comment template
            if ( comments_open() || '0' != get_comments_number() )
                comments_template();
        ?>

    <?php endwhile; // end of the loop. ?>

<?php get_footer(); ?>
копираш от оригиналната тема header.php в дъщерната като header-nonav.php
и в него изтриваш менюто

Сменяш си темплейта на страниците и си свиркаш.

PS за 11 години във форума да беше понаучил нещо


Това за конкретни страници ли ще го премахне или за всички наведнъж?

ПС:
PS за 11 години във форума да беше понаучил нещо
Това най-ме изкефи. И преди 3 години като бях постнал нещо пак ме хокаше, че за 8 години нищо не съм бил научил. Да видим след 5-10-20 години дали ще е така още. :D :D
 
А ти още не си пробвал, значи? Той за какво ти даде фикс, да го хокаш ли? При положение че ти дава фикс, просто млъкни и благодари.
 
А ти още не си пробвал, значи? Той за какво ти даде фикс, да го хокаш ли? При положение че ти дава фикс, просто млъкни и благодари.

Не го хокам. И не съм го пробвал, защото честно казано не разбирам php и ако объркам нещо по файла, после не знам как да го оправя.
Казах не съм много по програмистката част.
 
Не го хокам. И не съм го пробвал, защото честно казано не разбирам php и ако объркам нещо по файла, после не знам как да го оправя.
Казах не съм много по програмистката част.
Нямаш ли бекъп? Добре е да се прави бекъп поне веднъж на седмица, или веднъж на 2 дни ако се публикува по много. Ако нямаш бекъп копие на сайта, за какво изобщо се занимаваш да поддържаш сайт. Това е все едно да си караш колата без ключалка; да я оставяш отключена вечер. Лудост. Лудост.
 
Нямаш ли бекъп? Добре е да се прави бекъп поне веднъж на седмица, или веднъж на 2 дни ако се публикува по много. Ако нямаш бекъп копие на сайта, за какво изобщо се занимаваш да поддържаш сайт. Това е все едно да си караш колата без ключалка; да я оставяш отключена вечер. Лудост. Лудост.

Прав си! Иначе имам бекъп - веднъж месечно, съм го настройл с cron jobs през С-panela да архивира и сейва всичко. Не е на толкова често колкото препоръчаваш, защото не поставам много съдържание (все още) толкова често, но по-скоро защото всяко съдържание (предимно статии) си и съхранявам на компа или на Google Drive освен на сайта. А най-трудоемкото е създаването на съдържание.

Относно по темата и защо не изпробвам подхода на колегата, тук съм на принципа, като не разбирам не пипам, че да не стане по зле и честно да ти кажа ако започна да се ровя във файловете и оплескам нещо, после ще трябва да си губя времето да възстановявам файла или целия бек-ъп и ако нещо не направя както трябва още повече ще си скубя косите.

Най-вероятно е много просто - сигурно просто трябва да пейстна файла и готово. Ще видя - тези дни може да го пробвам на някой съб домейн, че ако се оплеска нещо да не боли.

Лека вечер и мерси за насоката!
 
защото честно казано не разбирам php и ако объркам нещо по файла, после не знам как да го оправя.
Нали за това е дъщерната тема. Ако чак толкова се осереш просто включваш оригиналната.
 
Добре! Пробвах със съвета, който даваш по-горе, но не мога да разбера последната част...

копираш от оригиналната тема header.php в дъщерната като header-nonav.php
и в него изтриваш менюто???

Сменяш си темплейта??? на страниците и си свиркаш.

Кое меню изтривам от файла и къде да го търся и после кой темплейт сменям.

header.php файла ми представлява това:


Код:
<!DOCTYPE html>
<html class="no-js" <?php language_attributes(); ?>>
<head>
  <meta charset="<?php bloginfo('charset'); ?>">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="profile" href="<?php echo esc_url( 'gmpg.org/xfn/11' ); ?>">
  <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">

  <?php wp_head(); ?>
        
</head>

<body <?php body_class(); ?>>

<div id="wrapper">

  <?php do_action('__before_header') ; ?>

  <?php hu_get_template_part('parts/header-main'); ?>

  <?php do_action('__after_header') ; ?>

  <div class="container" id="page">
    <div class="container-inner">
      <?php do_action('__before_main') ; ?>
      <div class="main">
        <div class="main-inner group">
          <?php do_action('__before_content') ; ?>

Това е което е в header.php файла. Кое точно трябва да изтрия от тук? После кой темплейт трябва да сменя?

Иначе копирах и преименувах файловете в дъщерната дема както каза и смених get_header() с get_header('nonav'); в page_without_nav.php файла
 
В темата ти е надробено. Рови тук parts/header-main
 
В темата ти е надробено. Рови тук parts/header-main

Значи намерих го header-main.php

Ето това представлява като код:

Код:
<?php
    //Model definition
    //MENUS
    $class_map = array(
        'main_menu'   => 'main-menu-mobile-on',
        'top_menu'    => 'top-menu-mobile-on',
        'mobile_menu' => 'specific-mobile-menu-on',
        'both_menus'  => 'both-menus-mobile-on'
    );
    $mobile_menu_opt = hu_get_option( 'header_mobile_menu_layout' );
    $mobile_menu_class = array_key_exists( $mobile_menu_opt, $class_map ) ? $class_map[ $mobile_menu_opt ] : 'main-menu-mobile-on';

    //HEADER IMAGE
    $_header_img_src = get_header_image();// hu_get_img_src_from_option('header-image');
    $_has_header_img = false != $_header_img_src && ! empty( $_header_img_src );
    $_print_header_img = $_has_header_img && hu_is_checked( 'use-header-image' );

    //WHEN DO WE DISPLAY THE REGULAR TOP NAV
    //=> when there's a topbar menu assigned or when the default page menu option "default-menu-header" is checked ( not for multisite @see issue on github )
    //@see hu_is_topbar_displayed() in init-functions.php

    //WHEN DO WE DISPLAY THE HEADER NAV ?
    // => when there's a header menu assigned or when the fallback callback function is set ( with a filter, used in prevdem scenario typically )
    //@see hu_is_header_nav_displayed() in init-functions.php
    //( ! wp_is_mobile() && hu_has_nav_menu( 'header' ) ) || in_array( $mobile_menu_opt, array( 'main_menu', 'both_menus' ) )

    //HEADER CSS CLASSES
    $header_classes = array(
        $mobile_menu_class,
        'both_menus' == $mobile_menu_opt ? 'two-mobile-menus' : 'one-mobile-menu',
        hu_get_option( 'header_mobile_menu_layout' ),
        hu_is_checked( 'header-ads-desktop' ) ? 'header-ads-desktop' : '',
        hu_is_checked( 'header-ads-mobile' ) ? 'header-ads-mobile' : '',
        hu_is_checked( 'transparent-fixed-topnav') ? 'topbar-transparent' : '',
        $_print_header_img ? 'has-header-img' : 'no-header-img'
    );

?>
<header id="header" class="<?php echo apply_filters( 'hu_header_classes', implode(' ', $header_classes ) ); ?>">
  <?php if ( 'both_menus' != $mobile_menu_opt ) : //if both menus is the user option, we won't use the mobile navigation ?>
      <?php get_template_part('parts/header-nav-mobile'); ?>
  <?php endif; ?>

  <?php if ( hu_is_topbar_displayed() ) : ?>
      <?php get_template_part( 'parts/header-nav-topbar' ); ?>
  <?php endif; ?>

  <div class="container group">
    <?php do_action('__before_after_container_inner'); ?>
    <div class="container-inner">

      <?php if ( ! $_print_header_img ) : ?>
              <div class="group pad central-header-zone">
                  <div class="logo-tagline-group">
                      <?php hu_print_logo_or_title();//gets the logo or the site title ?>
                      <?php if ( hu_is_checked('site-description') ) : ?>
                          <p class="site-description"><?php hu_render_blog_description() ?></p>
                      <?php endif; ?>
                  </div>

                  <?php if ( hu_is_checked('header-ads') ) : ?>
                      <div id="header-widgets">
                          <?php hu_print_widgets_in_location( 'header-ads' ); ?>
                      </div><!--/#header-ads-->
                  <?php endif; ?>
              </div>
      <?php else :  ?>
          <div id="header-image-wrap">
              <div class="group pad central-header-zone">
                  <?php if ( hu_is_checked( 'logo-title-on-header-image' ) ) : ?>
                      <div class="logo-tagline-group">
                          <?php hu_print_logo_or_title();//gets the logo or the site title ?>
                          <?php if ( hu_is_checked('site-description') ) : ?>
                              <p class="site-description"><?php hu_render_blog_description() ?></p>
                          <?php endif; ?>
                      </div>
                  <?php endif; ?>
                  <?php if ( hu_is_checked('header-ads') ) : ?>
                      <div id="header-widgets">
                          <?php hu_print_widgets_in_location( 'header-ads' ); ?>
                      </div><!--/#header-ads-->
                  <?php endif; ?>
              </div>

              <?php hu_render_header_image( $_header_img_src ); ?>
          </div>
      <?php endif; ?>

      <?php if ( hu_is_header_nav_displayed() ) : ?>
          <?php get_template_part('parts/header-nav-main'); ?>
      <?php endif; ?>

    </div><!--/.container-inner-->
    <?php do_action('__header_after_container_inner'); ?>
  </div><!--/.container-->

</header><!--/#header-->

И от тука, кое точно трябва да изтрия?

Първо обаче правилно ли съм разбрал - да копирам този файл (header-main.php) в дъщерната тема така ли? И да го преименувам на header-nonav.php, така ли?
 
в hader-nonav
PHP:
<?php hu_get_template_part('parts/header-main); ?>
става
PHP:
<?php hu_get_template_part('parts/header-main-nonav', 'nonav'); ?>

в parts/header-main-nonav махаш тези редове
PHP:
<?php if ( hu_is_header_nav_displayed() ) : ?>
          <?php get_template_part('parts/header-nav-main'); ?>
<?php endif; ?>

и палиш една свещ тяхната функция hu_get_template_part да работи като оригиналната get_template_part
 
в hader-nonav
PHP:
<?php hu_get_template_part('parts/header-main); ?>
става
PHP:
<?php hu_get_template_part('parts/header-main-nonav', 'nonav'); ?>

в parts/header-main-nonav махаш тези редове
PHP:
<?php if ( hu_is_header_nav_displayed() ) : ?>
          <?php get_template_part('parts/header-nav-main'); ?>
<?php endif; ?>

и палиш една свещ тяхната функция hu_get_template_part да работи като оригиналната get_template_part

Мисля, че ще се справя. Ще пробвам и ще докладвам какво е станало. Не ми е ясно обаче, къде да отбележа точно на кои страници не искам да се появява менюто. Не искам да го махам от целия сайт, ами само от определени странци.
 
Не ми е ясно обаче, къде да отбележа точно на кои страници не искам да се появява менюто.
Влизаш да си редактираш страниците. Page Attributes -> Template избираш новия темплейт.
PHP:
<?php
/* Template Name: No navigation Page */
 
в hader-nonav
PHP:
<?php hu_get_template_part('parts/header-main); ?>
става
PHP:
<?php hu_get_template_part('parts/header-main-nonav', 'nonav'); ?>

в parts/header-main-nonav махаш тези редове
PHP:
<?php if ( hu_is_header_nav_displayed() ) : ?>
          <?php get_template_part('parts/header-nav-main'); ?>
<?php endif; ?>

и палиш една свещ тяхната функция hu_get_template_part да работи като оригиналната get_template_part

Този код трябва да го изтрия в оригиналната тема, а не в дъщерната така ли?
 
Всичко се прави в дъщерната
 

Горе