Wordpress

Trần Đức Lĩnh

Những hàm cơ bản lấy dữ liệu từ cơ sở dữ liệu MySQL.

Cách lấy Header và Footter.

<?php
/**
 * Template Name: <Theme Your NAME>
 *
 * @link https://developer.wordpress.org/themes/basics/template-files/#template-partials
 *
 * @package WordPress
 * @subpackage <Theme Your NAME>
 * @since 1.0.0
 */

get_header();
?>

// code here

<?php
get_footer();?>

Lấy link ảnh.

Cách lấy ảnh thông thường:

<img src = 'http://www.<mywebsite>.com/wp-content/themes/<your-theme>/images/picture.jpg' alt = 'Picture' />

Cách lấy này khá nguy hiểm nếu như thay đổi domain, buộc nhà phát triển phải cang thiệp mã nguồn một lần nữa.

Cách lấy rút gọn ảnh

/wp-content/themes/<your-theme>/assets/images
<img src="<?php bloginfo('template_directory');?>/images/img.jpg" alt="">

Cách lấy này được chỉ định từ thư mục chính đến đường dẫn hiện tại.

Cách lấy thông qua hàm bloginfo()

<img src = '<?php bloginfo('template_directory'); ?>/images/picture.jpg' alt = 'Picture' />

Cách lấy toàn bộ Media Library.

<?php 
    $query_images_args = array(
        'post_type'      => 'attachment',
        'post_mime_type' => 'image,video',// video files include
        'post_status'    => 'inherit',
        'orderby'        => 'post_date',
        'posts_per_page' =>  6,
    );

    $query_images = new WP_Query( $query_images_args );

    if($query_images->have_posts()) : 
        while($query_images->have_posts()) : 
            $query_images->the_post(); ?>

            <div>
                <?php echo $images = wp_get_attachment_image( $query_images->posts->ID, 'thumbnail' ); ?>
            </div>

        <?php endwhile; ?>
    <?php else : ?>
        <p>No media file yet</p>
    <?php endif;

    /* Restore original Post Data */
    wp_reset_postdata();
?>

Sử dụng plugin Polylang chuyển đổi ngôn ngữ.

<?php pll_e('<text>'); ?>

Lấy thời gian.

<?php the_time('d/m/Y');?>

Hàm lấy danh sách menu.

<?php $menu=array( 'menu'=>'<name-menu>', ); wp_nav_menu($menu);?>

Sidebar.

<?php get_sidebar(); ?>

Sử dụng Slider cho menu (sử dụng plugin Slider Revolution).

<div>
	<?php
	    echo do_shortcode('[rev_slider alias="slider-2"]');
	?>
</div>

Đưa file CSS hoặc JS vào website.

Cách đưa file liên kết thông thường này thường đặt sau get_header();?>. Việc tối ưu từng trang cho từng file sẽ nhanh hơn nhiều.

<?php
get_footer();?>

	<link rel="stylesheet" href="<?php bloginfo('template_directory');?>/css/style.css">

Đưa file CSS liên kết vào file functions.php

  • Sử dụng hàm wpenqueuestyle().
function namespace_theme_stylesheets() {
    wp_enqueue_style( '<name-id-css>',  get_template_directory_uri() .'/assets/css/style.css', array(), null, 'all' );
    wp_enqueue_style( '<name-id-css>', get_stylesheet_uri(), '', null, 'all' );

    // ...import file other...
}
add_action( 'wp_enqueue_scripts', 'namespace_theme_stylesheets');

Đưa file JS liên kết vào file functions.php

  • Sử dụng hàm wpenqueuescript().
function  wp_enqueue_scripts() {
	wp_enqueue_script( 'my_amazing_script', get_template_directory_uri() . '/main.js', array(), '1.0.0', true );
	wp_enqueue_script('my_amazing_script');

    // ...import file other...
}

add_action( 'wp_enqueue_scripts', 'namespace_theme_stylesheets');

Lấy link trang chủ (home page).

<a href="<?php echo esc_url( home_url( '/' ) ); ?>"> ... </a>

hoặc

<a href="<?php echo home_url(); ?>">

Chia nhiều file single.php cho từng chuyên đề.

File single.php sẽ điều hướng tớ các file có ID_Category tương ứng. Nếu có nhiều file cần điều hướng nên dùng if-ifElse...-else.

<?php
  $post = $wp_query->post;

  if ( in_category('18') ) {
  include(TEMPLATEPATH . '/single1.php');

  } else {
  include(TEMPLATEPATH . '/single2.php');

  }
?>

Mẫu code.

Home page (index.php)

Lấy bài viết trong 1 category

<div>
	<?php $the_query=new WP_Query('cat=2&posts_per_page=2');
	while ($the_query->have_posts()):$the_query->the_post();?>
		<div>
			<h3><a href="<?php the_permalink();?>" title="<?php the_title();?>"><?php the_title();?></a></h3>
			<a href="<?php the_permalink();?>" title="<?php the_title();?>"><?php the_post_thumbnail('full') ;?></a>
			<p><?php the_time('d/m/Y');?></p>
			<p><?php echo wp_trim_words( get_the_content(), 35 ); ?></p>
			<a href="<?php the_permalink();?>">XEM TIẾP</a>
		</div>
	<?php endwhile; wp_reset_postdata();?>
</div>

Ghi chú:

  • cat : ID.
  • postsperpage : Number post.

Lấy 1 bài viết bất kỳ từ trang

<div>
	<?php $query=new WP_QUERY('page_id=9');
	while ($query->have_posts()):$query->the_post();?>
        <div>
			<h3><a href="<?php the_permalink();?>" title="<?php the_title();?>"><?php the_title();?></a></h3>
			<a href="<?php the_permalink();?>" title="<?php the_title();?>"><?php the_post_thumbnail('full') ;?></a>
			<p><?php the_time('d/m/Y');?></p>
			<p><?php echo wp_trim_words( get_the_content(), 35 ); ?></p>
			<a href="<?php the_permalink();?>">XEM TIẾP</a>
		</div>
	<?php endwhile;?>
</div>

Ghi chú:

  • page_id : ID của page.

Trang Category

<h1><?php echo single_cat_title();?></h1>
<div>
	<?php while (have_posts()):the_post();?>
		<div>
			<h3><a href="<?php the_permalink();?>" title="<?php the_title();?>"><?php the_title();?></a></h3>
			<a href="<?php the_permalink();?>" title="<?php the_title();?>"><?php the_post_thumbnail('full') ;?></a>
			<p><?php the_time('d/m/Y');?></p>
			<p><?php echo wp_trim_words( get_the_content(), 35 ); ?></p>
			<a href="<?php the_permalink();?>">MORE</a>
		</div>
	<?php endwhile;wp_pagenavi();wp_reset_postdata();?>
</div>

Trang Single

<h1><?php echo single_post_title();?></h1>
<div class="wrap-single">
	<?php while (have_posts()):the_post();?>
		<div class="content">
			<?php the_content();?>
		</div>
	<?php endwhile;wp_reset_postdata();?>
</div>

Hummm...If in the single section there are 2 categories showing different content, use the conditional command.

<?php if (in_category( array(14,56,80) )) {?>
    // Code here, show product, show price, show ...ect...
<?php } else {?>
	// Not show as above!.
<?php } ?>

Ghi chú:

  • array(14,56,80) : ID category.

Các liên kết liên quan

Thachpham

Huykira

Codex.wordpress

Developer.wordpress

Kipalog