如何在自定义帖子类型中使用显示名称作为帖子标题?

时间:2013-03-17 作者:annabwashere

我已经创建了一个名为“teacher”的自定义帖子类型,我想使用此人的显示名作为其帖子的标题。

详情:1。“教师”自定义帖子类型支持标题。2、只有登录的教师才能发帖。3、我正在使用frontend posting by Rev Voodoo

我根据在这里找到的各种片段提出了这一点,但无法实现:

function wpa65253_teacher_title( $title ) {
    global $post;
    if ( isset( $post->ID ) ) :
        if ( empty( $_POST[\'post_title\'] ) && in_the_loop() && \'teacher\' == get_post_type( $post->ID ) )
            $title = get_user_meta($user->ID, \'display_name\', true);
    endif;
    return $title;
}
add_action( \'submitpost_box\', \'wpa65253_teacher_title\' );
我看到了关于基于自定义字段创建标题的各种问题,但我想从用户档案中的用户名中提取它们。

This code by t31os 也不再有效:

add_action( \'submitpost_box\', \'hidden_type_title\' );

function hidden_type_title() {
    global $current_user, $post, $post_type;

    // If the current type supports the title, nothing to done, return
    if( post_type_supports( $post_type, \'title\' ) )
        return;

    ?>
    <input type="hidden" name="post_title"value="<?php echo esc_attr( htmlspecialchars( get_the_author_meta( \'display_name\', $current_user->data->ID ) ) ); ?>" id="title" />
    <?php
}
我做错了什么?

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

如果您使用的是Rev Voodoo的代码,那么您需要编辑该代码,而不是试图连接到WordPress核心代码。该链接中的表单提交给自己,并处理自己的后处理,从而绕过许多核心挂钩。

您尝试使用的一些挂钩不起作用。如果不进行更彻底的调查,我不会发誓,但我不认为我会使用或试图使用submitpost_box 用于此目的的挂钩(它在显示编辑表单时运行,而不是在提交表单时运行)。在这种情况下,它肯定不会起作用,因为Voodoo Rev的代码从未加载使用该钩子的页面--wp-admin/edit-form-advanced.php.

在我看来,您需要编辑以下内容:

// Do some minor form validation to make sure there is content
if (isset ($_POST[\'title\'])) {
    $title =  $_POST[\'title\'];
} else {
    echo \'Please enter the wine name\';
}
我不知道你想从哪里得到你的老师的名字。我对此不太满意,但你说“只有登录的老师才能发帖”如果您已充分锁定表单,则可以执行类似的操作,而不是执行该代码:

// Do some minor form validation to make sure there is content
global $currentuser;
get_currentuserinfo();
if (isset($current_user->display_name)) {
    $title = $current_user->display_name;
} else {
    echo "No user data";
}
许多警告:

根据您的陈述,完全未经测试

我想使用此人的显示名称作为其帖子的标题

那段代码完全劫持了标题。如果要将显示名称附加或前置到其他无法使用的标题。

你有机会得到像john-smith, john-smith-2, john-smith-3, etc我担心使用get_currentinfo 因为我不知道如何控制对表单的访问。如果访问表单的权限不足,则任何用户都可以发布为教师

结束

相关推荐

用可调整大小的图像替换#SITE-TITLE吗?

整个下午我都在绞尽脑汁。我成功地使用CSS将#站点标题替换为图像,在桌面上浏览时看起来很好,但我希望整个站点都能响应(毕竟我使用的是212!)。问题是,为了在CSS中替换#站点标题,您必须应用固定的维度。使用“100%”、“auto”等只会将图像从页面上完全擦除。我还尝试添加“宽度:100%;”到#页,它是父级,没有用。有什么想法吗?。