如何使用wpdb和new_to_Publish挂钩将破折号(-)插入数据库?

时间:2015-11-27 作者:Foolish Coder

我正在将帖子标题保存在一个单独的表中,以供特定使用。发布帖子时,标题会保存到数据库中。代码为:

add_action(\'future_to_publish\', \'send_emails_on_new_event\');
function send_emails_on_new_event($post)
    {
        global $post;
        global $wpdb;

        $table_name = \'tbl_name\';   
        $site_post_url = get_permalink();
        $site_post_title = get_the_title();
        $author_id = $post->post_author;
        $author = get_the_author_meta( \'display_name\', $author_id );    
        $wpdb->insert( $table_name, array(
                                                    \'site_post_url\' => $site_post_url,
                                                    \'site_post_title\' => $site_post_title,                                          
                                                    \'Author\' => $author                                         
                                                ) );

    }
上述代码将数据插入到名为“tbl\\u name”的表中的适当字段中,除了site_post_title 如果site_post_titledash - 它会自动转换为连字符代码并保存。

我的头衔是- Dash - test - -ok?

当我检查表中的记录时tbl_name 是的- Dash – test – -ok?

tbl为什么这两个破折号会这样保存?

如何将破折号保存为数据库表中的破折号?

UPDATE

标题number sign # double quotes " slash / colon : 另存为number sign # double quotes ” slash / colon :

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

当我们打电话时get_the_title(), 然后通过wptexturize() 功能通过the_title 过滤器:

add_filter( \'the_title\', \'wptexturize\' );
将en破折号和em破折号替换为

/* translators: en dash */
$en_dash = _x( \'–\', \'en dash\' );
/* translators: em dash */
$em_dash = _x( \'—\', \'em dash\' );
在将en/em破折号存储到自定义表时,可以使用一种简单的解决方法来保持它:

$site_post_title = str_replace( 
    [ \'–\', \'—\' ], 
    [ \'–\', \'—\' ],
    get_the_title()
);
或者直接用生的$post->post_title 如果这对您的设置更有意义。

相关推荐

Inject added to title

有一个很大的问题,在标题wordpress站点有时(随机)添加了注入代码(截图)。代码之后,在带有横幅的页面上添加了站点重定向。更改服务器通行证、更改用户通行证、添加google身份验证和更改输入点(不是wp login.php),但每天都要注入工作。Wordpress 4.9.4。如何阻止它?