如何在前端显示/隐藏Wordpress帖子描述或任何其他字段

时间:2015-04-27 08:13:26

标签: wordpress field frontend

如何通过复选框控制单个帖子字段中是否显示在前端/末端 - 从前端隐藏。例如。就像在这个模型中一样 - http://screencast.com/t/Q71rxUcxOrx

是否有插件或者您能指点我一篇文章吗?

2 个答案:

答案 0 :(得分:0)

创建复选框的后元,并通过选中/取消选中,您可以隐藏/显示前端的帖子内容。

为此,你必须修改前端的代码,看是否选中了复选框,并根据它显示帖子内容。

答案 1 :(得分:0)

尝试以下代码(它是一个单独的插件) - 它隐藏在Frontpage上的整个帖子 - 随时修改它。

<?php
/**
 * Plugin Name: Hide post on frontend
 * Description: Allows define whether post should be displayed on frontend or not.
 * Version: 1.0.0
 * Author: Lukas Pawlik
 * License: GPL2
 */

/**
 * Adds new metabox.
 *
 * @return void Method does not return.
 */
function hpof_add_meta_box() {
    add_meta_box(
        'hpof_hide_post',
        'Hide this post on frontend',
        'hpof_add_meta_box_content',
        null,
        'side',
        'high'
    );
}

/**
 * Outputs metabox contents.
 *
 * @param WP_Post $post
 *
 * @return void Method does not return.
 */
function hpof_add_meta_box_content( WP_Post $post ) {
    $checked = (bool)get_post_meta( $post->ID, 'hpof_hide_post', true );
    echo '<input type="checkbox" name="hpof_hide_post" ' .
        ( $checked ? 'checked' : '' ) . '/> Hide this post';
}

/**
 * Handles post saving.
 *
 * @param int $post_id Post id.
 *
 * @return void Method does not return.
 */
function hpof_save_post( $post_id ) {
    $value = (int)isset( $_POST['hpof_hide_post'] );
    update_post_meta( $post_id, 'hpof_hide_post', $value );
}

/**
 * Adds custom filtering.
 *
 * @param WP_Query $query
 *
 * @return void Method does not return.
 */
function hpof_pre_get_posts( WP_Query $query ) {
    if ( is_home() ) {
        /** @var $wpdb wpdb */
        global $wpdb;
        $results = $wpdb->get_col(
            "SELECT post_id FROM {$wpdb->prefix}postmeta WHERE " .
                "meta_key = 'hpof_hide_post' AND " .
                "meta_value = 1"
        );
        $query->query_vars['post__not_in'] += $results;
    }
}

add_action( 'add_meta_boxes', 'hpof_add_meta_box' );
add_action( 'save_post', 'hpof_save_post' );
add_action( 'pre_get_posts', 'hpof_pre_get_posts' );