我如何控制我的帖子的HTML输出?

时间:2013-09-30 作者:jeff

正如你所知,WordPress会操纵帖子,即使你把所有东西都写在Text 模式(将换行符替换为\\r\\n \'s,将单引号转换为双引号等。)

我知道这有助于帮助我们不把事情搞砸,然而,在我的情况下,我想在我的帖子中加入HTML代码-两者都是<code></code> 标签和一些HTML直接-。

因此,我想确保我在文本模式下看到的内容(或以某种方式安装HTML模式),以便我看到的就是我得到的内容,就HTML而言:)

也许对我想要的更好的解释是:

我在“添加新帖子”窗口中写的应该是exactly 等于之间打印的内容<div class=\'entry-content\'></div>.

有什么建议吗?

我应该改变我的主题吗?或者tinymce的插件?

p、 s.:

我知道数据库应该转义单引号,但我想保留换行符、html标记等。因此,请告诉我有一种方法,而不是直接写入数据库。

3 个回复
SO网友:jeff

我已经决定,最好的解决方案是在编写时从用户->您的个人资料->禁用可视化编辑器中禁用可视化编辑器。

SO网友:kaiser

IIRC这是用户元/帽过滤器:

<?php
/**
 * Plugin Name: (#116210) Disable RichEdit for some post types
 * Author:      Franz Josef Kaiser <[email protected]>
 */
defined( \'ABSPATH\' ) OR exit;

add_filter( \'user_can_richedit\', function( $enabled ) {
    if ( ! is_admin() )
        return $enabled;

    // Conditional switch for different post types
    // If you want to check against multiple post types, use in_array()
    return \'post\' === get_current_screen()->post_type;
}
如果要对所有帖子类型全局禁用它,可以使用以下快捷方式:

<?php
/**
 * Plugin Name: (#116210) Disable RichEdit for some post types
 * Author:      Franz Josef Kaiser <[email protected]>
 */
defined( \'ABSPATH\' ) OR exit;
add_filter( \'user_can_richedit\', \'__return_false\' );

SO网友:kaiser

get_user_meta() 是的包装器get_metadata(). 如果触发此问题,询问用户是否可以使用富编辑器,您可以通过该调用禁用它。

<?php
/**
 * Plugin Name: (#116210) Disable RichEdit by User or Role
 * Author:      Franz Josef Kaiser <[email protected]>
 */
defined( \'ABSPATH\' ) OR exit;

add_filter( \'get_user_metadata\', \'wpse116210VisualEditorDisabled\', 20, 4 );
function wpse116210VisualEditorDisabled( $enabled, $object_id, $meta_key, $single ) {
    if ( ! is_admin() )
        return $enabled;

    // Conditional switch for different post types
    if ( \'post\' === get_current_screen()->post_type )
    {
        $user = wp_get_current_user();
        // Check here if you want *that* user/role to be enabled/disabled.
        $enabled = FALSE;
    }

    return $enabled;
}
另一种选择可能是使用WP_Role#has_cap 检查(以防在那里使用)。它还有一个过滤器:\'role_has_cap\'

<?php
/**
 * Plugin Name: (#116210) Disable RichEdit by Role
 * Author:      Franz Josef Kaiser <[email protected]>
 */
defined( \'ABSPATH\' ) OR exit;

add_filter( \'role_has_cap\', \'wpse116210RoleHasCap\' );
function wpse116210RoleHasCap( $allCaps, $checkedCap, $roleName )
{
    $role = get_role( $roleName );
    // Do your check if you want to allow it. Return *boolean*.

    return $allCaps[ $checkedCap ];
}

结束

相关推荐

Missing HTML comment tags

我有这个WP安装,我目前正在修改。最疯狂的是HTML注释没有显示在源代码的任何地方。也就是说,如果您右键单击页面并“查看源代码”。但是,如果要使用这样的工具打开页面->http://www.iwebtool.com/code_viewer?domain=w3lol.com 你可以清楚地看到评论就在那里。网站url为http://w3lol.com可悲的是,关于这件事的任何地方都没有任何信息,而且我也不知道如何确定这是否是由代码本身、Apache、WordPress或其他原因造成的。。。(顺便说一句,