Vispārīgi (PHP)

Rakstot kodu pieturies pie vienota stila visā projektā, lai tas būtu viegli saprotams, salasāms un vienots.

Piemērs:

header.php failā masīvam tiek izmantots array(), bet functions.php failā []. Izmanto vienu, vai otru visā theme.

Izmantojot funkcijas, kas pieņem parametrus, tos parametrus, kas jau ir pēc noklusējuma neizmanto.

Piemēri:

Ja funkcijai pdg_language_switcher() pirmais parametrs ir "default" un otrais "code" pēc noklusējuma, tad:

<?php pdg_language_switcher( 'default', 'code' ); ?>
<?php pdg_language_switcher(); ?>

Rakstot savas funkcijas izmanto pdgc_ prefiksu, lai samazinātu iespējamību, ka rodas konflikts ar kāda cita spraudņa, vai WordPress funkcijām.

Piemērs:

function pdgc_get_random_int() {
    ...
}

Template failos PHP statementus rakstam katru savā rindā, lai kods ir salasāmāks.

Piemēri:

<?php
foreach ( $posts as $post ) {
?>
    <div>
        <h2>
            <?php
            echo $post->title;
            ?>
        </h2>
    </div>
<?php
}
?>
<?php if ( $query->have_posts() ): ?>
    <ul>
        <?php while ( $query->have_posts() ): $query->the_post(); ?>
            <li>
                <h2><?php the_title(); ?></h2>
            </li>
        <?php endwhile; wp_reset_postdata(); ?>
    </ul>
<?php endif; ?>
<?php foreach ( $posts as $post ): ?>
    <div>
        <h2><?php echo $post->title; ?></h2>
    </div>
<?php endforeach; ?>

Iegūstot rezultātus no datu bāzes, piemēram, izmantojot WP_Query, vai get_terms(), vienmēr pārbaudi rezultātu, pirms tas tiek tālāk izmantots, lai izvairītos no kļūdu paziņojumiem, vai crashiem produkcijas vidē.

Piemēri:

<?php
$query = new WP_Query( [
    'post_type' => 'apartment',
    'posts_per_page' => -1
] );

while ( $query->have_posts() ): $query->the_post(); ?>
    ...
<?php endwhile; ?>
<?php
$terms = get_terms( [
    'taxonomy' => 'apartment_floor',
    'hide_empty' => false
] );

foreach ( $terms as $term ): ?>
    ...
<?php endforeach; ?>
<?php
$query = new WP_Query( [
    'post_type' => 'apartment',
    'posts_per_page' => -1
] );

if ( $query->have_posts() ): ?>
    ...
<?php endif; ?>
<?php
$terms = get_terms( [
    'taxonomy' => 'apartment_floor',
    'hide_empty' => false
] );

if ( ! is_wp_error( $terms ) && $terms ): ?>
    ...
<?php endif; ?>

Rakstot kodu lapas saturam, vai blokam izvadi to tikai, kad pārbaudīts, vai saturs vispār ir pieejams. Tas vajadzīgs, lai nerādās lieki elementi, ja piemēram netika atrasts neviens posts. Ņem vērā, ka ir vietas, kur loģiskāk būtu izvadīt tekstu, kas paziņo lietotājam, ka nekas netika atrasts.

Piemēri:

<div class="news">
    <?php if ( $query->have_posts() ): ?>
        ...
    <?php endif; ?>
</div>
<?php if ( $query->have_posts() ): ?>
    <div class="news">
        ...
    </div>
<?php endif; ?>