Section Background Images?

时间:2016-11-05 作者:Paul Boos

第一次在这里张贴海报。。。我正在与一位朋友在托管的Wordpress网站上创建一个新网站。它将把每一篇博文分为4个“部分”(我们将它们命名为:荆棘、荆棘、小径、水果)。我们希望每个部分都有一个背景图像(由图像和标题标题分隔)。

所以我的问题有两个方面——首先,是否有一些主题支持这一点?或者这是我可以在管理控制台中执行的操作?(如果是这样,我想我还没有看到它,所以如果有人能指给我看,请告诉我。)如果主题有站点地图和滑动侧菜单,则可获得额外积分。

作为参考,我看了这篇文章,但这似乎更多的是关于开发/设计一个主题。changing Specific section background image in wordpress

我更感兴趣的是选择和配置一个主题来实现这一点。我对开发不感兴趣。

提前感谢!保罗

1 个回复
SO网友:jgraup

您需要修改主题页以支持此更改。如果你已经有了一个背景,你可以在每篇文章的基础上使用该文章中描述的技术对其进行修改。

此插件Custom CSS per post in WordPress 是设置每页自定义css的一个很好的示例。

这个pro 为此,您可以将所需的CSS标记复制/粘贴到所有要调整的页面。假设有一个背景图像,那么你的努力程度是最小的。

这个con 跟上变化意味着在将来调整单个页面上的CSS。

另一种方法是创建自定义元盒,为您提供所需节类型的选择器。

<?php

// Register your Meta Box

function add_theme_section_meta_box() {
    add_meta_box(
            \'theme_section_meta_box\',          // $id
            \'Theme Section\',                   // $title
            \'show_theme_section_meta_box\',     // $callback
            \'post\',                            // $page
            \'normal\',                          // $context
            \'high\' );
}

add_action( "add_meta_boxes", "add_theme_section_meta_box" );

// Render the meta box on the edit page

function show_theme_section_meta_box( $post ) {
    $meta = get_post_meta( $post->ID, \'theme_section\', true );
    if ( ! $meta || $meta === 0 ) {
        $meta = false;
    }
    wp_nonce_field( basename( __FILE__ ), "theme-section-meta-box-nonce" );
    $sections = array (
            0         => \'None\',
            \'bramble\' => \'Bramble\',
            \'thorns\'  => \'Thorns\',
            \'paths\'   => \'Paths\',
            \'fruit\'   => \'Fruit\',
    );
    ?>
    <table class="form-table">
        <tr>
            <th><label for="theme_section">Section</label></th>
            <td>
                <select name="theme_section" id="theme_section">
                    <?php foreach ( $sections as $section => $sectionTitle ) {
                        $selected = $meta === $section;
                        printf( "<option %s value=\'%s\'>%s</option>", $selected ? \'selected\' : \'\', $section, $sectionTitle );
                    }
                    ?>
                </select>
            </td>

        </tr>
    </table>
    <?php
}

// Save the meta when saving a post

function save_theme_section( $post_id, $post, $update ) {
    if ( ! isset( $_POST[ "theme-section-meta-box-nonce" ] ) || ! wp_verify_nonce( $_POST[ "theme-section-meta-box-nonce" ], basename( __FILE__ ) ) ) {
        return $post_id;
    }

    if ( ! current_user_can( "edit_post", $post_id ) ) {
        return $post_id;
    }

    if ( defined( "DOING_AUTOSAVE" ) && DOING_AUTOSAVE ) {
        return $post_id;
    }

    $slug = "post";
    if ( $slug != $post->post_type ) {
        return $post_id;
    }

    $theme_section = \'\';
    if ( isset( $_POST[ "theme_section" ] ) ) {
        $theme_section = $_POST[ "theme_section" ];
    }
    update_post_meta( $post_id, "theme_section", $theme_section );
}

add_action( "save_post", "save_theme_section", 10, 3 );
然后,当您想要显示背景时,只需检查您正在查看的页面是否具有该设置,并决定如何处理该设置。

$theme_section = get_post_meta( get_queried_object_id(), \'theme_section\', true );

if ( $theme_section && $theme_section !== 0 ) {

    switch ($theme_section){

        case \'bramble\':
            // ...
            break;
        case \'thorns\':
            // ...
            break;
        case \'paths\':
            // ...
            break;
        case \'fruit\':
            // ...
            break;
    }
}
第三种方法是Term Meta 这类似于的自定义字段categories. 然后,您可以在那里为自定义分类法指定详细信息,如要使用的图像。

看起来可能有一个插件-WP Term Images

相关推荐

About wordpress child themes

我对WordPress和儿童主题有一些问题。据我所知,如果我不想在更新主题时失去任何东西,使用子主题是很重要的。我是WordPress的初学者,到目前为止,我一直在使用PageBuilder(管理面板上的板载自定义选项)自定义我的网站,并在“附加CSS”选项中加入几行CSS。所有这些都是在主主题上完成的(只是玩转尝试学习),现在我想开始使用一个儿童主题。问题如下:我不知道我是否可以像通过管理界面设计父主题那样设计我的子主题,或者我是否必须通过文本编辑器(在我的计算机上,然后通过FTP等方式上传)对所有内容