So stellen Sie den Stil mit wp_enqueue_style () in die Warteschlange

9

Ich entwickle ein Thema. Ich habe die Codes (unten) in die hinzugefügt header.php. Aber ich habe es in das WP-Theme-Repository gestellt und es wird überprüft, und der Rezensent hat mich informiert, den Stil mit wp_enqueue_style()/ in die Warteschlange zu stellen wp_enqueue_script(). Kann aber nicht verstehen, wie man es mit der Funktion implementiert. Ich habe die Anweisungen wp_enqueue_style();im Codex gesehen, kann aber nicht verstehen, wie man die ganze Reihe von Codes mit ihren Bedingungen verbindet.

<style type="text/css">
<?php
// If the menu presents, then CSS loads

if ( has_nav_menu( 'secondary' ) ) {
?>
.sec-menu{
width: 100%;
background: #333;
height: 26px;
font-size:16px;
text-transform:uppercase;
}
<?php } ?>
<?php
if ( has_nav_menu( 'primary' ) ) {
?>
#access{
background-color: #333;
height: 26px;
}
<?php } ?>
<?php
if ( !has_nav_menu( 'primary' ) && !has_nav_menu( 'secondary' ) ) {
?>
.sec-menu,
#access{
border-bottom: 2px solid #333;
}
<?php } ?>
</style>
  • WIE MAN?
Mayeenul Islam
quelle

Antworten:

16

Folgendes könnten Sie tun:

1 - Legen Sie das CSS in einer separaten Datei ab und speichern Sie es in Ihrem Themenverzeichnis.
2 - Fügen Sie den folgenden Code hinzu functions php:

function wpse_89494_enqueue_scripts() {
  if ( has_nav_menu( 'secondary' ) ) {
    wp_enqueue_style( 
      'wpse_89494_style_1', 
      get_template_directory_uri() . '/your-style_1.css' 
    );
  }
  if ( has_nav_menu( 'primary' ) ) {
    wp_enqueue_style( 
      'wpse_89494_style_2', 
      get_template_directory_uri() . '/your-style_2.css' 
    );
  }
  if ( ! has_nav_menu( 'primary' ) && ! has_nav_menu( 'secondary' ) ) {
    wp_enqueue_style( 
      'wpse_89494_style_3', 
      get_template_directory_uri() . '/your-style_3.css' 
    );
  }
}

add_action( 'wp_enqueue_scripts', 'wpse_89494_enqueue_scripts' );
Mike Madern
quelle
1
Warum nicht die Bedingungen in den wp_enqueue_scriptsRückruf einfügen? Nichts davon muss in den Dokumentenkopf gelangen.
Chip Bennett
1
Daran habe ich nicht gedacht, eine Bearbeitung ist unterwegs
Mike Madern
+1. Ich habe bearbeitet, um get_bloginfo( 'stylesheet_directory' )durch zu ersetzen get_template_directory_uri(). Verweise auf das Stylesheet- Verzeichnis sollten für untergeordnete Themen reserviert werden.
Chip Bennett
Schön und gut. Es hat mich hier gelöst. Danke Mike. Ich werde diesen Thread in Codex hinzufügen , inshALLAH. Vielen Dank.
Mayeenul Islam
1

Hinzufügen einer zweiten style.cssDatei für Kategorieseitenarchive.

add_action( 'wp_enqueue_scripts', 'wpsites_second_style_sheet' );
function wpsites_second_style_sheet() {
    if ( is_category() ) {
       wp_register_style( 'second-style', get_template_directory_uri() .'css/second-style.css', array(), '20130608');
       wp_enqueue_style( 'second-style' );    
    }    
}
Brad Dalton
quelle