Wordpress тема - PullRequest
       8

Wordpress тема

0 голосов
/ 23 августа 2011

Я бы хотел, чтобы вы ознакомились с моим примером WordPress темы index.php.

<?php
/*
Template name: Homepage
*/
get_header();
?>
<?php

    if(isset($_GET['action'])):
        $action = $_GET['action'];
        switch($action){
            case "sendmail": include("sendmail.php"); break;
            case "mailsent" : include("thanks.php"); break;
        }
    else:
?>
    <!-------// Begin Content ---------->
    <?php if (have_posts()): ?>
    <?php while(have_posts()): the_post(); ?>
        <tr>
            <td class="contentarea">
                <h1><?php the_title(); ?></h1>
                <p> <?php the_content(); ?></p>
            </td>
        </tr>
    <?php endwhile; ?>
    <?php else: ?>
        <tr>
            <td class="contentarea">
                <h1>Page not Found!</h1>
                <p>Sorry, you are looking a page that is not here! </p>
                <?php get_search_form(); ?>
            </td>
        </tr>
    <?php endif; ?> 
        <!-------// End Content ----------> 
        <tr>
        <!--begin contact form -->  
            <td class="contactarea" height="200">
                <?php include("contact_area.php"); ?>
            </td>
        <!--end contact form -->     
        </tr>
<?php endif;?>
<?php get_footer(); ?

Я хочу превратить свой оператор if выше как функцию, но я не знаю как:

        if(action_is_set()){
            then_do_the_action();
        }else {
            //begin content..etc.
        }

Есть ли лучшая структура моего кода выше ?? Я все еще изучаю как PHP, так и Wordpress.Пожалуйста, пожалуйста, помогите.Спасибо !!.

Ответы [ 2 ]

1 голос
/ 23 августа 2011

Не думаю, что стоит создать функцию action_is_set ().

В итоге вы получите:

function action_is_set() {
    return isset($_GET['action']);
}

Перемещение вашего переключателя на функцию внутри functions.php может быть полезным, однако.

Это будет выглядеть примерно так:

function do_action() {
    switch($_GET['action']) {
        case 'sendmail':
            include('sendmail.php');
            break;
    }
}

Или вы можете сделать эту текущую страницу полностью модульной, переместив раздел содержимого в новый включаемый файл:

<?php
get_header();

switch($_GET['action']) {
    case 'sendmail':
        include('sendmail.php');
        break;
    case 'mailsent':
        include('thanks.php');
        break;
    default:
        include('content.php');
}

get_footer();
?>

Я не знаю, как это сочетается с лучшими практиками для WordPress, но хорошей практикой является использование случая переключения по умолчанию, особенно в сценарии, где он ничего не будет делать, если, например, они перейдут на yourdomain.com /? действие = л

Правило большого пальца. Никогда не ожидайте, что они будут использовать его по назначению; всегда предполагайте, что кто-то попытается взломать ваш код.

1 голос
/ 23 августа 2011

Вы можете написать функцию в functions.php под темой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...