โลโก้ WordPress แบบกำหนดเองพร้อมรูปภาพเริ่มต้น/ทางเลือก

ฉันกำลังพยายามใช้คุณลักษณะโลโก้ที่กำหนดเองใหม่ของ WordPress เพื่อทำสิ่งต่อไปนี้:

  • แสดงโลโก้เริ่มต้น/ทางเลือก
  • หากเวอร์ชัน WordPress รองรับโลโก้ที่กำหนดเอง ให้ผู้ใช้สามารถแทนที่โลโก้เริ่มต้น/โลโก้สำรองด้วยโลโก้ที่กำหนดเองในเครื่องมือปรับแต่ง
  • หากเวอร์ชัน WordPress ไม่รองรับโลโก้ที่กำหนดเองหรือไม่ได้ตั้งค่าโลโก้ที่กำหนดเอง (หรือถูกลบออก) ให้แสดงโลโก้เริ่มต้น/โลโก้สำรอง

จนถึงตอนนี้ นี่คือโค้ดที่ดีที่สุดที่ฉันต้องใช้งาน:

<?php if ( function_exists( 'the_custom_logo' ) ) : ?>
    <?php if ( has_custom_logo() ) : ?>
        <?php the_custom_logo(); ?>
    <?php else : ?> 
        <h1 class="site-title"><a href="/th<?php echo esc_url( home_url( '/' ) ); ?>" rel="home" title="<?php bloginfo( 'name' ); ?>"><img src="<?php echo get_stylesheet_directory_uri(); ?>/images/logo.png" alt="<?php bloginfo( 'name' ); ?>" width="100" height="50" /></a></h1>
    <?php endif; ?>
<?php else : ?> 
    <h1 class="site-title"><a href="/th<?php echo esc_url( home_url( '/' ) ); ?>" rel="home" title="<?php bloginfo( 'name' ); ?>"><img src="<?php echo get_stylesheet_directory_uri(); ?>/images/logo.png" alt="<?php bloginfo( 'name' ); ?>" width="100" height="50" /></a></h1>
<?php endif; ?>

มีวิธีที่สะอาดกว่าหรือมีประสิทธิภาพมากกว่านี้ในการทำเช่นนี้โดยไม่ต้องทำซ้ำโค้ดสำหรับรูปภาพทางเลือกสองครั้งหรือไม่


person Troy Templeman    schedule 16.11.2016    source แหล่งที่มา


คำตอบ (2)


ขอบคุณ แต่ฉันคิดว่าฉันพบวิธีแก้ปัญหาที่ดีกว่า:

<?php if ( function_exists( 'the_custom_logo' ) && has_custom_logo() ) : ?>
    <?php the_custom_logo(); ?>
<?php else : ?> 
    <h1 class="site-title"><a href="/th<?php echo esc_url( home_url( '/' ) ); ?>" rel="home" title="<?php bloginfo( 'name' ); ?>"><img src="<?php echo get_stylesheet_directory_uri(); ?>/images/logo.png" alt="<?php bloginfo( 'name' ); ?>" width="100" height="50" /></a></h1>
<?php endif; ?>
person Troy Templeman    schedule 16.11.2016

คุณสามารถทดสอบทั้ง function_exist() และ has_custom_logo() ในเงื่อนไข if เดียวกันเพื่อรับเงื่อนไข else เดียว

$logo = ( ( function_exists( 'the_custom_logo' ) ) && ( has_custom_logo() ) ) ? the_custom_logo() : null;
if ($logo) {
    echo $logo;
} else {
    echo '<h1 class="site-title"><a href="/th' . esc_url( home_url( '/' ) ) . '" rel="home" title="' . bloginfo( 'name' ) . '"><img src="' . get_stylesheet_directory_uri() . '/images/logo.png" alt="' . bloginfo( 'name' ) . '" width="100" height="50" /></a></h1>';
}
person Antoine Subit    schedule 16.11.2016